挖坟鞭尸:当年Sun公司的白皮书《About Microsoft “Delegates”》

标签: 语言编程 | 发表时间:2011-11-09 09:47 | 作者:jeffz@live.com (老赵) yu
出处:http://blog.zhaojie.me/
普通文艺二逼的Java

这是一桩当年的Sun公司与Java的旧事,还要追溯到C#还没出现,微软还在搞J++的时代。这篇著名的白皮书便是《About Microsoft “Delegates”》,其中列出了Sun眼中的Delegate,或者说Bound Method Reference这一更广泛概念的多个缺点:

  • 它为语言带来了复杂度。但实际上,这里更多的是“编译器”或是语言“实现者”需要应付的复杂度。对语言的“使用者”来说,尽管C#或Scala比Java语言要复杂不少,但是用起来却更为省事,大大减少了代码编写和理解的复杂度。
  • 它让语言变得不够“面向对象”。在我看来这种为了“面向对象”而“面向对象”可谓本末倒置,“面向对象”是“手段”而不是“目标”。事实上Java近年来的发展,例如静态引入MethodHandle,乃至社区不断诉求却一再延后的Lambda表达式,其实都在为了易用性而做出的妥协。
  • 它的表达能力不够。这点我始终不能理解,因为Bound Method Reference是运行时的概念,表达能力确是语言设计本身所影响的,一个运行时的概念为什么就没法用优美的语法形式表达出来?C# 2.0至3.0的飞跃,让它的表达能力早已远胜Java语言,而且这也与Delegate概念直接相关。
  • 它这不如适配器对象好用。Java语言的设计者们认为,用内部类/匿名类的语法来实现适配器对象虽然麻烦了一些,但也并没有带来什么问题。但是在使用者眼中,Java的语法噪音是出了名的多,直接影响Java语言的表达能力。如图,在C#中早就可以使用“文艺”的Scala方式来写程序,但如果想用相同的理念就只能变成十足的“二逼”了。

当然,白皮书还包含了更详细的讨论。最后,它信誓旦旦地写到:“Bound Method Reference并不是语言发展的正确道路”——至于现状如何就不多说了。我的感觉是:不谈Java语言设计者的水平如何,至少这篇白皮书的作者,在语言设计的能力或品味上几乎落后了Anders Hejlsberg十年。从我之前翻译过的一篇文章来看,Anders一直扮演着指引语言发展方向的作用,这也是为什么C#在这十年的发展能比Java要健康得多的主要原因之一。

这篇文章的信息量并不大。原本我是在写另一篇文章,这些文字只是顺便提起的话题,但是一说却又感觉刹不住车。为了避免偏离话题,于是就把它单独成篇了——您可且看且过,倒是下一篇文章会更有趣一些。

相关 [鞭尸 sun 公司] 推荐:

挖坟鞭尸:当年Sun公司的白皮书《About Microsoft “Delegates”》

- yu - 老赵点滴 - 追求编程之美
这是一桩当年的Sun公司与Java的旧事,还要追溯到C#还没出现,微软还在搞J++的时代. 这篇著名的白皮书便是《About Microsoft “Delegates”》,其中列出了Sun眼中的Delegate,或者说Bound Method Reference这一更广泛概念的多个缺点:. 但实际上,这里更多的是“编译器”或是语言“实现者”需要应付的复杂度.

Sun JDK 1.6内存管理

- 小丑鱼 - 淘宝JAVA中间件团队博客
分为使用篇、调优篇和实现篇三个部分,使用篇为填鸭式,调优篇为pattern式,实现篇为启发式,三个PPT的目标为:. 1.掌握Sun JDK的内存区域的划分;. 2.掌握Sun JDK垃圾收集器的使用方法和触发时机;. 4.掌握一些基本的GC调优的方法;. 5.了解自动内存管理的常见实现方法,以及Sun JDK所做的优化.

故事十八 STORY 18 by Sun Long

