笔者只用过java和C#,js只是看了点皮毛。对于ruby,python,go,lisp等网络上常见的语言一窍不通。并且,限制于个人能力,对java和C#的认识也并没有很深刻。
想请对编程比较有功底的同志说说自己对各种语言的理解,包括他们的优劣。发表观点时,请尽量具体。
抛砖引玉
1.java的编程效率不是很高,特别是相对于C#来说。比如,C#中可以使用lambda表达式优雅实现的功能,在java中必须要写大量的,繁复的代码才能完成,且可读性较低。GUI编程更不用说,vs的窗体设计器相对eclipse或者intelliJ idea的窗体设计器要先进一个时代。
2.java的开发工具和vs相比有较大差距。之前java开发时使用eclipse,现在改用intelliJ idea,后者相对前者有较大幅度的提升。但是相对vs,还是有一些差距。比如在开发中时常遇到版本管理工具出问题。代码部署不及时(eclipse也有此问题)。
3.java编程感觉不好,不爽。感觉java不会为程序员考虑,比如C#和android的库中都有string.isnullorempty()类似的函数,但是java中就没有,实现此功能必须if("".equauls(var) || var == null)。类似的地方还有很多。相对地,C#就提供了相当多的语法糖类的机制,将编程变得更加简单和高效,对程序员也更加友好。
务必注意
非具体的、空谈的观点请勿跟帖,谢谢合作。
更新
1.想把题目修改成“谈谈你对自己熟悉的编程语言的理解”,无奈segmentfault不支持修改问题的标题。其实我只是想让您说一下自己对比较熟悉的编程语言的理解(在语言层面上、具体地说明),并且在这些谈论中,能让人对编程语言有更加深刻的理解。
2.本题的目的并不是想在众多编程语言中进行比较,选出谁最牛逼。可能由于我的原因(在我举的例子中,不自觉的将java和C#相比,其实,我的初衷只是在比较中说明问题而已),但是请接下来回答的同志们了解这一点。
3.有些同志谈到了语言生态层面,并且见解相当独到和深刻,但其实,题主更想看到一些语言层面上的东西。
虽然很多程序员觉得这个问题的 level 很 low,都不屑于回答这种问题。
但是题主的态度是很认真的,并写了很多自己的见解,所以我对这个问题点了赞。希望题主认真选择自己的使用语言。
看来题主不太喜欢java。只要看我的用户名就知道了,我是java粉。题主在字里行间都流露出对C#的赞美之词,难道题主不知道“PHP是世界上最好的语言”这个真理吗?
你只要说出1个java的缺点,我就可以说出来10个C#的缺点,但是这样的争论完全是浪费时间。
我很同意题主的观点,单论语言层面,C#可以甩java几条街。如果同易用性来讲,windows也可以甩linux几条街。甚至,在浩如烟海、成百上千的android机中,肯定有几款在iphone之上。
就好比我们相亲时,第一感觉肯定是被外貌所吸引,“大波、浪”只是我们做出选择的一个方面,但不是唯一。
我可以以java粉的身份告诉你:在企业开发领域,java是当之无愧的王者,微软为C#烧了那么多钱都无法撼动,难道ruby、PHP可以?哪怕是最火的nodejs,在web领域可以和java抗衡,而且java也已经败了,但是在企业开发领域,java是最好的,没有之一
java就如同iOS,如同*nux。也许java有很多缺点,IDE不如VS,易用性不如PHP,异步不如nodejs,但是,企业依然选择它,因为他不仅仅是语言,而是一整个生态系统。
1024核配32G内存的android就算比iphone快100倍,我依然认为iOS是最好的手机操作系统,是因为他的整个生态系统,而不仅仅是一部手机。
虽然PHP是世界上最好的语言,但是java有世界上最好的生态(目前)。
---------------- 2014年10月18日17:22:16 更新------------
看到你又补充了问题,“就语言层面”来讲,一般是:越是后开发的语言,越优雅。比如C# 比java优雅,PHP比perl优雅,而且,各种语言也都在相互借鉴。
如果java不够优雅,可以试试Scala。不过C#不够优雅,可以试试F#。不过JavaScript不够优雅,可以试试CoffeeScript。
再者:没有不优雅的语言,只有不优雅的程序员。
不是电锯不好用,而是他不会用。
有人说LISP优雅,那么写个操作系统试试。有人说C优雅,那么用C做个网站试试。
哪些说C#优雅的,把VS关了,打开st、vim写个网站出来试试。
如果遇到两种语言,一种难学,一种易学。我通常会选择难学的。