
July 20, 2006 19:21 by
胡健
我写程序,并不是语言通才,那种什么样的语言都是拿来就写,两三天就能上手的人,不是我能效仿的。不过多多少少,到现在为止,我也用过了好几种计算机语言,都能写,都没什么问题,其实却都不懂。
最早最早,是HTML,这也是一种语言呢,是我比较拿得出手的一个,不是我没得说了拿这个也来糊弄人,不得不说,有很多程序员,并不懂这个,即便能写,但能用良好的HTML语言写出符合标准的XHTML+CSS规范,而且页面风格还比较美观大方的程序员,在国内目前不多见。
后来是javascript, 后来是C,C++,java, 但是都没怎么用起来,VB用过一阵,那时做一个卫星水文系统,DELPHI分析过代码没写过,在开始转向.net平台之前,我用得最多最熟练的是ASP,当时公司的一班牛人都是金蝶那边的人,原来有用VB,用C,用C++的,但那时在一起却是用ASP做项目,用什么就学什么呗,抱着就是混饭吃的想法,我那么一路走来,进这公司突然看到牛人甲写的ASP框架,顿时醍醐灌顶,原来代码应该这么写啊,ASP语言之美,就此呈现。
熟练使用某种语言,和精通某种语言,境界有着鸿泥之别,看起来,ASP和VB根本就差不多,很多人觉得ASP之于VB,就如同JSP之于JAVA,但是我之前用VB的时候,只是写程序,看到那套ASP框架的时候,却看到了美,说牛人甲精通ASP,这才是拿得出手的评价。
其实语言设计,也是一种美学观,往大了说,以汉语为核心的东方文明和以拉丁语为源头的西方文明的巨大差异,难道不是跟语言的风格不同有着密切联系么?古代汉语书面语是文言文,强调言简意赅,即使是赋这种文体,富丽堂皇,极尽排比,也是每一个字里都饱含着巨大的信息量,一个字的多种语义,对表达社会科学概念有好处,但对需要精确描述的自然科学却相形见绌,所以中华文化自古重文轻理,没能首先进入工业时代,实在是文字的表达方式的约束所致。
就计算机语言来讲,何者以言美?C++是美的,森然,lisp是美的,缠绵。但不是谁都能咂摸到语言内在的秩序之美。拿这两年从java社区突然窜起红得发紫的却是用语言Ruby写的ruby on rails这套Web开发框架来说,有的人溢美之词无以愈加,有的人左右挑剔不屑一顾,赞美它的人,是懂美的,怠慢它的人,只会拿它的性能,规模来挑刺,强作解语却不知道自己本就没找到北。
庄表伟有一句话说的特别好:
语法是强化的框架,框架是弱化的语法。
为什么是ruby产生的ruby on rails,而不是python?也不是php?更不是java?这得归于语言的美学。java世界最不缺的就是框架了,人人都有一套思想,人人都有一套框架,但ruby on rails却给了java世界最大的震撼。Java里的著名框架spring的创建者Rod Johnson说过类似一段意思的话,就是java里做好一件事只有一个方式,不像C++里面那么多,所以Java编程者能更有效的实现目标。他说这话充满了自豪感,然而恰恰是java,几乎无法找到做好一件事的最好方式。如果是ruby,ruby on rails就最大限度的发掘了ruby的潜力,毋庸置疑地成为最佳选择。我想,ruby on rails之所以能在Java世界里引起那么大的回响,并不是因为它的号称开发效率比Java快10倍,而是它让java世界发现了做好一件事原来是有一种最佳方式的呀。
ruby是日本人写的,ruby on rails是丹麦人写的,西方说,ruby on rails把ruby带入了计算机语言的主流,曾经,巴西人写过了一个叫Lua的优雅语言,但是就没有流行起来,ruby on rails让ruby语言之美,震撼了自我感觉良好的java世界,语言和框架配合的天衣无缝,好像就是为了你要做的事情而出现的,而不会有这么做也可以,那么做也可以,看当时什么情况来决定的犹豫。同学阿,不用看了,它就在那里,天造地设,用古龙的风格,ruby世界开天辟地以来,为了等要做的这件事的出现,只为了等这件事的出现,ruby on rails就呆在那里了,David Heinemeier Hansson不是发明了它,而是发现了它。这种会心之感,是别的语言还无法达到的。
从而ruby on rails的功能,理念可以复制到java(groovy脚本语言),可以复制到.net(castle项目框架),但是其美,其在ruby世界里的天造地设的归属感,却复制不了,沦入了芸芸众生。
虽然不算最早的,但相比我的编程史,我用C#也很长时间了,从03年至今,我现在一般用C#2.0写程序,最近的这个项目,我尝试用了LINQ,一个实现了一些C#3.0的语言特性的项目,但这个尝试后来失败了,我不得不加班加点地把损失的时间补回来。然而这次挫折,并不是损失,因为一直以来我都在想,在摸索,怎样去做对的事情,把事情做对?经过一些挫折,这样的思考更加迫切。我不是技术狂热者,但是干编程这一行,我只想要发现其中的美学,我觉得我仍然还没有发现C#的美,没有发现内在的秩序,C#3.0还在成型中,Anders Hejlsberg还在思考,还没有准备好展示C#的世界观,C#还没有建立秩序,不过想想也可以释然,Java这么多年了都还这么乱糟糟的没有秩序,C#的世界,还有待放眼量。
想要学习编程的人,真应该学学ruby,学学ruby on rails,为什么有这样的语言?为什么和这套框架配合得这么好?关键是,它为什么在那等你?
0b2d6ef4-f4d7-484e-a1d7-488e9d14984a|0|.0