`
JeffreyZhao
  • 浏览: 12205 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

幻灯片:Why Java Sucks and C# Rocks

阅读更多

昨天在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就行了。

如果您无法浏览上方的幻灯片,请点击链接去SlideShare直接观看。感谢韦恩卑鄙提供演讲录音,关于演讲的详细内容,自然还是请关注的我的后续文章:

 

23
14
分享到:
评论
20 楼 clojurer 2010-05-22  
难道不觉的scala的语法很复杂吗?我看了就头疼....
所以俺选择了clojure,哈哈
19 楼 joseph_he 2010-04-28  
murainwood 写道
Java是煮面,C#是拌面..搞来搞去都是面,俺烦透面了,俺去吃饺子。


小二,来2笼包子!
18 楼 murainwood 2010-04-27  
Java是煮面,C#是拌面..搞来搞去都是面,俺烦透面了,俺去吃饺子。
17 楼 ipconfiger 2010-04-27  
这下热闹啦,踢馆
16 楼 kuchaguangjie 2010-04-27  
你算哪个葱,吓jb扯淡
15 楼 kuchaguangjie 2010-04-27  
  
14 楼 jamesqiu 2010-04-26  
rovanz 写道
JeffreyZhao 写道
fxsjy 写道
scala的编译速度太慢了,就是个玩具。

编译慢点没关系,执行快就行了,呵呵。

话说用fsc不会很慢,你自己非得用scalac,怪谁啊?


fsc第一次比scalac慢,classloader把常用类装载后常驻内存;之后能快点,但不多。
期待IBM把eclipsec,jikes这些先进编译技术引入scala,才有希望。
13 楼 rovanz 2010-04-25  
JeffreyZhao 写道
fxsjy 写道
scala的编译速度太慢了,就是个玩具。

编译慢点没关系,执行快就行了,呵呵。

话说用fsc不会很慢,你自己非得用scalac,怪谁啊?
12 楼 rovanz 2010-04-24  
这B想出名想疯了
11 楼 bengxia 2010-04-23  
呵呵,这算不算踢场子啊?够狠够牛好看好玩。。。
10 楼 JeffreyZhao 2010-04-22  
fxsjy 写道
scala的编译速度太慢了,就是个玩具。

编译慢点没关系,执行快就行了,呵呵。
9 楼 fxsjy 2010-04-22  
scala的编译速度太慢了,就是个玩具。
8 楼 lbfhappy 2010-04-20  
玩语法糖有意思么?
7 楼 JeffreyZhao 2010-04-20  
liuqiang 写道
大致看了一下,不知所云。

你有scala的实际使用经验吗?


只要需要写Java的地方我现在都用Scala,比如Andriod开发(这个只是做Demo),或是使用一些Java的服务时(正式项目中用)。
6 楼 joseph_he 2010-04-20  
liuqiang 写道
大致看了一下,不知所云。

你有scala的实际使用经验吗?


赵姐夫可是牛人!
5 楼 yuantong 2010-04-20  
不知所云!
4 楼 liuqiang 2010-04-20  
大致看了一下,不知所云。

你有scala的实际使用经验吗?
3 楼 jkfzero 2010-04-19  
Jeff==“姐夫”,这翻译直白吧
2 楼 yaobiao753 2010-04-19  
jkfzero 写道
姐夫赵在JE也有号……

他小舅子你是?
1 楼 jkfzero 2010-04-19  
姐夫赵在JE也有号……

相关推荐

    大师品软件_Why Software Sucks

    《大师品软件_Why Software Sucks》是一本深入探讨软件设计缺陷和用户体验问题的书籍,由David S. Platt撰写。这本书旨在揭示为什么某些软件在使用过程中让人感到困扰,并提出改善软件设计的策略。作者Platt是一位...

    itsucks-0.4.1.zip

    【itsucks-0.4.1.zip】是一个包含开源Java Web Spider项目的压缩包,这个项目被称为itSucks。itSucks的设计目标是帮助用户轻松构建网络爬虫,它使用了Web机器人技术,允许用户通过定义下载规则来抓取网页内容。项目...

    信息安全_数据安全_Why_the_role_of_CISO_sucks_and_w.pdf

    信息安全_数据安全_Why_the_role_of_CISO_sucks_and_w 信息安全研究 金融安全 安全人才 安全对抗 法律法规

    itsucks-0.4.1开源爬虫

    itsucks爬虫基于Java开发,这意味着它具有跨平台的特性,无论你是在Windows、Mac还是Linux系统上,都能顺利运行。Java作为一种强大的编程语言,为itsucks提供了稳定性和高效性。 itsucks的设计理念是易用性,这体现...

    Why.Software.Sucks

    and got behind the concept of a book for the users of computers, not the programmers that they usually deal with. Instead of, "That's not what we do here," they stepped up and said, "Hey, cool, look...

    itsucks开源代码

    爬虫源码,开源 java 很好 强大 可扩展

    sucks-rocks:用于收集对小代码片段的反馈的 Web 应用程序

    很烂 用于收集对小代码片段的反馈的 Web 应用程序 后端 后端是使用以下库在 haskell 中实现的 REST-ish api: Scotty 用于 REST 接口声明 数据库访问的持久性(使用 sqlite 实现) 用于连载的 Aeson ...

    IE Sucks-crx插件

    IE SUCKS这么糟糕,实际上是有趣的观看失败! IE样式信息条在页面中的障碍码时发光。 无广告! Internet Explorer是一个浏览器的F ****笑话,并字面上持有进步! 在逐步淘汰之前庆祝最终几天,用IE吸收插件。 每当...

    开源爬虫介绍及下载链接

    12. **ItSucks**: 提供Swing GUI界面的Java爬虫项目,支持下载规则的自定义,通过下载模板和正则表达式定义爬取行为。 13. **Smart and Simple Web Crawler**: 一个集成Lucene的Web爬虫框架,支持两种遍历模式,...

    why-your-test-suite-sucks

    标题“why-your-test-suite-sucks”暗示了我们讨论的主题是关于测试套件存在的问题以及如何改进它们。测试套件是软件开发过程中的重要组成部分,它确保代码的质量、稳定性和可靠性。然而,当测试套件出现问题时,...

    itsucks:http

    ItSucks 网络爬虫 描述 这个项目是一个具有下载(和恢复)文件能力的java网络蜘蛛(网络爬虫)。 它还可以使用正则表达式和下载模板进行高度定制。 所有后端功能也可在单独的库中使用。 官网 执照 本地开发使用 将 ...

    rabbit sucks!-crx插件

    【标题】:“rabbit sucks!-crx插件”是一个针对特定网站或应用的浏览器扩展,其主要功能是优化用户界面,提供更加个性化的浏览体验。这个插件的名称可能具有一定的幽默感,暗示它可以帮助用户摆脱某些他们不喜欢的...

    魏猷君:关于Coder&Code那些事儿

    #### 二、关于Code:Why Your Code Sucks? 好的代码不仅仅是实现功能那么简单,它还需要具备可读性、可维护性和可扩展性等多方面的要求。魏猷君提出了判断代码好坏的一些标准: 1. **功能性**:如果代码不能正常...

    sucks:用python制作的小CRUD

    标题中的“sucks:用python制作的小CRUD”表明这是一个使用Python编程语言开发的简单创建、读取、更新和删除(Create, Read, Update, Delete,简称CRUD)应用程序。CRUD是数据库操作的基础,是任何数据管理系统的基石...

    Cmdswitch2-Ecovacs:一个将您的Ecovacs vacuum集成到Homekit的Python脚本

    "on_cmd": "sucks clean 120", "off_cmd": "sucks charge", "state_cmd": "python3 /var/homebridge/vacstate.py", "polling": true, "interval": 120, "timeout": 20 }] 执照 麻省理工学院

    learnjava:学习AP CS-A考试

    learnjava 个人学习AP Computer Science A 的 Repository AP的CS A考试其实比较简单,5分还是很容易拿到的,如果你已经有OOP基础只需要学习简单的java语法即可.这个repo的代码基本涵盖了AP考试会涉及的所有用法(对...

    your-band-sucks-v2:通过不良专辑封面分享音乐

    【标题解析】:“your-band-sucks-v2”很可能是一个音乐相关的项目或应用,可能是由开发者创建的一个幽默或者讽刺性的音乐分享平台。"v2"表示这是项目的第二个版本,通常意味着在原有基础上进行了改进和优化。 ...

    爬虫技术精髓.pdf

    ItSucks 是一个 Java web spider(web 机器人、爬虫)开源项目。支持通过下载模板和正则表达式来定义下载规则。提供一个 swing GUI 操作界面。下载地址为。 WebSPHINX: WebSPHINX 是一个 Java 类包和 Web 爬虫的...

    admiral-sucks:Chrome扩展程序旨在消除Admiral非常邪恶的Adblock Recovery:angry_face_with_horns:

    ,解压缩并将admiral-sucks文件夹拖至chrome://extensions Chrome扩展面板。 为什么? 是一家通过帮助网站将其内容货币化而获利的公司。 它们提供多种服务,但非常令人讨厌的是AdBlock Recovery :首先,它们向网站...

Global site tag (gtag.js) - Google Analytics