不想评论,也没必要评论,哪个语言好,哪个语言不好,因为,其实,每个编程语言本身都不难,只要学会了一种语言,其他的都是相通的。难的,好坏之分,是理解,记忆,熟悉,和流畅的使用那些每个语言提供的基础库和扩展库,也就是LIBs,或是APIs,或是SDK,或是Frameworks。
编程语言本身,就最简单的集合来说,就是一堆保留的关键词,和一堆的语法,这个,稍微看看,大家都会明白,还有后面的设计思想。就和学一门外语一样,一些词汇加上一些词汇能组合的语法。这些,通常包括的编程语言特性有:语句组成,变量定义,算术运算,循环语句,函数定义和调用,面向对象,指针操作,垃圾回收,输入输出,等等。基础的东西,大家如果学过或是使用过一种语言,其他的新的语言,花个一两个小时就能基本理解,就能写出一个 hello world 的入门程序。
那么,好坏之分,难的部分,浙江优就业小U老师认为实际上是那些基础库和各种扩展库。这些库,必须在实践中一步一步熟悉和掌握。如果不经常使用,还特别容易忘记,尽管现代的编程有各种智能辅助。会不会,熟不熟一门语言,很大程度上是对他们的持续使用和理解。这也是为什么,没有多个项目,或是几年的实践,很难说是一个语言的高手。
比如,同样对于网络的操作,有的语言的库包装的简单高级易用全面,有的语言就基础原始。那么对于那些有高级包装库的语言,大家就会觉得好,语言好用,开发效率高,想要什么都有,socket,tcp/ip,http,async/sync,select,event,甚至是sever,client,crawler,等等。而对那些比较底层的包装的语言,大家就学觉得开发效率低,难用,比如只有select,和socket。是不是大概如此?
学习完了编程语言基础,大家一般要花很多的时间去了解和学习基础库和扩展库,这个才是真正的痛处和难点,学了不用还容易忘记,用到的时候还得想到有这个函数库。那么,如果有一套对各种语言都适用的API或是库函数定义,那么,大家学习和使用一门新的语言的效率会大幅度提高。这时,哪个语言最好,也就不再是什么问题了。
这个方面,Protobuf, Thrift,COM,RPC,等等,已经在这方面尝试,如果有一天,大家不管用什么编程语言,只要记住一套接口函数,那就太美好了。这时,估计没有人会再争论,PHP是否是最好的语言了。