[blah]Popularizing Erlang
看到 kevin 的一篇Popularizing Erlang,kevin 提到:
My idea for popularizing Erlang is simple: write the code needed to make Erlang more commonly accepted. I’m not sure what that code needs to be, though I’ve got a few ideas. But I am sure that it’ll be written in Erlang.
我这么理解他的意思:用erlang来写大家都需要的功能,这是一种很好的推广。
“为什么erlang好像不火呢?”,这是一个好问题。象 erlang 这样优秀的技术,仅在一些“尖端”的领域内流传,并没有被更多的人所知晓,不得不说,这是很奇怪的现象。
我想这个问题可以分成两个方面。
其一,割舍不下的原有投资。要知道erlang是fp,学习一门新语言的代价并不高,但换一种思维方式的代价就太高了,fp是与大名鼎鼎的oop相对应的,而想起我们学习和领会oop的种种痛苦和折磨,好容易熟练掌握这种思维方式了,又让我们换用另外一种?抛弃原有投资的代价,确实太高。不过,这种事情也不是没有发生过。从c转到java,或者从delphi转到java,这件事其实我们已经干过很多次了。
其二,蒙眬不清的投资前景。一般来说,无论它多好,还是没人会去学习一门没有前途(钱途)的语言。换句话说,如果现在的市面上满是erlang的高薪职位,来了就当cto,给期权,发股票,估计大家早就趋之若鹜了。不仅没有这种风声,甚至近期之内也没有这种趋势。所有来钱的软件体系之中,能和erlang攀上关系的,似乎就没有几个。
天下熙熙,皆为利来,天下攘攘,皆为利往。说到底,大家都是靠写代码吃饭的程序匠,这么想,其实是无可厚非的嘛。
从这个角度来说,kevin的想法确实很有现实意义。让erlang出现在mysql的领域,让erlang出现在ror的领域,让erlang出现apache的领域……。如果这些“来钱的领域”都出现erlang的招牌,那么到那个时候,恐怕是想不popular也难啊。
PS. 老实说,我不是很care erlang会不会成为popular的语言,它确实是很专注于服务端的语言,如果注定了要在backend的巅峰宝座上杀气凌厉的一个独孤求败,也很不错啊。况且,虽说“人多好办事”,但你也知道“人少好分钱”嘛。


Comments
你说的两点我觉得不是主要问题。主要问题是erlang的很多特性非常“企业级”,大部分小应用很难体现或迫切需要这些优点,现有的方案也没什么大问题。
以往的成功的技术大部分都是抓住别人做没有很好解决的问题。从这个角度说我不是很看好erlyweb这个仿ror的项目,它在web开发上还不如ror优雅,也没有针对ror所不擅长的领域进行突破。
补充一下,对很多C,C++程序员来说,没有一定的阅历,是很难体会出Erlang在backend的强大优势的,对这点,貌似我的同事很有体会:)
@piggybox 你的意思是否可以理解为:erlang的方案好,但比起现在的方案,因为应用场景还没有那么高的要求,所以,并没有看到非用erlang不可的迫切性。而你的意思是erlang应该在现有技术的领域之外寻求突破。
你的观点有点意思,值得考虑。
你的理解很正确。比如说Erlang的并发性虽然很好,但是lamp, ror只要硬件够并发也不是问题,因为一般web访问者之间不需要什么实时交互,share nothing嘛(当然share nothing实际不特指这个)。而需要实时交互的比如聊天室,游戏等等,那些多进程框架就捉襟见肘了,Erlang的高效消息传递这时成为不可替代的需要。还有更多Erlang特性也需要从这个角度考虑。
一般MMOG游戏都是分区的,现在的服务器硬件,加上设计良好的C++程序,单服务器支撑个上万人也是可能的,征途那里号称万人国战。
对于一组服务器的分布,感觉也不是那么“捉襟见肘”,经过那么多年的发展,技术也比较成熟了。现在越来越多的单一世界的富媒体社区,secondlife这些,可能会更加适合。我看过使用stackless python开发的EVE的ppt,也看过UOneNet搞出来的那套MMOG引擎的文档,都适合于大世界网游。我不太确信Erlang能否在这个领域像ROR这样异军突起。
EVE正在玩,号称单一世界负载第一,可以同时撑3万多人。可是EVE在同一星系(也就是同一服务器节点)上的人数是有限制的,也就1千多人吧,多了星门就关闭了。虽然EVE并发性响应性是不错,但是可用性很糟,经常一个节点当掉整个集群都会有严重lag。
SL的在线比EVE少一点,单一地区有没有人数限制不知道。里面很空旷,我也不知道人都在哪里。。。
感觉需要交互的也就同一地区的那些人,这里才需要高响应。整个服务器支持多少人都不是大问题。
呵呵,在javaeye上,我对erlang的游戏潜力也表达过“很看好”的观点。
确实,erlang有很多不错的mmog成功案例,不过这个领域确实很专,甚至有点太专。以至于,除了arbow和piggy这样的“业内人士”之外,相信绝大多数的人都无从了解这样的神秘领域。换句话说,就算erlang在这个领域里制霸,对Popularizing Erlang来说,恐怕也是助益不大。
我想Popularizing Erlang这话本身隐含了希望“出现使用erlang的大量程序员”的想法。但软件工业从来就是金字塔型的。对erlang这种“高端语言”来说,我觉得“让塔底的人也用它”的想法,或许就不是很现实。
其实erlang不难 和ACE比较规模还要小一些 既然我们可以玩转ACE 为什么不能把erlang用好。
Write a Comment