说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

Java 与 .NET 的平台发展之争

HTML文档下载 WORD文档下载 PDF文档下载
Java 8即将正式发布,开发者Andrew表示,Java在某些特性上还是落后于.Net。比如,Java 8中最令人期待的Lambda表达式,在2007年发布的.Net 3.5中已经存在了。此外,Java的发布周期也越来越长,这是什么原因导致的呢?

CSDN/编译  Java 8即将正式发布,从早期版本中,我们已经可以领略到一些令人兴奋的特性。但是开发者Andrew C. Oliver表示,尽管如此,Java语言在某些特性上还是落后于.Net。比如,Java 8中最令人期待的Lambda表达式,在2007年发布的.Net 3.5中已经存在了。他认为,.Net已有的和即将到来的特性要比Java8优秀得多,如果Java 9再不做一些大的改进,那么Java落后于.Net就不止一点点了。


关于更新速率

微软有能力做出更快的改进。我记得在很早期的时候,微软能做到每周都更新数据库API:从ODBC、RDO、ADO到OLEDB等。自从出现了.Net之后,微软便达到了一种前所未有的更新速度。

但是Java为什么落后这么远?在早期的时候,Java的发展也是非常快速的,从Java 1.0.2 到 Java 1.1,仅仅一年时间,我们就看到了Java彻底地改变。从Java1.1到Java 1.2只用了一年半时间,而Java 1.2.2只用了7个月的时间(这是一个重要的版本,只是使用了一个小版本号)。而在10个月之后,具有关键意义的Java1.3问世,这也正是Java发行的第一个带有垃圾回收的版本。

Java 1.4为我们带来了NIO和正则表达式,但在之后不到两年的时间里就被取消了。Java 1.4.2版本带来了用于多核环境的垃圾回收器。Java 1.5带来了可用于生产环境的并行和并发GC(垃圾回收)特性,它还添加了更重要的并发和NIO功能,不过这一过程花了一年多的时间。

总的来说,Java还是有不错的表现的,Java 6使锁变得更廉价,但其在本质上和Java 1.5是一样的,还是让用户多等了2年时间。Java 7是第一个对底层VM技术做出重大改变的版本,同时还给用户带来了invokedynamic特性——用于在JVM上更好地连接其它语言,但是在两个大版本的更新之间用了大概5年时间,这个进度着实有些太慢了。


为什么Java进展缓慢?

对于这个问题有一个简单的解释:Sun并不是一个实力超群的公司。Java创造于互联网繁荣时期,而那个时候Sun正在出售Sparc业务。

之后,互联网经济不景气,Sun决定持续加大其在硬件业务中的投入。Sun比较擅长创建生态系统,但它就是无法创造出用户需要的产品。Oracle是Sun的后继者,擅于彻底毁坏生态系统,最终吞并/摧毁圈内的同行,还会开发出高利润的产品来取代同行。

Oracle曾在一份简洁的公开声明中称:“我们都知道,由于各种商业和政治原因,该版本(Java 7)花费了不少时间。”

当然,在分析Java的问题上,我们还必须考虑Sun公司的财政困难以及Java系统周边的东西。Sun公司违背了其提交Java进行标准化的初衷,它创造了自己的“标准”委员会,即JCP(Java社区进程)。随着时间的推移,JCP尽管在一定程度上已经开放,但是无论是Sun还是现在的Oracle,都拥有绝对的否决权,它们可以忽略规则,做任何想要的事情。

什么阻碍了JCP?不是开放性,而是利益冲突。我记得当时参与EJB3规范制定的某个供应商,它习惯延迟规范的进度。这是为什么呢?这些供应商需要购买或开发一个产品来集成到它们的应用服务器中,如果下一代JavaEE规范已经发布,那么它们也必须尽快推出产品,它们不希望比市场晚。

协调产品的发布,对于一个公司来说都有些难,更不用说几个公司了。因此,我认为Java最大的问题并不是由于JCP造成的。

抛弃或分离一些东西

Sun已经成为了过去时,现在Oracle是“老板”,那么为什么Java版本的发布周期仍然需要这么长?最简单的解释是——Java太大。大项目往往意味着进展比较缓慢,且充满风险。下面我们就来看看如何将Java变得小一些。

