昨天在5173与博客园联合举办的技术交流活动中进行了演讲,现在幻灯片终于可以放出了。当然,光看幻灯片本身的效果不大,在演讲过程中我进行了非常多的代码演示和说明,幻灯片本身只能算是一个辅助手段,因此各位没有来听演讲的朋友,还是等我慢慢地对这个话题进行详细讨论吧。
不过既然幻灯片放出了,那么我进行这场“闹剧”的目的也可以完全公开了,其中有三:
- 揭露Java语言的生产力的缺失
- 表达C#的发展现状与常用编程范式
- 鼓励别人抛弃Java语言,采用Scala。
没错,我的最终目的不是为了“让Java程序员使用C#”,而是“让Java程序员使用Scala”。
这里我不得不多说几句。前天我写了“讨论意义与目的”之后得到了许多评论,从评论中我看得出,许多朋友在评论时并没有看我的文章。为什么这么说?因为在文章里不断重复“只是让Java程序员抛弃Java语言,不是Java平台”,而且让“并没有想让Java程序员转向C#”。难道这还不能看出,我是想要推广JVM上的另一门语言吗?只可惜我还是收到了许多类似的回复:
- 你说要用另一门语言来代替Java,这么语言是什么?C#吗?可笑……
- 你让黑莓,Android程序员去使用C#?他们看了只会一笑了之……
- 比较Java和C#语言本身不会有什么结果的,做开发还得看整体情况……
如果不是没有看我的文章,那么我只能想出另一种可能了:有些朋友并不知道JVM上的语言发展情况,并不知道目前JVM平台上除Java外最火热的语言是什么。那我就觉得奇怪了,要知道,现在可是在开Scala Days 2010呢,而且之前连Java之父高司令都高度评价Scala。
Java的粉丝们一直认为Java平台的最大优势是开放,我同意。但是,我想Java如此开放,但是为什么一些Java粉丝给我的感觉却是狭隘的心态和视野呢?例如,看到有人说Java坏话了,于是立即热血上涌,文章内容也不用看,文章目的也不去关心,不管三七二十一就在评论中想尽各种办法进行反驳。抛出各种论点,却鲜有论据——我是指靠谱的论据,而不是向某个朋友说的“.NET程序员90%只会拖控件,而Java程序员90%是了解核心技术的”这种莫名其妙的说法。要知道,论点易抛,论据难得。我的文章动辄数千字,就是为了想办法把文章内容说清楚。但是不管怎么努力,我还是会不断发现值得额外详述的地方——更何况在评论中的寥寥数字?
是的,从某个角度来说.NET平台资源是比Java平台要少。所以我觉得很高兴,我可以时刻发现前进的目标。例如有人说Java平台有个地方很好而.NET很糟糕,我不会想办法去驳倒对方,我会很乐意去了解它,然后看看它在.NET平台有没有类似的东西,它的思想能否借鉴给.NET平台,如果发现这种说法有明显问题才去“摆事实、讲道理”。除了Java平台之外,我还关注其他各种技术,让各技术为我所用。
Java平台的确开放,但对于某些Java粉丝来说,这难道只是您用来建立信心的借口吗?我一个封闭的微软平台的封闭的.NET程序员,无论从心态和眼界都比您要开阔。就好比,一个Java平台上的Scala语言需要我一个.NET程序员告诉您,这难道不很讽刺吗?还好,我相信说一些没边评论的Java粉丝只是少数盲目分子,而Java领域的大部分朋友还是相当靠谱的。
那么,我单纯比较Java和C#语言有意义吗?当然有,我只要能说明Java语言本身是多么糟糕,让我们有足够的理由转向Scala就行了。
关于本文详细信息,请关注《幻灯片:Why Java Sucks and C# Rocks》