语言种种。

今天从CB上读了一篇文章,讲述了一个程序员的编程经历,主线是PHP。原因似乎是因为最近网上又开始讨论ASP、PHP、C#孰优孰劣的问题了。

我趁机也随便回顾了一下自己学习程序语言的经历。
Basic,ASP,JavaScript,C++,Assembly,Java,C#,PHP,Python,Lua……似乎流行的语言我或多或少都略知一二。

如果你要跟我讲各种语言的特性和区别,我真的一时很难答上来。
但我会告诉你,我喜欢用C++开发应用程序;ASP真的很弱,虽然我经常用它做网页;我不喜欢Java,因为它没激情;C#很强大,风格也很好,但我就是经常想不起用它;虽然Asp.net跟Asp名字看上去很像,但是思想差很远;PHP功能强,上手快,但是我不喜欢阿帕奇;Python颠覆了我对语言的看法……框架经常能帮上很多忙,但是偶尔让我感到困惑,似乎让我误以为我在使用框架,而非语言本身。

其实这些都是一家之谈,里面也有我个人的一些小小偏激情愫。但我相信每个学了3门以上语言的程序员,都会有自己的独特感受,都有自己心目中神圣的语言。

我在学到第2、3门语言的时候,就经常听到一句话类似这样的话,“学程序语言要专攻一门,不要多学”。我现在可以告诉你,这话基本上是不对的。如果你是个技术狂热者,如果你热爱程序,但是如果你没有掌握最热门的语言中的大部分,那么,你顶多是个“伪狂热者”。

业界经常会有月X贴讨论“语言”与“思想”的关系。有人说,语言只是工具,思想才重要。这话固然没错。但思想从何而来?如果你学了3种以上的语言,对每种语言都了解它的规范,以及它要表达的精神(思考方式),我认为这时候你才有能力来谈论思想这个话题。可是如果你C++很厉害,用记事本就可以写个1W行的代码,但是你就懂个C++,那么你永远不知道Full OO的好处,你也不知道Python的清晰度的伟大。

把多种语言融汇起来,是件很幸福的事情,你能体会到思想的火花爆发的那种喜悦感。语言之间的差异、关联,能让你与语言设计者产生共鸣。当有一个需求摆到你面前,你能知道用哪种语言来实现它效率最高。这就谓之思想。

掌握多种语言有一个好处。就是当你再去学习一门新语言的时候,你知道哪些地方需要重点体会,哪些地方一笔带过即可,这样可以帮助你快速掌握一门新的语言,也就是我们常说的“学习能力”?我称之为“Study Pattern”。

说到这里,仿佛我的这篇文章的命题是“掌握多门语言的好处”……其实我就是看了那篇文章有点感慨,随便写点文字而已,不必当真。

说了半天,那篇博客的链接如下:
一言难尽话PHP,兼谈我的编程经历
http://liut.cc/blog/2010/04/all-about-php.html

《语言种种。》上有3条评论

  1. 部分赞同。
    我也喜欢C++,但我也在学习其它语言,比如有时候,我学习JAVA是为了更好地理解与使用C++,有时候学习PYTHON,是想更好地了解C++的不足。
    对于一般人来讲,人的精力总是有限的,因此被劝之要专注于一门;但在计算机世界,二班三班的人多得去了。就我目前理解而言,真正优秀的设计与编程,应该是与语言无关的。
    正在试用“闪电杀毒手”,不知会不会因你的离去,该项目一直停滞在V3.2。
    [reply=colordancer,2010-05-06 09:30 PM]谢谢。好神奇~[/reply]

  2. 呵呵 赞同你有关学习多种语言的看法。从学校的C++,到工作后的Java、Perl、Shell、Ruby等,接触语言多了之后,思维更加开阔,对不同的问题选合适的语言解决,不再局限。呵呵 最近可好?看你博客才知道你从趋势闪人了?现在在哪?
    [reply=colordancer,2010-04-24 09:41 AM]还在AV行业呢[/reply]

  3. 想我电脑买了2年多,都不晓得有内置麦,昨天找了1小时才找到,点进来还以为你要讲外文学习…
    [reply=colordancer,2010-04-24 09:42 AM]额,幸亏不是内置摄像头。。讲外文学习啊,我没你在行的。我现在充分体会到两个非英语语种的国家的人用英语沟通的痛苦了[/reply]

发表评论

电子邮件地址不会被公开。 必填项已用*标注

*

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据