爲何Java在25年後如此年輕:設計師的觀點

Java擁有25年的編程生命,而且仍然與開發人員息息相關。即便到如今,全球將近69%的開發人員社區仍在使用Java進行編碼。python

Java擁有25年的編程生命,而且仍然與開發人員息息相關。即便到如今,全球將近69%的開發人員社區仍在使用Java進行編碼。甲骨文最近發佈了Java 15,其中包含大量功能,例如密封類,隱藏類,愛德華曲線數字簽名算法(EdDSA),文本塊等。這使Java 15成爲25歲的年輕人,而不是25歲的編程語言。android

Java的歷史與演變

當1990年代初期有數十種很是穩定的編程語言(例如FORTRAN,COBOL,Pascal,C ++和Visual Basic)時,許多平臺(例如Windows,Mac,Unix,Linux和Mobile平臺)都要求在程序開發和開發中採用統一的方法。架構設計。詹姆斯·高斯林(James Gosling)和他的朋友們在詹姆斯辦公室附近的一棵橡樹下討論了這些方面,他們以爲應該開發一種新的編程語言來解決這些差距。在開發一種名爲Oak 的新語言的基礎方面,他們很是特別。後來該語言被命名爲Green(該團隊被命名爲Green team),後來又被命名爲Java(基於他們最喜歡的印度尼西亞Java Coffee)。程序員

詹姆斯·高斯林(James Gosling)於1995年推出Java,在此期間,還有其餘語言C,C ++,VC ++,Visual Basic,Python都有本身的市場和開發人員,部署。Java提出了WORA(一次編寫便可在任何地方運行)概念,簡單性,面向對象編程,並消除了C ++的全部痛點。最重要的是,帶有Applet支持的Web編程以及Enrich UI設計(抽象窗口工具包)。算法

因爲它的簡單性,它吸引了更多的開發人員,並在1998-2001年間成爲全部開發人員在國際公司(美國,英國)工做的「通行證」。可是,在2001年的同一時間,Dotcom大量減小了工做,爲Java增長了新的開發人員。可是,在之後的階段,在RMI之上使用JSP,Servlet和中間層體系結構EJB提出Web編程中的其餘功能,會帶來更多關於JAVA的企業應用程序空間的想法。Java還引入了移動編程以進入移動應用程序,所以引入了J2ME。結果,Java提出了J2SE,J2ME和J2EE。數據庫

可是,它們都使用CORE-JAVA做爲基本語言。Java還與IBM和Java聲音庫進行了合做。Java Media Framework與Java運行時結合在一塊兒,未來經過語音使用IBM進行語音合成對於媒體和教育領域的人們來講是另外一個了不得的里程碑。隨着時間的流逝,Java增長了開發人員的數量JUG同時被引入。Java Bug跟蹤和Bug報告很棒。編程

因爲功能簡單,功能強大,隨後幾年進行了更多部署,所以增加很是可觀,它從Market Java中淘汰了C ++,VC ++和Visual Basic,在開發人員社區中已經領先了將近5-6年。它甚至將python語言擱置一旁,並帶來了諸如JavaScript Web編程(CSS + HTML之上的動態支持)之類的功能。Java具備大量的轉換功能,而且能夠與新引入的語言GO,RUBY,SCALA等競爭,而且也能夠佔領本身的市場。瀏覽器

Java基礎塊

Green團隊在Java編程語言的最初概念化過程當中計劃的基礎方面使得Java編程語言的奠定石是:安全

構建一種簡單的,面向對象的語言,這對於C ++程序員來講將是容易的。
使它與平臺無關而且與架構無關。
具備許多內存內功能的高性能以及經過命令行參數進行的性能調整。
使它成爲多線程的,動態的和解釋的。
包括安全性和強大的功能。服務器

有了這些基礎知識就足夠了,並且功能強大,Java仍然不會損害任何這些功能,所以很快就採用了現代編程語言中的新變化,例如Lambda表達式,Switch表達式和密封類等。所以,許多新的編程框架(包括Hadoop和許多大數據框架),雲功能將Java用做本機工具。這就是Java在25年後仍與Scala,Go和Python等新時代編程語言進行鬥爭的緣由。多線程

從Sun Microsystems過渡到Oracle Inc.

Sun Microsystem已被Oracle收購,所以,他們從2010年開始管理Java。甲骨文已經將Java從版本控制的運動從1-2年提升到了一次6個月。發生了巨大的變化,增長了新功能。Java 8是吸引開發者從新佔領市場空間的非凡版本之一。即便oracle引入了JAVA 14,仍然是全部開發人員,但仍使用更穩定的J2SE 1.8版本保留了部署。
在Oracle接管Java以後,就以Sun的J2SE(OpenJDK)和Oracle的J2EE openness(J2EE JAKARTA Eclipse社區基礎項目)的名義考慮了OpenSource的思想過程並開始了開放性支持。

Java已在全部領域中普遍使用,不管是製造業,零售業,銀行業仍是電信業,Java語言都是強制性的,每一個開發人員都應瞭解Java。所以,它在全球範圍內的行業中創造了更多的機會。在2006-2013年期間,Oracle遇到了困難。可是,在oracle接管Java以後,這種速度或開發/部署已被完全消除。Sun Microsystems召開了Java ONE會議,每次發佈都會在全球範圍內進行技術討論,將與更多的技術讀者討論和辯論Java的整個新特性(功能,期貨JSR)。

正如咱們所討論的,Java在微控制器和微空間項目中都有必定的空間。Java帶來的重點和變革之一是Java嵌入式系統功能,該功能可使用Internet遠程管理設備和設備。我認爲這是最近幾天引入物聯網(IoT)的基礎,但在2006-2010年的時間框架中,人們一直以Java的方式來思考。