首先,Oracle必须摆脱其“心爱”的客户端技术。当然,目前还没有更好的Swing和JavaFX的替代品,但是使用这些技术意味着需要把你捆绑在Oracle的平台上——至少目前是这样。

我尚不清楚,目前JavaFX或客户端Java为Oracle带来的战略上的意义是什么,它们似乎被设计用来和VB6、Flash或一些4GL(第四代语言)进行竞争的。在现代的、多平台的环境中,大部分人会认为触摸和滑动操作会更酷一些,而JavaFX与这种趋势是不相匹配的。为什么我们需要使用客户端Java来阻碍服务器端的发展,并且还有可能伴随着各种风险,比如持续数月的Java零日漏洞安全问题以及关于如何禁用Java的讨论。

如今Java语言已经不再和Java平台一样重要。从Java平台中砍掉Java语言,并根据自己的时间表进行发布,这对于Oracle来说可能更容易——Oracle推出的开发工具不是Java业务的重要组成部分,并没有为大部分的Java开发者所使用。

Java平台上有多种语言,比如JRuby、Scala等等。以高性能和可扩展的方式来支持这些语言和技术,对于云计算来说非常重要。如果云计算是未来,那么Oracle应该首先考虑Java平台。而目前所支持Ruby、Scala、甚至Node.js的Java平台似乎是一个“锚”,而不是产生创新的“引擎”。

比起MarkReinhold(Java SE规范领导者,目前在Oracle公司),我更希望由Charles Nutter(JRuby创始人,目前在Red Hat公司)和Martin Odersky(Scala创始人,目前在Typesafe公司)来决定在Java平台中添加哪些特性。我并没有不尊重Mark Reinhold的意思,但是一些证据表明,在很多与Java语言合作的项目中,Java语言拖慢了项目的进度。

对于Oracle领导的Java来说,事情发展不会那么顺利,很多Sun之前的决议现在仍然在困扰着我们。我的建议是,抛弃客户端Java,独立出JVM和Java语言的发布周期,致力于将Java作为一个平台,而不是想一次性地解决所有问题。

英文来源:Java faces tough climb to catch up to .Net

