浅谈语言之争
有人的地方就有战争。——不知道谁说的话。
语言争论这事情实在太多了。浅谈语言之争,真的很浅。
比如C#和Java之争,如果你经常上C#社区或者Java社区,你会经常发现这些玩应。C和C++争论,这个没那么频繁,偶尔爆发。Linus一直贬低C++,说C++太臃肿了,据说git用C写,就是为了不让C++程序员参与。Python和Ruby之争,如果就Web开发来说,还可能有PHP,用这个,用那个,用哪个?Python和Perl之争,脚本语言的争论。Erlang,Haskell,F#,函数语言的争论,等等。
如果换个角度,还有动态语言和静态语言的争论,近年来函数式语言也掺互进来,各种争论实在太多了。
然而我觉得其实大多数时候是与语言无关的,无论哪种语言都是不差别的,特别是类似的语言,语言之所以产生争论,本身在于平台和需求。
语言的发展也依赖于平台。比如说当年Windows下软件开发如火如荼,VC++很火,为什么很火,因为Windows很火,而且有个很火的框架MFC是用VC++写的,你不用这个不好写Windows下的应用啊。虽然有人觉得MFC很遭。C当年为啥火气来了,因为Unix,貌似C就是为Unix而开发的,而且Unix的嫡系Linux也一直在用C开发。Objective-C呢,近年来热度不断上升,为嘛?因为Apple的移动应用,因为iOS,因为App store。因为存在这么一个平台,而恰巧这个平台只能用Objective-C。为嘛Ruby火了,因为Ruby on Rails,因为快速建站的需求。为什么Python近年来不断提升,因为一方面Python做Web开发是一个不错的选择,还有Google App Engine也对Python助力不少(至少我是因为Google App Engine才认识了Python),还有系统管理不错的脚本语言,因为Perl的势衰,Python作为脚本语言因它的简洁性受到了不少的青睐。因为Android的兴起,也推动了人们对Java的热情。C#为什么也挺火,还是因为Windows,Windows近年来冷落了VC++,全力推广.NET平台,然而.NET平台从某种角度来说就是C#平台。
为啥我的一些同学要学C#,学Java,因为你满眼望去,各种C#,Java工程师的招聘,虽然有些东西让人觉得很俗,然而谁不生存呢,生存就不能免俗。当然我不是说C#,Java俗。我曾在博客园里贴了一篇《两年C#与.NET》,引来不少口水,我几乎没有回应,因为我一直觉得这些东西都是神马浮云。你不论怎么争论,那还是原封不动的站在那里,况且这玩应,看多了也就累了。
所以说语言本身往往并不会怎样,再难用的语言如果有需求在那里,也有人用。任何东西都是需求决定的,因为现在都有需求希望开发周期缩短,所以动态语言大行其道。因为一些应用需要强悍的性能,所以一些古老的底层语言至今来有它们的舞台。因为有并发的需求,所以函数式语言才越来越多的受到人们的关注。
语言的决定权往往掌握在少数人的手里,平台制定者的手里,业界大佬的手里。而我们一帮民众就只能呼啦啦跟风,墙头草随风倒。需求到了哪里,语言就跟随到哪里。
最后说点无关又相关的:
人们也总是把一件不平凡的事情想象的平凡,因为不平凡的实在是太不平凡了。人们也总是把一件不平凡的事情想象的平凡,因为不平凡的实在是太不平凡了。
我想应该没人愿意把每个语言都学一遍,从经济学角度将这是不经济的。但是从技术这个角度讲,多学几种语言还是有好处的。
你可以对某种语言有偏爱,也可以诋毁某种语言,程序员是有性情的,因为语言是他们的挚爱。我觉得程序员应该对某种语言有偏爱,也应该有争论。因为这表明他们还是爱他们所从事的事情的,如果不爱,最起码还是有感情的。
有爱有恨,这样才爽快!
让争论飞一会。