关于编程语言的一些思考
***博客已迁移至 http://benjycui.com/
#文章由原博客迁移过来,之前的发表时间为 2012-10-20 08:52
“语言都是差不多的”,大多数程序员都会这样子说。果真如此?还是仅仅是为了息事宁人?
下面先来一个简单的推理:
(1)java最新版跟Java1.0相比,一般人都会认同最新版的好
(2)同理,c#最新版比c#1.0好
(3)现在假设“语言都是差不多的”为真
(4)那么java1.0跟c#最新版差不多
(5)同理c#1.0跟java最新版差不多
(6)由(1)(4)得Java最新版比c#最新版好
(7)由(2)(5)得c#最新版比java最新版好
为什么得到了两个完全相反的结论?
我觉得是因为,语言之间其实是各有优点的。当然,语言之间存在差异,并不代表存在最好的语言。
语言是思维的体现:
每个程序员都有自己特别喜欢的一门语言,并且在学习其他语言的时候会觉得难以接受。其实是因为每个程序员的思维都是不一样的,一个程序员所选择的语言其实就是他的思维的体现。
看重性能的c++程序员会觉得python性能低下,但是python程序员却觉得c++的代码难以阅读,不够优雅。
每个程序员开发理念不一样,自然选择了不同的语言。
语言塑造我们的思维:
听说程序员在大概24岁之后,就接受不了新的技术。我认为除了是年龄的原因之外,还因为在多年的使用某一门语言之后,思维已经被固化了。
所以,即使c#是仿java的,但是其中的一些差异还是表现了不同程序员的思维差异。c#程序员会觉得属性很方便,并且无法理解java为什么要这么麻烦的一个一个的写getter、setter。Java程序员会觉得c#的属性这一写法很容易跟字段混淆。