最近rails社区Zed的吵闹成为一个热点,我有几点看法要说。而联想其当初的《java将死》,就更有必要做点新的阐述。
我不认为ruby的发展跟不上rails,其实本身rails也有问题。比如2.0的推出,就很有争议,吵闹不断。而python社区其实也仅仅是表面的沉静,例如就easy install这个东西,完全不能和gem比,它仅仅代表了很少的一部分人的意见,绝大多数人并不是不支持,而是没想过去支持这个东西。至于说python适合不适合web则是不需要讨论的问题,关键是自己的选择。
python的优势在于有很多的积累,弱点在包袱比较多。ruby的优势在于比较新,没啥负担,可以追求更新,而弱势则在于积累太少,更新太快,积累就更少。
而若说社区的人数,则ruby完全不能跟python相提并论,只不过很多用python的人并不把python当一种正式的语言,更加把其当作shell脚本的加强。
我为啥要把python拿出来和ruby比较,原因在我猜测Zed骂过人之后,很可能是要进入python社区。而且以其性格很可能搞一个或者加入一个同rails相类似的项目。并且我发现,现在很多django社区的支持者,来自原来的rails社区。而很多以前的django支持者,转向了pylons。pylons的思想体系,我觉得和rails很类似。但是当这些人再次改变信仰的时候,并没有跑到rails那里。他们去了哪里?我觉得多数人在尝试过这些多别人的框架之后,开始自己尝试搞自己的框架了。而由于有paste这个工具的支持,叫这种尝试的成本大大的降低下来。因此将来python社区的情况,依旧是山头众多各自为政。是不是有点当初java社区的感觉。
就rails社区的情况则要看,那些核心成员之间的关系是否能够稳定是个大问题——至少目前看他们之间还没有啥本质的分歧。Zed这样的人,并不能破坏稳定的大局。但是这不能不说是一个信号,一个随着社区的扩大,人们的选择开始多样化的信号。这种稳定终究会被打破。而根本上说,rails的哲学思想,我觉得和ruby还有些不同。因此说不定哪一天,会产生更加令人惊奇的事情——比如rails忽然被移植到另外一个语言平台上。
说白了rails的前景很不明确,令人遐想的地方很多。而python那里则明确的,python依旧是一种死气沉沉的水面充满大大小小的水花。更加明确的说ruby并不是java之后下一种主流的语言,python更加不会。新的老大可能才出现,也可能还没出现。这种动荡的局面,还会持续一小段时间。
而我们把眼光再放开些,看看其他几种语言。
Oz居然是一种语言,很多人都不知道。这个东西确实很强大,几乎你能想到的特性它都有,或者将会有。但是它自从出生,就一直是一种小众语言。昨天如此,今天我看也还会如此。除非出一个大牛,又有机缘巧合,这个东西我觉得做不了太子。
Ocaml,貌似玩这个的也很多。但是多数人都是玩过之后,马上转向,至少erlang那里玩过ocaml的就不在少数。它做太子,我看也难。
erlang,这个东西现在很流行,有点当初rails推出时候的味道。但是它是不是也会步rails和ruby的后尘,成为一个过渡性的角色呢?我看可能性比较大,而且从现在erlang后面的推手看,依然没有在推广方式上突破rails的操作手段出现。说这个家伙是太子,也比较悬。
忽然出现的Factor,我咋看都是在步oz的后尘,搞杂烩。不过现在的情况已经有所变化,是不是杂烩会成为一种潮流呢?难,杂烩毕竟就是杂烩,除非这些程序员都被从新洗脑,否则接受起来比较困难。那它依旧做不来太子。
那Lisp和smalltalk呢?我相信它们都会有一个不小的稳定的骨灰社区,并且信仰纯正。但是除非这种信仰是一种病毒,否则别人不会突然跑到他们的名下去做随从的。因此它们也不会成为太子。
那么太子就真的选不出了吗?我觉得我们还不如去分析分析,太子究竟该具备什么样的品格。这个方面,我依然坚持以前的看法。
那么我说了半天,是不是又兜圈子回到了原地呢?当然不是了。其实情况已经有了微妙的变化:首选TW的大旗老马在最近对DSL的看法上有了新的说法,API也DSL了。另外一个不被人重视的东西也在游戏开发圈子里面很红,Stackless Python。
这两个东西有能说明啥呢?简单,现有的语言可以被从新认识,也可以从新被改造。也就是这些王子其实只要肯在自己身上动刀子,机会还都是有的。只不过看谁手脚快,在加上一些运气。而王子可以对自己动手,JAVA这个皇帝也可以对自己动手啊。看看最近一年来SUN的种种动作,谁就敢保证哪一天,java成为一种可以不被编译就能执行的语言的情况不会发生呢?如果这样java就可以成为一种既可以被编译,也可以不被编译,还可以是平台,还可以是语言,还可以是类库的东西。当然这个难度不小,但是也别说就不可能发生。况且我们还有候补队员D和F没上场,候补的后面还一堆板凳呢。
归根结底,对自己都刀子的权利都有,并且生孩子的权利也有,从石头里面蹦出了猴子的可能也有。所以我看java依然是老大,依然等未来的太子浮出水面。
我不认为ruby的发展跟不上rails,其实本身rails也有问题。比如2.0的推出,就很有争议,吵闹不断。而python社区其实也仅仅是表面的沉静,例如就easy install这个东西,完全不能和gem比,它仅仅代表了很少的一部分人的意见,绝大多数人并不是不支持,而是没想过去支持这个东西。至于说python适合不适合web则是不需要讨论的问题,关键是自己的选择。
python的优势在于有很多的积累,弱点在包袱比较多。ruby的优势在于比较新,没啥负担,可以追求更新,而弱势则在于积累太少,更新太快,积累就更少。
而若说社区的人数,则ruby完全不能跟python相提并论,只不过很多用python的人并不把python当一种正式的语言,更加把其当作shell脚本的加强。
我为啥要把python拿出来和ruby比较,原因在我猜测Zed骂过人之后,很可能是要进入python社区。而且以其性格很可能搞一个或者加入一个同rails相类似的项目。并且我发现,现在很多django社区的支持者,来自原来的rails社区。而很多以前的django支持者,转向了pylons。pylons的思想体系,我觉得和rails很类似。但是当这些人再次改变信仰的时候,并没有跑到rails那里。他们去了哪里?我觉得多数人在尝试过这些多别人的框架之后,开始自己尝试搞自己的框架了。而由于有paste这个工具的支持,叫这种尝试的成本大大的降低下来。因此将来python社区的情况,依旧是山头众多各自为政。是不是有点当初java社区的感觉。
就rails社区的情况则要看,那些核心成员之间的关系是否能够稳定是个大问题——至少目前看他们之间还没有啥本质的分歧。Zed这样的人,并不能破坏稳定的大局。但是这不能不说是一个信号,一个随着社区的扩大,人们的选择开始多样化的信号。这种稳定终究会被打破。而根本上说,rails的哲学思想,我觉得和ruby还有些不同。因此说不定哪一天,会产生更加令人惊奇的事情——比如rails忽然被移植到另外一个语言平台上。
说白了rails的前景很不明确,令人遐想的地方很多。而python那里则明确的,python依旧是一种死气沉沉的水面充满大大小小的水花。更加明确的说ruby并不是java之后下一种主流的语言,python更加不会。新的老大可能才出现,也可能还没出现。这种动荡的局面,还会持续一小段时间。
而我们把眼光再放开些,看看其他几种语言。
Oz居然是一种语言,很多人都不知道。这个东西确实很强大,几乎你能想到的特性它都有,或者将会有。但是它自从出生,就一直是一种小众语言。昨天如此,今天我看也还会如此。除非出一个大牛,又有机缘巧合,这个东西我觉得做不了太子。
Ocaml,貌似玩这个的也很多。但是多数人都是玩过之后,马上转向,至少erlang那里玩过ocaml的就不在少数。它做太子,我看也难。
erlang,这个东西现在很流行,有点当初rails推出时候的味道。但是它是不是也会步rails和ruby的后尘,成为一个过渡性的角色呢?我看可能性比较大,而且从现在erlang后面的推手看,依然没有在推广方式上突破rails的操作手段出现。说这个家伙是太子,也比较悬。
忽然出现的Factor,我咋看都是在步oz的后尘,搞杂烩。不过现在的情况已经有所变化,是不是杂烩会成为一种潮流呢?难,杂烩毕竟就是杂烩,除非这些程序员都被从新洗脑,否则接受起来比较困难。那它依旧做不来太子。
那Lisp和smalltalk呢?我相信它们都会有一个不小的稳定的骨灰社区,并且信仰纯正。但是除非这种信仰是一种病毒,否则别人不会突然跑到他们的名下去做随从的。因此它们也不会成为太子。
那么太子就真的选不出了吗?我觉得我们还不如去分析分析,太子究竟该具备什么样的品格。这个方面,我依然坚持以前的看法。
那么我说了半天,是不是又兜圈子回到了原地呢?当然不是了。其实情况已经有了微妙的变化:首选TW的大旗老马在最近对DSL的看法上有了新的说法,API也DSL了。另外一个不被人重视的东西也在游戏开发圈子里面很红,Stackless Python。
这两个东西有能说明啥呢?简单,现有的语言可以被从新认识,也可以从新被改造。也就是这些王子其实只要肯在自己身上动刀子,机会还都是有的。只不过看谁手脚快,在加上一些运气。而王子可以对自己动手,JAVA这个皇帝也可以对自己动手啊。看看最近一年来SUN的种种动作,谁就敢保证哪一天,java成为一种可以不被编译就能执行的语言的情况不会发生呢?如果这样java就可以成为一种既可以被编译,也可以不被编译,还可以是平台,还可以是语言,还可以是类库的东西。当然这个难度不小,但是也别说就不可能发生。况且我们还有候补队员D和F没上场,候补的后面还一堆板凳呢。
归根结底,对自己都刀子的权利都有,并且生孩子的权利也有,从石头里面蹦出了猴子的可能也有。所以我看java依然是老大,依然等未来的太子浮出水面。