VB怎样限制鼠标移动 ANI文件格式 -VB资料 AVI文件格式-VB资料 DBF文件转为MDB文件的方法 -VB资料 FLIC动画文件的播放程序设计-VB资料 MS Office 开发工具VBA TextBox 中英文输入方法切换-VB资料 TXT文件的读取-VB资料 VB 如何将dbgrid印出来 VB5.0调用Office97技巧 VB5如何把帮助文件加到设计的程序内? VB编程步步高-打印篇(二) VB编程的好帮手资源文件 VB的OPEN对话框控件图示功能扩充 VB通用数据表格输出程序的设计 VB网格中输入数据 VB应用程序中打印条形码的两种方法 VB与Windows资源管理器互拷文件 VB中DOS文件名与长文件名的转换 VB中的Unicode 和 Ansi 格式 VB中如何实现文本查找功能 VB中自制文件搜索器 Windows 初始化文件的修改 -VB资料 Word 97与WPS97的完美结合 -VB资料 比较两个文件-VB资料 采用递归算法删除带有多级子目录的目录-VB资料 菜单项的动态装入 -VB资料 处理加了密码的MDB文件-VB资料 VB创建临时文件 从公共对话框控件中提取多个文件名称 -VB资料 从全路径名中提取文件名 -VB资料 jive安装数据库配置问题? 哪里错了?好像和游标有关系。 我的ComboBox用的是Drop List模式,为什么会出现List Box拉不下来的情况? 如何将exe的安装文件转成msi格式 关于sql语句出错信息 gei fen 用过winrunner的高手请进,100征求解答 一个问题 如何将以pdf为扩展名的文件里的文字转换成可以编辑的文字 为什么中文可以换行显示,英文不可以呢? 全局函数放在那里 大家聊聊远程控制的优缺点!!!! 怎样用jsp做广播通知?--在线等 如何用不是SA的账户去激活SA级的作业? 关于execl向数据库复制的问题 >一起学习:VFP右键功能!< Tdatabase组件的应用 请问这个检索的SQL语句怎么写? 这样是否就一定安全了,高手进 为什么直接删除不行 asp.net问题,马上给分 在线请教各位一个简单的问题--请问oracle8哪里有的下栽,急!!!!!!! 谁给我Beyond 2003演唱会下载地址! 为什么同一存储文件的程序在win2000个人版下出现:"存储文件时的共享违例"但是在win2000 server下没有,请教各位大师 用什么程序,把用户的安全性调到最低(可以出现警告对话框)??? 在线等待,马上揭贴 谁知到哪里有下载Jbuilder啊。。 如何在Win2000下注册服务程序呢?分不够再加 请问:如何解决“JDBC 服务器”配置不受支持的问题。 万分火急!请大侠指教(100分立即给) 如何在窗体上动态加载图标? MM明天生日放分庆祝(一) 如何进入Java的门? APS.NET下Excel调用:如何让服务器端只运行一个Excel实例?如何结束Excel进程? 快来快来!出事儿啦! 3d效果的正方形!! 惭愧啊!这么简单的数据库问题我都不会,你会吗? 谁告诉我这个马甲“ FrameShare (大城市里的帅哥) ”是谁的,千分不在话下! 在线等待,马上揭贴 再發貼(grid中定位問題) 怎么把长度为8且首位为0的string类型的数据转换成对应的长整型,用什么函数?载线等!!!! 在panel上没有OnKeyPress事件,怎么样实现按键盘某键触发该Panel上的button事件 急急急!高分求解(在线等待) 我有个棘手的问题,不知道高手能否给我解决,关于vc安装的问题 几十万条查循纪录纪录,在WEB页面中分页显示问题?大虾帮忙!!!!! 如何连接SQL数据库 在线等待,马上揭贴 MM明天生日放分庆祝(二)来者有分 Dephi的浏览器控件比VB慢,占用资源也大些! 100分,请大家帮我把下面的文字译成英文,很简单的 parser.parse是什么意思:请看代码(在线等) 菜鸟提问,快请高手解答!谢谢了! 前一个句子有broken,后一个句子中的repair用什么时态My computer is broken.He is r-------it for me. 有一台古怪的计算器,只有两个运算键,红键把给的数乘2,黄键把给的数的最后一个数字去掉.如果开始给的数是31,为了得到19,那么除了按若干次黄键外,至少要按红键多少次? 将 一块3.2立方分米的铜块放入一个长16厘米,宽10厘米的长方体容器里,水面上升多少厘米? 谁能推荐几首好听又好学的英语歌曲吗?最好是动画片上的, 请您把过程写的详细一点 请写详细的步骤 空上能填什么单词Do you w__ to see the st___ of the world?He is e__ in the gym in the picture 1.哥哥姐姐们,能把3个空都填了吗? What the doctors really doubt is _____ my mother will recover from the serious disease soon.A.when B.how C.whether D.why 男孩经常扶老人过马路The boy often __________ the road你可以骑自行车去那里You can ________ 笑得更充实用英语怎么说? 月 jing 不 调 怎么 怀 我有月 jing 不 调 怎么才可以 怀 孕呢?月 jing jing 常性的不来,烦死人了 第九届两岸经贸文化论坛提出19条共同河南连霍高速大桥炸塌事件至今未公布处纽约华裔社区发生命案5人被杀 死者包伊拉克首都发生多起汽车炸弹爆炸 至少纽约华裔社区发生命案5人被杀 死者包世界主要城市10月28日天气预报最高层着手“顶层设计” 中国周边外交“舞动浙江”华丽登场 我省万人排舞大杭州今晨创“入秋”后最低气温 下周全中共代表团访问澳大利亚解放军少将:中国军事力量发展绝不针对图文:修复水毁桥湖北省第八届网络文化节启动图文:坚守信仰高地 矢志铸魂育人19家企业昨集体登陆四板损房受灾群众捐木材确保大灾之年不减收现场办理重点提案卫生改革要实现公平可及群众受益防止“带病提拔”重在“敢唱黑脸”图文:智能装备显身手湖北南漳富湾风电场项目法人政府特许经
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