拼图项目:延期的后果

Mark Reinhold先生于2012年7月宣布 ,他们计划从Java 8撤回Jigsaw项目 ,因为Jigsaw计划于2013年9月(从现在开始一年)推迟其发布。 这个日期是众所周知的,因为Oracle已决定实施Java的两年路线图计划,因此2013年9月实际上是Java 7发布之后的两年。
根据拼图的网站…
“该项目的目标是为Java SE平台设计和实现一个标准模块系统,并将该系统应用于平台本身和JDK。 该项目的最初目标是设计和实现一个模块系统,其重点仅在于模块化JDK的目标,并将该系统应用于JDK本身。 对Java平台真正标准模块系统的需求不断增长,促使项目范围扩大,以产生一个模块系统,该模块系统最终将成为Java SE平台的JCP批准部分,并满足ME和EE平台的需求。 。”
他们还说:
“竖锯最初是为Java 7设计的,但后来推迟到Java8。”
现在他们想将其推迟到Java 9中:-(有关更多决策的更多详细信息,请参见Reinhold博客上的“问答”。您可以阅读并关注那里的讨论。这是我的看法:
没有Jigsaw,我相信将Java无处不在非常困难。 没有Jigsaw,在智能手机和平板电脑时代,多平台的想法就仅限于服务器。 拼图可能是“火车上的迟来”,但它使Java迟到了整个平台生态系统
观察市场,我们可以看到开发正变得依赖于平台(iOS,Android等)。只有Java可以克服这种趋势,因为它具有在多平台实现方面的丰富经验,现在是时候了! 否则,在3或4年内,设备上将没有Java,而开发社区将拥有足够的知识来使用它。 因此,Java基本上将是服务器端技术。
我的预测背后的原因如下:移动设备的资源有限,模块化的JVM将允许考虑每个设备的约束来创建定制的JVM。 我让那些设备制造商大吃一惊:“我不会在我的产品中分发可能对用户体验产生负面影响的产品”。 这就是苹果公司(至少是公众的一种说法)避免为iOS浏览器分发Flash插件的论点。 可能正因为如此,Adobe最终放弃了在移动设备上使用Flash。 模块化JVM将简化与许多设备播放器的许多Oracle协商。 苹果将​​Java作为iPad和iPhone应用程序的语言包含进来是合理的。 谷歌最终将JVM嵌入到Android中,以利用新的Java语言功能更快地发展,而只忙于将JVM扩展到特定Android功能的模块。 甚至有可能使诺基亚免于破产:D
您可能想知道Apple和Google是否会采用JVM作为标准的运行时平台。 您听说过机会成本吗? 它指出,我们当前的选择和活动实际上正在阻碍其他可能的选择和活动。 棘手的部分是选择成本最低或利润最高的机会。 话虽如此,我们可以看到考虑Java不是一种选择的情况,因为在那些公司做出决定时Java不是模块化的。 如果Java是模块化的并且苹果采用了Java,那么iOS平台的应用程序至少是Android的三倍。 谷歌的战略是“ Java”追赶苹果。 只有Java才能允许Google在这么短的时间内做到这一点。 因此,忽略Java并非那么简单。
现在,甲骨文与谷歌对决:当然,推动Java向前发展的努力应该在经济上可行,而要使用Java,谷歌必须花一些钱。 不幸的是,Oracle和Google使用不同的货币。 甲骨文考虑许可问题,而谷歌考虑广告问题。 这些货币不兼容,很难转换,因为虽然许可证是成本,但广告是利润。 因此,甲骨文永远不会达成增加谷歌成本的协议,但是有可能达成降低谷歌利润的协议。 换句话说,为了使Java适用于Android,Oracle可以从通过Java应用程序销售的广告中获得Google一定比例的利润。 Google与Yahoo,AOL等许多公司进行了这种交易。 为什么不使用Oracle?
如果Oracle没有提供JDK团队在Java 8中实现Jigsaw所需的全部资源,那么Oracle很快将完全退出普及游戏。 如果不将JDK分为可管理和高效的部分,Oracle将没有理由说服业界相信Java是长远之计。
在决定放弃拼图之前,我请甲骨文考虑一下后果! 他们必须忽略固定发布路线图,并接受任务的难度。 只要Jigsaw即将推出Java 8,我们就可以对Java 7感到满意(无论如何它并未得到广泛采用)。这个固定的发布周期实际上可以在Java 8之后出现。
我想错了,对甲骨文正式宣布在下一个JavaOne中对Apple和Android设备上的JavaFX的绝对支持感到惊讶;-)但是,我认为可能性很小:-(
参考: Hildeberto博客博客中来自JCG合作伙伴 Hildeberto Mendonca 的延期项目拼图的后果 。

翻译自: https://www.javacodegeeks.com/2012/09/project-jigsaw-consequences-of-deferring.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/371232.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Navicat下Oracle数据泵的使用简单例子

如何使用Navicat等数据库开发工具进行高效开发将是未来工作的重点。Navicat一来美观而来够操作够傻瓜,使用得当其强大功能与PL SQL不相上下。今天学习就是如何在Navicat中使用数据泵进行数据导入导出。 数据泵使用前事项:想使用数据泵必须以sys或system等…

前端自动化之nvm安装

nvm ——node环境版本控制工具。 1.解压安装包 2.打开setting文件,修改文件内容 root: D:\node\nvm path: D:\node\nodejs arch: 64 proxy: root:当前nvm所在的路径 path:将root路径的nvm改为nodejs arch:64位系统 3.配置环境变量…

mysql 主从复制介绍_MySQL 主从复制介绍

一、MySQL 主从复制简介(1) MySQL 主从复制通过逻辑的 binlog 日志复制到要同步的服务器本地,然后由本地的线程读取日志里面的 SQL 语句,重新应用到 MySQL 数据库中(2) 在复制过程中,一台服务器充当主服务器,接收来自用户的内容更…

【Java面试题】18 java中数组有没有length()方法?string没有lenght()方法?下面这条语句一共创建了多少个对象:String s=a+b+c+d;...

数组没有length()这个方法,有length的属性。String有有length()这个方法。 int a[]; a.length;//返回a的长度 String s; s.length();//返回s的长度 java中数组没有length()方法,求数组的长度可以使用数组的length属性。 int[] arr{1,2,3,4,5};int length…

Spring范围代理

考虑以这种方式定义的两个Spring bean: Component class SingletonScopedBean{Autowired private PrototypeScopedBean prototypeScopedBean;public String getState(){return this.prototypeScopedBean.getState();} }Component Scope(value"prototype")…

递归和分治的概念性的理解

递归的概念表述: 直接或间接调用自身的算法称为递归算法。 理解:递归算法的可以理解为多个算法的嵌套调用,只是调用算法是同一个,同时需要一个工作栈来作为各层次的数据存储区,包括所有实参指针,局部变量&a…

ibatis mysql sqlmapconfig_iBATIS sqlMapConfig配置详解

1 <?xml version"1.0" encoding"UTF-8"?>2 "http://ibatis.apache.org/dtd/sql-map-config-2.dtd">5 6 11 13 enhancementEnabled"true"14 lazyLoadingEnabled"true"15 errorTracingEnabled"true"16 m…

什么情况使用 weak 关键字,相比 assign 有什么不同?

什么情况使用 weak 关键字&#xff1f; 在 ARC 中,在有可能出现循环引用的时候,往往要通过让其中一端使用 weak 来解决,比如: delegate 代理属性 自身已经对它进行一次强引用,没有必要再强引用一次,此时也会使用 weak,自定义 IBOutlet 控件属性一般也使用 weak&#xff1b;当然…

使用Spring Redis发布/订阅

继续发现功能强大的Redis功能集&#xff0c;值得一提的是对发布/订阅消息的开箱即用支持。 发布/订阅消息传递是许多软件体系结构的重要组成部分。 某些软件系统要求消息传递解决方案提供高性能&#xff0c;可伸缩性&#xff0c;队列持久性和持久性&#xff0c;故障转移支持&am…

python在律师上作中的实例_python-基础面试题

深拷贝1.对象A拷贝&#xff0c;生成对象B&#xff0c;且我们修改对象B(对象A)中的数据或方法&#xff0c;对象A(对象B)不会受影响&#xff0c;这就是深拷贝2.对于可变与不可变类型对于不可变类型&#xff0c;深拷贝会和浅拷贝一样&#xff0c;拷贝的是引用&#xff0c;不会创建…

2017 校招华为上机题

1. 给定一个字符串&#xff0c;把字符串内的字母转换成该字母的下一个字母&#xff0c; a 换成b&#xff0c;z 换成a&#xff0c;Z 换成A&#xff0c;如aBf 转换成bCg&#xff0c;字符串内的其他字符不改变&#xff0c;给定函数&#xff0c;编写函数void Stringchang&#xff0…

JSON –拯救杰克逊

有时您必须使用JavaScript从服务器中获取一些数据&#xff0c; JSON是完成此任务的不错选择。 让我们玩一下JPA揭秘&#xff08;第1集&#xff09;-OneToMany和ManyToOne映射中的“雇主-雇员-福利”示例。 我们将在基于Spring Framework的Web应用程序中使用它。 我们的第一个…

maven 使用记录之修改 maven默认jdk版本

maven package执行的时候会遇到jdk版本不对的问题 &#xff1a;原因是 maven所指定的jdk版本与项目使用的jdk版本不一致1.项目属性的 java compiler可以设置2.直接修改 maven 的 settings.xml 一劳永逸settiings.xml <profiles>标签内加入<profile> <id>j…

java默认值_Java中八种基本数据类型的默认值

通过一段代码来测试一下 8种基本数据类型的默认值package dierge;public class Ceshi {int a;double b;boolean c;char d;float f;byte e;long h;short j;public static void main(String args[]){Ceshi anew Ceshi();System.out.println("整型的默认值是&#xff1a;&quo…

HDU - 1024 Max Sum Plus Plus 最大m段子段和+滚动数组优化

给定n个数字&#xff0c;求其中m段的最大值&#xff08;段与段之间不用连续&#xff0c;但是一段中要连续&#xff09; 例如&#xff1a;2 5 1 -2 2 3 -1五个数字中选2个&#xff0c;选择1和2 3这两段。 dp[i][j]从前j个数字中选择i段&#xff0c;然后根据第j个数字是否独立成一…

JavaFX教程–基础

JavaFX似乎正在RIA领域获得发展。 有了正确的工具和开发支持&#xff0c;它肯定会在下一个最佳技术“物”上付出巨大的代价。 我没有在这里写任何JavaFX评论&#xff0c;因为有很多技术评论可能对它进行了广泛的评论&#xff0c;但是&#xff0c;我将编写一个简单的教程&#x…

java script this_JavaScript this 关键字

JavaScript this 关键字面向对象语言中 this 表示当前对象的一个引用。但在 JavaScript 中 this 不是固定不变的&#xff0c;它会随着执行环境的改变而改变。在方法中&#xff0c;this 表示该方法所属的对象。如果单独使用&#xff0c;this 表示全局对象。在函数中&#xff0c;…

trim函数的作用 $.trim(str)

去掉字符序列左边和右边的空格转载于:https://www.cnblogs.com/dandeliongogo/p/6610890.html

php数据库备份脚本

// 备份数据库 $host "localhost"; $user "root"; //数据库账号 $password ""; //数据库密码 $dbname "mysql"; //数据库名称 // 这里的账号、密码、名称都是从页面传过来的 if (!mysql_connect($host, $user, $password)) // 连接…

java swing 案例详解_《Java Swing图形界面开发与案例详解》PDF_IT教程网

资源名称&#xff1a;《Java Swing图形界面开发与案例详解》PDF内容简介&#xff1a;《Java Swing图形界面开发与案例详解》全书共20章&#xff0c;其中第1&#xff5e;2章主要介绍有关Swing的基础知识&#xff0c;包括Swing的基本概述、如何使用IDE开发Swing程序&#xff1b;第…