Oracle帶來的第一個重大變化是以兩種形式發佈Java:

Java的開放平臺,稱爲OpenJDK。
用於企業用途的商業平臺,稱爲Oracle Java。

基於Java平臺的框架

做爲Java的介紹,能夠自由查看世界上更多的語言,例如GO,Python,Ruby,PERL等,以及它們的市場空間。Java已用於客戶端層或兩層應用程序(Applet,JavaScript),服務器層(JSP,Servlet),中間層(EJB)和N層(EMAIL,JNDI,JDBC等)。它還有助於Sun和Oracle在Java增加期間增長他們的開發人員和貢獻者。Java已在Spring,Hibernate等第三方框架中獲得了普遍使用,並啓用了跨數據庫和動態/運行時依賴項注入功能。

除此以外,做爲下一代編程語言的轉換,單片世界已更改成微服務世界,以在業務和市場中帶來更多的穩定性,可伸縮性和敏捷性。Java已在全部基於SpringBoot的微服務容器中使用,並再次得到一組頂級編碼器,通過驗證的部署等。我忘了說起另外一種所謂的多語言支持功能,其中Java支持UNICODE以啓用跨語言(國際)支持。在更多的用例,解決方案和部署中,Java已在大數據,AIML空間中獲得了極大的使用。Java還將其轉換調整爲基於雲的平臺部署,從而使更多開發人員也可以經過知足熱門市場需求來爲Java作出貢獻並開展工做。

Java被普遍使用並集成到各個領域,技術和工具集中,從而提升了Java從空間,衛星研究到製造,教育,銀行,金融,移動,雲等的利用率。Java已成功與如下第三方集成工具和技術。Java具備AI,ML和Cloud等更普遍的集成,而且性能穩定,持續不斷地提升。在過去的25年中,Java被各類語言(例如Python,C ++,Scala,GO,Erlang等)所忽視。Java仍然是社區成員數量排名第一且具備大量用例的穩定部署的Java。

從Hibernate到Struts,Java與其餘第三方框架的集成,直到如今,SpringBoot微服務框架也在全球範圍內被採用和部署。關於響應式編程語言的最新變化,響應式Java變得更加流行,並提出了更多的選擇。這些集成將Java的性能和穩定性做爲Java成功功能的關鍵部分,使Java進入了下一個編程領域。甲骨文還宣佈了其發行版中的許多新更改。而不是每兩年發佈一次Java,而是每6個月發佈一次。此外,還添加了一個新網站,以查看即將進行的項目的功能或到目前爲止完成的任務。憑藉25年的Java歷程成功里程碑,好像有一些重要的里程碑,好像JDK8擁有大量部署之類的東西。關於此功能,開發人員可能但願經過JVM處理大量併發用例的速度和性能有所提升,而且具備更高的容錯能力。

Java平臺最近面臨的障礙

當Sun擁有Java時,還有其餘Java運行時環境,特別是IBM引入的IBM Java(它也具備一些有趣的功能)已經完成了Java的加強。忽然,Sun Microsystem提起了訴訟,要求Microsoft壟斷IE瀏覽器,並使用JRE違反Sun Microsystems許可要求。Sun在與Microsoft的訴訟中勝訴,最近Oracle在Google的移動android平臺上與Google達成協議。

快速瞭解最新的Java 15版本

Oracle Java版本基於JDK企業建議書(JEP)和Java規範請求(JSR),而EdDSA是JEP 339的一種實現。它是採用約126位加密算法的獨立於平臺的加密簽名。這能夠用於具備更高安全性的數據傳輸處理,以傳輸加密的數據。

Java 15中引入的密封類是JEP 360的實現,它限制了哪些類能夠擴展或實現密封類。例如:

public abstract sealed class Shape
permits Circle, Rectangle, Square {…}

使Shape成爲密封類,而且僅容許「 permits」類實現/擴展。這樣能夠安全地訪問類層次結構,並控制接口的可重用性。

隱藏類基於JEP 371的實現,它經過容許在運行時使用Reflection API生成類來限制類的使用,並使該類對外部環境不可發現。所以,沒法經過代理動態生成隱藏類,而且能夠安全地訪問它們。

ZGC或Z Garbage Collector基於JEP377。在Java 1.8的較早版本中,G1 GC是自我管理垃圾收集的突破性介紹,並大大提升了性能。後來在Java 11中引入了ZGC,具備各類功能以提升性能,而在Java 15中則進行了進一步的改進,例如取消註釋未使用的內存,多線程堆,併發類卸載等。

從JEP 378引入的文本塊可建立多行字符串文字,以自動轉義序列的形式存儲,並以預測的方式格式化字符串,並改善了字符串文字的內存使用率。這樣能夠有效地將XML,JSON和HTML數據做爲字符串文字存儲在Java代碼中。

外部存儲器訪問API是JEP 383的實現,它容許程序有效地訪問已分配的Java堆以外的外部存儲器。它最初在Java 14中做爲預覽引入,如今改進版本做爲Java 15的一部分發布。該API容許經過添加諸如的代碼來快速分配本機內存段MemorySegment.allocateNative(100)。

結論

官方發行說明說,官方第一個Java於1996年1月首次發行,使Java完成了其25年的歷程,如上面的時間表所示。咱們認爲,與Java相比,從臺式機,移動設備,企業開發到現代雲和大數據開發領域,計算機歷史上沒有其餘編程語言能夠經受得住。許多人說,像GoLang,Python,Javascript框架這樣的新編程結構將使Java很快消失,可是Java15中引入了許多功能,這彷佛強烈地代表Java仍然是開發人員社區的「高不可攀」的選擇。

參考:《2020最新Java基礎精講視頻教程和學習路線!》
原文連接:https://blog.csdn.net/weixin_...

相關文章
相關標籤/搜索