June 25, 2007

各个语言编程的风格

Re: 各个语言社区的风格

不和任何编程风格相绑定的语言是玩具,例如 Lisp/Scheme、Perl、JavaScript,就好比法杖,拿来敲人不行,但往往可以拿来放魔法;
和两种编程风格相绑定的语言是怪玩具,例如 E、Ruby,就好比竹剑,拿来劈人吧,勉强;拿来放魔法吧,凑合;
只和特定的一种编程风格相绑定的语言才是常规的武器,这你可能会想到很多,但也有些区别:
  • 和一种与设计原意相背离的编程风格相绑定的语言是怪武器,例如 C++、就好比吴钩,杀人的动作既不是砍又不是刺,是拉,用起来很别扭;
  • 和一种与设计原意相符合但是过时了的编程风格相绑定的语言是笨重的武器,例如 C、Java/.Net,就好比铡刀,那边要杀人了,非得把敌人逮着绑好了推到你手边才能动手,步骤繁琐;
  • 和一种与设计原意相符合并且有理论支持的编程风格相绑定的语言才是好武器,例如 Haskell、ML/OCaml、Erlang、Python,就好比刀剑,拿起来就能用,用的时候不是砍就是刺,干净利索。
一般来说,我倾向于两种极端:彻底的玩具和优秀的武器。

No comments: