月度归档:2012年10月

编程语言们各自的哲学

曾有同事打算将ZOPE和PLONE啃下,我是不建议的。同事说我不够开放,对自己不喜欢的技术都很排斥。我承认,每个人都会有自己的偏好。但我不赞成使用ZOPE恰恰不是因为偏好问题,我也不会因个人偏好而建议采用或不采用某项技术。
在我看来ZOPE是一个很变扭的技术。ZOPE引入了接口/容器等概念,给人感觉ZOPE在很多方面都在有意的模仿JAVA。Python和JAVA在语言哲学方面有着比较大的差异,试图以Java的方式来做一个Python的WEB开发框架无疑是有些别扭的。如果ZOPE真的学的特别象,那我为什么不干脆直接使用Java?
这世界上存在各种编程语言,每种编程语言都有着自己的特点,正是这些差异满足了各类人的不同需求。这些编程语言都有着自己最核心的思想,这个核心思想就是所谓的“哲学”。没有自己“哲学”的编程语言是无法在这个世界上存活的。有些编程语言看上去问题很多,却很流行。或许它的那些问题也正是它流行的原因。

PHP

PHP的使用门槛非常的低,而且通常用PHP写出来的东西代码都不是那么的“漂亮”。于是有些人将PHP看成是业余程序员用的东西。然而就是这么一个看似不怎么专业的东西统治了大半个互联网。PHP的“哲学”是“quick and dirty”。在一定程度上beauty和quick并不容易并存。PHP将quick和简单作为第一要求,代码的漂亮退居第二。dirty的代码并不容易维护,所以通常在系统在复杂后,复杂业务逻辑功能将交由其他技术实现。PHP则安心做着自己表现层的事。

Java

有人说Java是给笨人用的语言。这话虽然很难听,不过在一定程度上这还真就是Java的哲学。Java充分利用语言特性和IDE等自动化工具来避免程序员犯错,让人海战术成为可能。对于大多Java项目只需要少数的牛人来设计系统构架和主要接口,下面的具体实现用“笨人”来做就可以了。

Python

python的哲学是“quick and clean”。在一定程度上说python确实非常clean也很quick。不过python的clean可让也让python变的有些平庸。python号称什么都能做,却又没在哪个领域特别突出。

Ruby

Ruby强调人文关怀,编程是一件有乐趣的事,你可以按照自己喜欢的方式去使用ruby。相对而言ruby可能更容易发挥个人的创造性,但在团队协作时则容易遇到麻烦。

凋零的中国村庄

同事说他出生的小村庄已经严重的凋零,村里的年轻人都外出务工,村里只剩下为数不多的老人。曾经热闹的村小学沦落到只剩个位数的学生。因为生活在城市,此前感受到的都是城市发展的迅速。这次去女朋友家,切实看了一回凋零的村庄。
那也曾是一个繁华的小镇。随着自然资源枯竭,政府开始寻求新的经济增长点,于是引进了大批重污染企业。切实可见的污染让广大居民开始逃离。于是小镇开始没落。工厂的建立后,也有一些附近的居民开始进厂工作,生活得到改善,于是虽然污染但抱怨的人也并不见多。
有时在想,中国饮鸩止渴的经济模式还要继续多久,还能支撑多久。中国一直高呼科技兴国,实际上却一直走的都是粗放型的经济模式。地方官员为了自己的政绩更是将饮鸩止渴的高污染高好耗能的路子发挥到了极致。一时的政绩可能漂亮,但污染过的环境,破坏的资源就没这么容易恢复了。遗憾的是这些糟糕的后果并不需要当前的官员承担,他已经因为漂亮的政绩步步高升了。在中国由于缺少必要的民间监管,官员们此前的烂底子更无人知晓了。马克吐温的精选州长里描述了一个好人如何在参与了州长竞选后名声扫地。竞选中或许有竞争对手的不实攻击,但这也更要求一个人必须更加重视自己的名誉,以及每个行为所产生的后果。