目前常用的编程语言包括C, C++, Java, C#,PHP,Javascript,Python, Ruby。
我们先把这些语言分类,C,C++是编译型语言,而Java和C#属于基于虚拟机的语言,PHP, Python, Ruby, Javascript属于解释器语言。
所有的编程语言的设计思想基于两个相反的方向,一个是以丘奇的思想为代表的Lisp语系,他们关心的是逻辑和语言, 另一个是以图灵的思想为代表的C语系,他们更关注物理和机器。简单的说,就是一方面人们希望编程更贴近人的逻辑和语言,而另一方面更贴近机器的思维和语言。
然而,目前看这两个语系都有各自的优点和缺点。贴近人的思维、远离机器的语言,往往性能比较差(用过emacs就知道Lisp的程序有多慢了),但贴进机器的思维往往编程就是在受虐,因为你不能集中精力去解决业务问题,而是不断在解决技术问题。用过C语言的人都知道,无时无刻不在想着内存在哪里申请,在哪里释放。
但事实上常用的这些编程语言,很多都是两个方向的特性兼而有之,比如Java就吸收了很多C,C++和Lisp的特性。C系的语言从UNIX诞生以来一直是最受欢迎的语言,并成为软件工程界的主流,但最近几年Lisp系的语言逐渐被人们注意,主要原因是由于计算机性能的快速发展,和软件项目的不断膨胀。
开发效率与执行效率人们都想要,但这两者却是矛盾的。也许在不久的将来,人们可以发明一种语言能够平衡两者,从此程序员只需学习这一种语言,也许这种平衡是动态的,需要语言不断的调整。
如何选择,我想你已经有了答案。
建议每个有志于成为Programmer的同学至少要弄清楚C和Lisp这两种语言,不一定拿他来开发产品,但要弄清楚他们的设计思想。如果只想成为码农,那只需掌握Java,并熟练使用它,掌握它的每一个细节。