亮劍JVM的9款編程語言殺手開發利器重磅推薦

隨着各類各樣的編程語言鋪地蓋地向咱們涌來,軟件世界彷佛變得有點瘋狂了。JVM的帝國在不斷地壯大,它已經不知足於只做爲Java語言的運行平臺。它勇敢地將本身的觸角伸向了JRuby,Groovy等等,將來會對更多的動態語言提供支持。這裏我爲你們亮劍JVM的9款編程語言殺手,分別包括 Groovy、JRudy、Jython、Clojure、Clojure、Kotlin、Rhino、Ceylon。html


JVM愈來愈被看成一個具備豐富類庫支撐的通用平臺,而不只僅是Java語言的運行平臺。在將來,會愈來愈多的看到,應用JVM而不使用Java的狀況,一開始多是JRuby,Groovy等等,當將來支持更多的動態語言必將是下一步的趨勢。

一、Groovy程序員

Groovy是一門基於Java虛擬機的面向對象的敏捷動態語言,它憑藉一種精巧、現代的語法,讓Java編程員可使用彷佛變化多端的龐大庫和底層穩若磐石的虛擬機。在開發Web,GUI,數據庫或控制檯程序時 經過減小框架性代碼 大大提升了開發者的效率。因爲Groovy在語法上與Java很類似,爲Java開發者提供了現代最流行的編程語言特性,這使得Java的開發人員學習 Groovy會比較容易上手。Groovy的編譯器爲單純的Java語法提供了很好的支持,Java開發人員不須要學習新語法就能夠直接適應 Groovy。數據庫

開發利器重磅推薦:JVM的編程語言殺手

Groovy編程


Groovy使用到了類型推斷,在開發者沒有明確信息的時候,能夠推斷出變量的類型,所以在代碼編程上要相對簡單。Groovy無縫集成了全部已經存在的 Java對象和類庫,還提供了高級別的開發框架來處理一些標準的任務,好比字符串的處理、生成XML文件、單元測試等等,全部這些均可覺得開發人員節省時間。

二、JRudy安全

JRuby是一個Ruby語言的Java端口,與Groovy相比, JRuby是一個純Java實現的Ruby解釋器。經過JRuby,用戶能夠開發在JVM上直接運行的Ruby程序,調用Java的類庫。它結合了 Ruby語言的簡易性和功能強大的JVM的執行機制,包括與Java庫 全面集成。Rails完全加快及簡化了Web應用的開發,不過它讓人以爲不夠成熟,特別是在高端企業級功能方面。另外一方面,Java平臺及其虛擬機、庫和 應用服務器的速度、穩定性和功能方面卻一直在提高,如今已被公認爲是開發高端服務器應用的領先平臺。不過若是Java平臺不與Ruby等新興語言聯繫在一 起,就有可能落後於流行趨勢。服務器

開發利器重磅推薦:JVM的編程語言殺手

JRuby數據結構


三、Jython

Jython是一種針對JVM發佈的腳本編程語言之一,它集成了Python的一小部分,提供了對Java字節碼的動態編譯,從而實現了性能上的提升。Jython是一種完整的語言,而不是一個Java翻譯器或僅僅是一個Python編譯器,它是一個Python語言在Java中的徹底實現。 Jython不像CPython或其餘任何高級語言,它提供了對其實現語言的一切存取。因此Jython不只給你提供了Python的庫,同時也提供了全部的Java類。這使其有一個巨大的資源庫。Jython從CPython中繼承了不少優勢,與Java的無縫集成。Jython能使任何部署了Java 應用和框架的公司受益而不須要額外的工做。併發

開發利器重磅推薦:JVM的編程語言殺手

Jython框架


Jython沒有提供Java中的public、private 和protected存取符,這樣就給程序員提供了快速開發所須要的靈活性,並將注意力集中在程序邏輯上。Jython不用明顯的靜態的類型定義,故程序員不須要從程序邏輯轉移到類型定義上來。

四、Clojure編程語言

做爲當今最主流的運算平臺JVM,把函數式編程語言引入JVM也是不少人嘗試的方向,Clojure就是其中之一。Clojure是一種 LISP風格的語言,運行在JVM上。Clojure是一個在JVM平臺運行的動態函數式編程語言,Clojure在JVM平臺運行的時候,會被編譯爲 JVM的字節碼進行運算。Clojure設計的初衷是做爲一種通用的編程語言,它其實關注的重點是微軟的CLR和JavaScript。Clojure能夠直接編譯成Java字節碼,保留動態性,可以直接訪問Java框架。

