最近花时间一直在看python和ruby,为了在Web应用又看了Karrigell和Rails.
刚开始的时候是很兴奋地,毕竟这两个新玩具还是够玩上很长一阵子了,不过对于动态语言所标榜的code is the best configuration
却在使用的过程中产生了很多的疑惑,写这篇Post主要就是把心里的疑惑说出来,看看有没有大虾能够解惑了,算是抛砖引玉吧。
其实动态语言的历史并不短,起码在我出生前就肯定存在了,不过到了现在才开始流行起来。其实python,ruby都是老家伙,不会比现在
的java年轻,看来时装届多少年依次的潮流回归在计算机领域神奇般的有效了。抛开其他的,其实就语言上来说python,ruby都是很具备
前瞻性的,偶是相当喜欢的(抛开ruby的日本血统而言,正因为如此我才去看了python)。可能是被J2EE庞杂的配置文件所厌烦了。
现在就开始流行code is the best configuration的说法,不过我认为此说法太过片面。诚然代码就是配置这个说法在某种程度上是正确
的,但是很多时候我们并不能这么做。回过头来看java(.NET同理),java(.NET)是强类型的语言,都必须编译后才能执行,所以在写代码
的时候,很多可能改变的常量我们都会提取出来放到配置文件里去,这个是语言,是平台所决定的,所以看来在java动态化前是不能把
代码当作配置了。但是如果java果真动态化了,我们就能这么做么?如果一个正常在线运行的系统地源代码是随便改动的那么怎么保证
系统的安全,稳定,如果在修改的时候有用户访问怎么办?就算是先在测试环境里先修改,那么和需要编译的僵硬的java又有多大的优
势呢?反观,在现在的大型关键应用系统中又有多少使用动态语言的呢?所以在短期内我还不很看好动态语言。不过就和当年C++的狂热
支持者用效率来贬低java一样,一个当年也被称为玩具的语言,先在成了电信,企业应用,大型应用的代名词,谁知道先在的玩具,将来
就不能成为一柄利器呢?话虽如此,还是喜欢用python,起码现在对我来说当作脚本写点小东西还相当实用的。