我觉得我的评论有些问题了。我曾在gigix的blog中说:感觉没什么东西非用functional的语言不可的,以前也了解过lisp和haskell,感觉没有什么出奇伟大的事情。语法上的便利很容易被大家的不熟悉抵消掉。
这显然是废话。其实计算机能做的事情完全是受限于其硬件,有什么传感器,有什么存储器,有什么CPU。你用机器语言,用汇编,用什么写都不能写处超出硬件所支持的(直接和间接的)功能来。所以我失望啊,我居然做了一句如此废话的评论
But,那么要各种语言来干什么?我觉得一个是为了更快,一个是为了更强。更快当然不是为了让CPU更快,程序的速度的上限是受到问题本身和CPU速度限制的,而这个上限虽然在大多数情况下并无法计算,但是它确实存在。我们为了更快,是为了能够更快的写出解决问题的软件。无论人们争论用计算机是来干什么,但是解决问题,做事实是肯定是正确的目标。所以,各种语言的出现都是为了能让程序员更快的解决问题。
更强是让程序员能处理更大规模的问题。管理复杂度是程序员主要的工作,也是软件实现主要要解决的问题。程序语言很大程度上就是让程序员能管理更大规模问题的复杂度。
如果这两个目标(更快更强)得到承认,那么我们就能看破一切语言之间的宗教纷争。只要能让程序更快的写出东西,写出更强的东西的,那就是好的。其他的花花草草都是不好的。虽然这样说得有些绝对,但是绝对的不是在于尺子。绝对的在于人们如何用尺子去比量东西,很多时候我们是用过度绝对的眼光去做比较,比如n年前,我们说元模型是一种浪费,怎么怎么的。这个就是我们没有看到趋势,看到未来的发展。但是尺子还是对的,它现在确实是能够符合尺子的规范,只是我们当年(假设哈,)用尺子去比较的时候出了问题。
至少目前我还是觉得我心目中的尺子(更快更强)是没有什么问题的。大家或许还能提出包含更多内容的尺子,或许我说的太偏激了。不过没关系,请朋友们指出来,正好学习学习。