- Yao - Jia Za Zhi
假杂志邀请来讲第十八个故事的又是一位宁波的摄影师孙龙,因为要将的系列作品与大海相关,更是备感亲切. 孙龙的“海岸线”,与张晓在路上的、旁观的状态不一样,更多是一种身在其中的眷恋与深情,主观的情绪在一些细枝末节上若隐若显. 对于从小长大生活的地方,每个人都在自己的心里会藏着一些秘密、情绪,或者不露声色的痕迹.

前Sun CEO:Android无需获Java API许可

- - 业界
北京时间4月27日,据国外媒体 CNET报道,前Sun首席执行官Jonathan Schwartz周四在甲骨文诉谷歌侵权案中作证时称,Java API不应被视为专利或受Sun的保护,只要谷歌不使用Java这个词. Schwartz解释开放软件的性质时表示:“这些都是开放的API,我们想让更多的人使用,我们希望建起最大的帐篷,邀请尽可能多的人来.

[水木特快] 造谣贴(鞭尸)

- Hermes - 水木社区 今日十大热门话题
发信人: veheibo (百川东到海 何时复西归), 信区: NewExpress. 发信站: 水木社区 (Mon Jul 25 08:49:07 2011), 站内. @快乐老猫520:对@于建嵘 说:@楚陌君:35,一个神奇的数字. 动车相撞35人死亡,河南平顶山矿难35人死亡;重庆暴雨造成35人死亡;云南遭大雨袭击全省35人死亡.

新款诺基亚WP7手机Sun出现

- 洞箫 - cnBeta.COM
继Searay和Sabre型号的诺基亚WP7机型出现后,又有一款产品出现在法国运营商Orange的产品名录中,它的名字叫Sun,是一款运行Windows 7.5 Phone (Mango)的机型,内置一颗1.4GHz的处理器,一体成型聚碳酸酯外壳,16GB存储器,800万像素摄像头,3.7英寸AMOLED屏幕,microSIM卡槽,预计发布时间11月7日.

Nokia Sun「曙光」乍现,又一款 Windows Phone 现身?

- 品味视界 - Engadget 中国版
Nokia 今年究竟会出多少部 Windows Phone. 法国网站 Mon Windows Phone 发现一支目前为止仍未见过的手机型号 -- Nokia Sun,出现在 Orange 官网的上市清单中. 这款最新泄露的 Nokia 手机它的确也和日前已经谣言满天飞的 Nokia SeaRay 与 Sabre 一样,符合目前为止该公司对其「芒果(Mango)」手机的命名规则.

太陽の光をビンにためよう。 Sun Jar/Moon Jar

- GOT4416 - まとめのインテリア
Sun Jar/Moon Jarは、照明です. 陽のあたる窓際に置いておきます. 夕日のようなオレンジ色で発光するSun Jar. 月の光を連想させる涼しげなブルーの光のMoon Jar. こちらのショップで、詳しく紹介されています. 楽天市場ショップ「プラスチック」の商品ページへ. 大手サイトで、この商品を検索しました.

Sun曾要价1亿美元向谷歌兜售Java专利遭拒

- oky - cnBeta.COM
新浪科技讯 北京时间7月22日上午消息,谷歌律师罗伯特・范尼斯特(Robert Van Nest)周四透露,Sun Microsystems在被甲骨文收购以前,曾提出以1亿美元的价格向谷歌出售Java专利,但遭到后者的拒绝.

Oracle vs. Google 訴訟最新發展,Sun CEO 曾公開支持 Android

- daviddu - Android 資訊雜誌 android-hk.com
爭議多時的 Android 系統侵犯 Java 版權一案,近日再次出現突破性的發展. 話說於 2007 年 Android 面世的時候,同時 Java 還是屬於 Sun Microsystems 的產品. Sun 的 CEO Jonathan Schwartz 在當時公開於網誌中祝賀 Android 系統的誕生,而且還表示 Java 能成為手機操作系統的開發平台感到十分高興.