JavaOne 2015 –第二十版十大收获
我們剛剛在舊金山有了JavaOne的第二十版。 這將是我自2004年以來第十二次參加不間斷的系列活動。最大的教訓是什么,可以揭示Java的未來。
模塊化斗爭
自從Java 2007首次提到模塊以來,已經花費了將近9年的時間,或者說,直到2016年9月JDK 9正式發布時為止。 實際上,自從JSR 277 Java模塊系統以來,已經有11年了 。 當我們考慮這一努力時,將需要十多年的活動和思考( 請參見何鴻tan的原始聲明 )。 Oracle對JDK的模塊化工作需要自己的傳記。 馬克·雷因霍爾德(Mark Reinhold)也許有一天會寫這篇文章,也許是21世紀神話般的人月。 有效地重寫Java令人恐懼,以至于它遵循HIGH COHESION和LOOSE COUPLING花費了近十年的時間。 除了JDK工程師以外的其他所有人都應該感到非常害怕,尤其是如果您所涉及的業務擁有龐大的Technical DEBT。 許多機構負擔不起升級,重寫和重新排序舊式類,程序包,更不用說模塊了。 的確,對于那些在承受重壓之下仍然掙扎并仍然堅持使用Classic Java(JDK 1.0至7.0)的企業而言,可維護性成本將變得天文數字化。對于Oracle,他們沒有選擇支付開發,設計和體系結構的全部成本。整個Java平臺和社區的利益,以便在將來走向更好,更大的困境。 當我們在2016年達到JDK 9 GA時,應該向Oracle表示巨大的祝賀。
模塊化與我們的未來
應用程序和JDK的模塊化是新的諺語,我相信Java和實踐的開發人員,設計師和架構師社區都有一個“線入砂”(又名DEMARCATION POINT或DISRUPTION LAYER),我們將在2016年通過模塊化系統可以比JDK平臺更快地進行更改。 如果Project Jigsaw的設計正確,則您不再需要與CORBA或IBM派生的老式java.util.Date和java.util.Calendar競爭。 從理論上講,您應該能夠替換這些模塊服務,并在不需要它們時將其刪除。 如果不需要Swing,則該模塊可以使用,對于JavaFX和AWT(僅用于服務器部署)相同。 雖然保證了Java平臺的向后兼容性,但這意味著有機會進行試驗和提出新的想法。 我預計,對于招聘部門,JDK 9在2017年將成為CAMEL的絕招。 我相信沒有人會想以更快的速度觸碰Java SE 7或更早版本(經典Java)。 如果那里甚至有經典的Java提示,高級工程師都會查看您的工作規格并運行100英里。 您可以提供每天1000英鎊的費用,為期6個月,但是認真對待這些債務的人會試圖重新模塊化古老的Java代碼,而當下一個從事這一行業的女性開始使用現代模塊化Java框架時,獲得豐富的經驗,領先一步,在JDK 9上構建下一個偉大的事物。另一方面,模塊化并不能解決它的技術債務,技術難題。 如果您企業的關鍵任務軟件是無懈可擊的,那么除非行為發生敏捷變化,否則您將繼續承受債務。 我認為,這就是Oracle JDK 9團隊希望我們成為搶先體驗的早期采用者,以便盡可能地測試其企業軟件的原因。
增強了將Java推入云的能力
在JavaOne 2015上,有很多關于微服務和構建云企業應用程序的想法和會議講座。 展覽中有一些云供應商,例如JElastic,Red Hat,Pivotal和CloudFoundry。 Oracle發布了自己期待已久的云產品,稱為Oracle Java Cloud 。 具有諷刺意味的是,他們的PaaS解決方案提供了與Oracle Coherence集群的服務器,該公司以前稱為Tangasol。 Oracle的前副總裁Cameron Purdy創建了這個早期的分布式網格和緩存解決方案,實際上,他的擁護者Brian Oliver早在2007年就參加了JAVAWUG BOF 26并就Coherence進行了演講。
Kubernetes和Docker
Arun Gupta是討論Kubernetes (Google的Linux容器集群)的三位技術演講者之一。 有新的術語。 莢是并置的一組Docker容器,它們共享IP和存儲卷。 服務是一組Pod的單個,穩定的名稱,還可以充當負載平衡。 標簽名稱值對已分配給容器。 在非正式的情況下,通常采用Java EE與Spring模式的LIGHTWEIGHT與HEAVYWEIGHT之間的舊應用程序服務器營銷戰在本次JavaOne會議上退居二線。 如果您碰巧使用Docker或Vagrant以及諸如Chef或Puppet之類的配置管理工具,您可能會吐口水,因為如果您要停止并(重新)啟動通過部署從Soup到Nuts配置的虛擬機,配置文件,您不在乎WildFly服務器有多輕或有多重? 更重要的是要知道,可以使用已部署的ACME.WAR啟動WildFly 8.2,并且HTTP Undertow模塊已連接到秘密端口4123,該端口從外部映射到某些虛擬機上的端口80。 如果WAR文件為10MB或1MB,則您不再關心WAR文件的實際大小。
夢想微服務
黛安·馬什(Dianne Marsh)關于NetFlix開發人員的討論完全結束了。 許多人都在考慮這些想法,我懷疑很少有人在他們的組織內部擁有實際實踐這些想法的業務支持,更不用說敏銳了。 微服務需要運營團隊在跨職能部門(通常跨部門)工作。 在許多傳統的美國和英國投資銀行,其他大型商業機構,零售組織,數字設計機構中都可以找到SILO-Driven Engineering,這是對Micro服務的厭惡。 因此,請繼續做夢,如果您幸運或不幸地成為其中的一部分...最好的希望根本不是微服務,但是您可以重新考慮您的MONOLITH并嘗試使用COMPONENTISED APPLICATION,如果可以的話在您的企業體系結構中,您應該能夠獲得模塊化的MONOLITH,它比(意大利面條內置的)MONOLITH更好。
Scala和Groovy
–今年,替代JVM語言的討論較少。 我和Ted Malaska參加了Apache Spark演講,這很有趣。 我還參加了Groovy中Cedric Champeau的“領域特定語言”演講。
JavaFX逐步移動友好
JavaFX在臺式機上像往常一樣工作-令人驚訝的是,在今年的會議上,圍繞JavaFX的主題沒有創新,展示了新功能。 但是,由于Swing處于維護模式已經有好幾年了,因此JavaFX的采用比以前更強。 Gluon正在投資對JavaFX的移動跨平臺支持。 Gluon已經接管了將JavaFX應用程序移植到iOS和Android的工作。 對于臺式機,JavaFX可能需要富文本編輯組件。 對于移動設備,有JavaFXPorts 。 我懷疑該軟件團隊的下一個巨大工作就是JavaFX 3D和媒體庫的幫助。
JavaScript影響
AngularJS在客戶端對JavaScript編程提供了一些支持。 在我自己的Digital Java EE 7演講中,我演示了AngularJS案例工作者應用程序,并且在AngularBeans上還有另一個競爭性演講,將AngularJS與JSF混合在一起。 甲骨文還宣布了自己的JavaScript擴展工具包 ,該工具包基于Knockout.js,JQuery,JQuery UI和RequireJS。 Kito Mann在Polymer網站組件上進行了演講。 當然,對于那些有興趣在JVM服務器端運行JavaScript的企業,也有Nashorn技術會議。
無容器構建
人們肯定對Spring Boot感興趣,并且可能是WildFly Swarm ,正是出于與可能在微服務上出售相同的原因。 顯然,最大的區別是圍繞Hot JVM類重載和動態資源的技術支持。 這些擴展解決方案與應用服務器中的WAR部署投資背道而馳,這并不奇怪,盡管該規則的例外是帶有Scala(和Java)的Play Framework。 諸如JetBrain的IDEA 15和Netbeans 8.1之類的IDE允許通過HOT更改進行交互式和實驗性開發。 開發人員可以對Java代碼進行合理的更改,更重要的是更改CSS,頁面viewS和JavaScript文件,而不必重新啟動應用程序。 借助Micro服務及其親密的同伴,他們在WildFly Swarm和Spring Boot中構建了無容器構建,這種高度交互的模式(我在Bret Victor中進行頻道介紹-在這里發明原理 )被取消了。 在WildFly Swarm的情況下,最大的問題是它們還沒有爆炸式,可動態重載的ShrinkWrap實現,它可以允許JVM重載類和Web資源。 唯一的解決方法是用APPLE-IDIOMATIC-SPLIT-TEAMS-SECRET方法編寫應用程序。 用戶界面設計團隊開發了一個新的前端,該前端負責按標題,標題,圖形和描述顯示產品列表。 服務器端團隊編寫遠程端點服務以查詢數據庫。 前后團隊在REST API或Web界面上達成共識,但是他們對產品本身或說明一無所知。 他們將使用模擬數據進行測試。 高管將在發布前用Apple iPhone Invisible Edition 5150以及所有相關信息,標題,標題,英雄圖形,配件,描述和價格填充產品數據庫。 對于蘋果公司來說,這是一個很好的解決方案,因為它是一家Kool-Aid公司,對較小的團隊,中小型企業甚至一人(和一人��樂隊)都不利,因為通常,您需要一個完整的堆棧解決方案,您可以從頭到尾完全使用它,反之亦然。無容器則非常適合RESTful端點和服務器。CodeHale的DropWizard向我們展示了如何實現這一目標。對于Java的Web前端工作還不太好(尚未)。
詹姆斯寫Java
Mike Duigou的演講James編寫Java:我通過閱讀James Gosling的代碼[CON3563]所學到的知識 –這真是一場絕妙的演講。 我很高興看到此直播,因為它讓我想起了不要在編碼中沾沾自喜的想法。 詹姆斯·高斯林(James Gosling)絕對會繼續以自己的知識來擴展自己的編碼。 還有改進的空間。
Java至少還有20年的生命。 從23歲(初級工程師)到63歲(ACME / PEABODY的首席架構師和靜態代碼),完全有可能在Java平臺上工作。 我認為這當然是可以實現的。 Java編程語言和JVM之外的其他行業實踐將對該生態系統產生深遠影響。 硬件將不斷擴展。 JVM將不得不處理1TB RAM和垃圾回收。 確實,這是JVM工程團隊的下一個增長領域。 JDK 10應該希望看到值類型來幫助進行內存分配。 在服務器方面,云仍然是新的前沿領域,因為它仍不確定藍領Java開發人員將如何決定云的價值。
在用戶體驗方面,JavaFX使富客戶端接口的壽命延長了。 JavaScript非常適合Web瀏覽器和HTML5,CSS元素,但是對于重型圖形動畫,聲音和媒體渲染,富客戶端是應用程序的必需。 畢竟,本機移動開發中可能有一個冗長的尾巴,Java和JavaFX只能位于LOCKED-IN平臺兩個據說不可逾越的WALL GARDENS之上。 如果Java坐著,蠕動并潛伏在那兒,那么機會就會隨之而來,它每隔一段時間就會做一次,然后繼續前進。 但是,將需要專業的發燒友和敏捷的小型創新創業公司來保持壓力,并確保移動開發的UNIVERSALITY繼續進行。 我相信這是有機會的,因為移動芯片組將在10年內成倍增長。 看看JavaFX和其他JavaScript橋接解決方案在短短幾年內(更不用說20年)將我們帶到何處,將會很有趣。
Java MODULE系統是巨大的機會。 它是最終的DESIGN-FOR-REPLACEMENT功能,而不是Java編程中的功能,而是Java虛擬機和JDK發行版中的功能。 我們,開發人員,設計師和建筑師是否會永遠使用它? 我們將在SOLID的修改中使用它嗎? 還是我們會以某種方式濫用它? 模塊化可能位于標尺的兩個相對端,并且比例不同:物聯網和微服務分布式應用程序模塊。 就硬件和軟件而言,未來很難預測。 我們唯一能做的就是參與其中,并不斷前進。 讓我們一起享受旅程吧。
+ PP +
Arun Gupta,用于通過微服務和容器重構Java EE應用程序(CON1700)
拉斐爾·貝內維德斯(左)和安東尼·杜蘭特(右)
Stephen Chin在Raspberry Pi,Oracle Demogrounds和JCP Hackergarten上焊接
徽章2015
這是給Java冠軍和Googler同事Kevin Nilson的。 凱文的兒子正在JavaOne 2015的Ignite會議上講話!
翻譯自: https://www.javacodegeeks.com/2015/11/javaone-2015-the-twentieth-edition-ten-takeaways.html
總結
以上是生活随笔為你收集整理的JavaOne 2015 –第二十版十大收获的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: netbeans7.4_NetBeans
- 下一篇: 苏州将建成国内首条“智慧高速”,可实现
