说到选择语言的问题,这两年最流行的一句话是:语言只是一个工具,只要完成用户需求,选什么语言不是问题。
这句话当然没错,听起来理由也很充分。但问题在于,这句话在什么环境下说、由谁来说。在一些场合下这样说话并不一定正确。
用户这样说,是正确的,因为用户关心的是软件的使用;老板这样说,是正确的,因为老板最关心的是经济效益;甚至架构设计师这样说,也是正确的,因为他不关心底层的实现。
但是,如果具体编码的程序员也这样说,也许就不正确了。任何一个软件,一旦进入到编码阶段,选一门语言就是不可回避的问题。如果写代码的也说,选什么语言不是问题,哪语言还要不要选了?如果是一个开发团队,哪大家还要不要统一语言?
选择语言的问题还要看在什么技术层面上。一个熟悉十几门语言,编码成十载的程序员这样说,应该是合适的。但是一个刚刚学了 C 语言,写过几段试验代码的人,如果也这样说,就很难让人信服。“选什么语言不是问题”这句话其实已经带有某种软件哲学的意味,只有功底深厚,在软件行业里摸爬滚打、身经百战的资深软件大牛、大师,才有这样说话的资格。有这个资格,具体是说,他们已经真的具有了超越语言语法束缚的境界,随便找一门语言就能上手,语言对他们来说已经没有任何意义。但是,对一个函数还要调试半天的代码爱好者,语言就是他们全部的工作,让一段一段的代码能够工作起来就是他们的目标。
说以说,语言到底是不是问题,还要看对谁来讲。有些人说,是高屋建瓴,有些人说,就显得可笑。我觉得对于个项目团队,既要大处着手,还要仔细对待语言选择的具体细节问题。只有选择合适的语言,才能写出最成功的软件。