拼圖項目:延期的后果

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.pswp.cn/news/371232.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/371232.shtml
英文地址,請注明出處:http://en.pswp.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;第…