<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>
<channel>
	<title>Comments on: package or not? it&#8217;s a problem</title>
	<atom:link href="http://erlang-china.org/misc/package_or-not_its_a_problem.html/feed" rel="self" type="application/rss+xml" />
	<link>http://erlang-china.org/misc/package_or-not_its_a_problem.html</link>
	<description>erlang 中文社区</description>
	<pubDate>Mon, 01 Dec 2008 19:32:59 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.5</generator>
		<item>
		<title>By: jackyz</title>
		<link>http://erlang-china.org/misc/package_or-not_its_a_problem.html#comment-5924</link>
		<dc:creator>jackyz</dc:creator>
		<pubDate>Fri, 12 Sep 2008 03:38:13 +0000</pubDate>
		<guid isPermaLink="false">http://erlang-china.org/?p=225#comment-5924</guid>
		<description>package 层次无关丰富。这个层次主要是对“第三方库的开发者”以及“多个项目的整合”有利。

假如 couchdb 和 mochiweb 都有自己的 json 模块(这只是一个比方，实际这两个项目共用了 json 模块)，从“库的开发者”角度，都希望能“不受限”的将自己的模块命名为 json.erl 。但是不行，因为在有人想要整合两个项目时，就会出现重名问题。因而，目前比较好的实践方式是分别命名为 mochi_json.erl 和 couch_json.erl —— 各自带上不同的前缀，这能很好的解决问题。但实际上，这样的命名就是“flat package name”了之后的名字。只是目前的这个 flat 的过程要靠“手工＋自觉”。

package/name space 的要义就是“命名的自由”，这个自由主要来自“不需要顾忌会和其他人的 module 发生冲突”。实现起来并不困难，对于 erlang team 来说，只是想不想做的问题。</description>
		<content:encoded><![CDATA[<p>package 层次无关丰富。这个层次主要是对“第三方库的开发者”以及“多个项目的整合”有利。</p>
<p>假如 couchdb 和 mochiweb 都有自己的 json 模块(这只是一个比方，实际这两个项目共用了 json 模块)，从“库的开发者”角度，都希望能“不受限”的将自己的模块命名为 json.erl 。但是不行，因为在有人想要整合两个项目时，就会出现重名问题。因而，目前比较好的实践方式是分别命名为 mochi_json.erl 和 couch_json.erl —— 各自带上不同的前缀，这能很好的解决问题。但实际上，这样的命名就是“flat package name”了之后的名字。只是目前的这个 flat 的过程要靠“手工＋自觉”。</p>
<p>package/name space 的要义就是“命名的自由”，这个自由主要来自“不需要顾忌会和其他人的 module 发生冲突”。实现起来并不困难，对于 erlang team 来说，只是想不想做的问题。</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: ShiningRay</title>
		<link>http://erlang-china.org/misc/package_or-not_its_a_problem.html#comment-5887</link>
		<dc:creator>ShiningRay</dc:creator>
		<pubDate>Wed, 10 Sep 2008 09:29:06 +0000</pubDate>
		<guid isPermaLink="false">http://erlang-china.org/?p=225#comment-5887</guid>
		<description>Package层次并不需要复杂
Smalltalk就一层分类（参考Squeak）
东西同样也很丰富</description>
		<content:encoded><![CDATA[<p>Package层次并不需要复杂<br />
Smalltalk就一层分类（参考Squeak）<br />
东西同样也很丰富</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: jackyz</title>
		<link>http://erlang-china.org/misc/package_or-not_its_a_problem.html#comment-5844</link>
		<dc:creator>jackyz</dc:creator>
		<pubDate>Mon, 08 Sep 2008 04:21:09 +0000</pubDate>
		<guid isPermaLink="false">http://erlang-china.org/?p=225#comment-5844</guid>
		<description>更进一步，erlang 的 release 也可以分成两个部分：erlang vm 和 erlang lib 。

前者可以用 binary 方式来发布一个体积很“sexy”(大约 3m 就足够了)的运行核心，后者则以 source code/application 的方式来发布(下载源码到本地再编译)，配以一个良好的“依赖管理”＋“按需下载”系统(就像 MooTool 那样)，就可以实现一个“mini size runtime”，而这恰好就是 java 正在努力追求的“瘦身”目标。</description>
		<content:encoded><![CDATA[<p>更进一步，erlang 的 release 也可以分成两个部分：erlang vm 和 erlang lib 。</p>
<p>前者可以用 binary 方式来发布一个体积很“sexy”(大约 3m 就足够了)的运行核心，后者则以 source code/application 的方式来发布(下载源码到本地再编译)，配以一个良好的“依赖管理”＋“按需下载”系统(就像 MooTool 那样)，就可以实现一个“mini size runtime”，而这恰好就是 java 正在努力追求的“瘦身”目标。</p>
]]></content:encoded>
	</item>
</channel>
</rss>