開發利器重磅推薦:JVM的編程語言殺手

Clojure


Clojure的一大特點就是其併發機制,它支持不可變的數據結構(Clojure是來自於可持久化的數據結構)。Clojure還有一個特點是軟件事務存儲(Software Transactional Memory,STM),其支持用事務代替鎖和互斥器來更新共享內存。STM仍是一個有爭議的技術,還須要更好的證實本身,一個簡單的辦法就是訪問一個 JVM上的實現。

五、Scala

在一般狀況下,Scala能夠被理解成一門multiparadigm編程語言,由於它集合了不一樣的編程理念。從內核的角度上看,它是一門面向對象的編程語言,具備強大的功能。與傳統的編程語言相比,它的優點很是明顯,它能夠方便並行開發應用程序。它與JVM的其它編程語言有所不一樣,它集成了並行應用程序框架。這門語言運行起來和本地Java同樣快。

開發利器重磅推薦:JVM的編程語言殺手

Scala


六、Kotlin

Kotlin是一門動態類型通用的編程語言,能夠編譯成Java字節碼和JavaScript。做爲一個基於 JVM 的新的編程語言,Kotlin可謂是Java的強勢勁敵,JetBrains 宣佈將其 Kotlin 編程語言開源,這是一個針對 Java 和 JavaScript 平臺的現代編程語言,該語言的設計目的是成爲 Java 語言的替代品。它致力於提升重點性能,編譯速度可以與Java相媲美。

開發利器重磅推薦:JVM的編程語言殺手

Kotlin


Kotlin兼容Java語言,比Java更安全,可以靜態檢測常見的陷阱,好比引用空指針。Kotlin比Java更簡潔,經過支持variable type inference,higher-order functions (closures),extension functions,mixins and first-class delegation等實現。此外,它比最成熟的競爭對手Scala語言更加簡單。

七、Rhino

Rhino是一個用Java語言編寫的開源JavaScript引擎,它具備JavaScript內核,能夠執行腳本,常常被嵌入到Java應用程序中,爲終端用戶提供腳本。Rhino中的JavaAdapters容許JavaScript嵌入任何一種Java接口,還能夠擴展Java類。

開發利器重磅推薦:JVM的編程語言殺手

Rhino


Java是一種面對對象的編譯型語言。它首先將源代碼編譯成二進制字節碼(bytecode),而後依賴各類不一樣平臺上的虛擬機來解釋執行字節碼,從而實現了「一次編譯、處處執行」的跨平臺特性。而 JavaScript是一種動態、弱類型、基於原型的客戶端腳本語言。JavaScript 包括一個基於對象的 API,稱爲文檔對象模型(Document Object Model)或 DOM,用以訪問和操做 Web 頁面的內容,給HTML網頁添加動態功能。

Rhino則是一個介於Java與JavaScript之間的語言。它的基礎是 Java 語言,這使得它簡單易學,但相比於JavaScript腳本語言來講,它又太過複雜。不過,Rhino 的主要缺點也正是它的強大之處,Rhino 是一種輕量級的、功能強大的腳本語言。Rhino 使用原型而不是類,這使它比不少腳本語言更適合開發 GUI 應用程序,在考慮性能和風格等因素時更是如此。

八、Ceylon

Ceylon是一個通用的、命令式的、面向對象的靜態類型的編程語言。它深受Java的影響,主要用於大型項目的團隊開發 Red Hat的Ceylon彷佛是一些語言功能的一個頗有意思的組合,它使用了你們熟知的C風格的語法,可是除了強調簡潔以外,還提供了面向對象和一些頗有用的 函數方面的支持。Ceylon不只僅是一款編譯器,它有更遠大的目標,經過建立新的Ceylon SDK來取代Java SDK。

開發利器重磅推薦:JVM的編程語言殺手

Ceylon


九、Fantom

Fantom 前身是 (Fan) 是一個基於 Java 和 .NET 平臺的編程腳本引擎,用來在運行時產生 JVM 和 .NET 平臺的字節碼,該語言是面向對象的,跟 Groovy 和 JRuby 有點相似,可經過特定的接口來集成 Java 的類庫。Fantom經過本身的擴展庫彌補了不足,同時還包括了一些對併發性的內置支持。

開發利器重磅推薦:JVM的編程語言殺手
總而言之,這9款適用於JVM平臺上的編程語言都很是強勁,相似於武林高手之間的一場華山論劍。固然,每一款編程語言都各有所長,只有當開發者運用靈活自如了,開發的修煉境界才能爐火純青。
相關文章
相關標籤/搜索