May 18, 2007

我评编程语言(chap1)

2007-05-03 09:59:37 绛洞花主 (上海)

  你牛,顶你一下。
  问下豆瓣是用什么语言作的,有什么优缺点。



2007-05-03 11:51:01 guotie (南京)

  c, python



2007-05-03 20:59:11 氷の鋭 (南京)

  "问下豆瓣是用什么语言作的,有什么优缺点。"
  
  底层有C语言写的Cache。关于C语言我觉得没什么可说的——高山仰止,景行行止。表面上是所谓的“底层语言”“中级语言”,然而事实上它 具有很强的抽象能力,几乎是Lisp思想的底层反映——这包括宏vs语法变换,函数指针vs lambda算子等等。运行效率没的说,开发效率其实也不像某些动态语言的支持者们所说的那样低下(你也不想想,那个语言的解释器、编译器不是用C实现 的),开源社区有足够的工具(g字开头的一大堆啦)、经验、系统(比如sourceforge.net)支持,对于开源项目绝对可以大胆使用。
  
  前台页面服务器用的是Python。“实用主义”是Python的哲学。但这里的“使用”二字仅仅针对程序员(不像Smalltalk之流是 针对所有人),如果你想在Python上找到归宿感,你必须首先是那些比Python还差的语言的程序员(也就是说,首先你得会编程,其次没学过Lisp 之类的变态)。然后你就可以充分享受Python带来的,自由(主要来自出色的语法设计)、高效(想想那300多个从C时代发展过来的内置库)的开发了。
  但Python也是有缺点的,它并不是那种从语法层面上无所不能的语言(这也是它比Ruby弱的地方之一)。它的语法基于“人性化的”换行 缩进,没有语句块的概念,词法定界也只是被迫加上的,在玩儿Lambda演算方面有实际的困难(虽然它几乎支持高阶函数)。不过人家说了,“实用主义” 吗,这点小毛病对于实际项目来说无所谓的啦;如果每个语言都像ML那样全是严禁的数学概念世界上还能剩几个程序员。


No comments: