加入RUN!PC粉絲團
最近新增的精選文章
 
最多人點閱的精選文章
 
 
精選文章 - 開發技術
分享到Plurk
分享到FaceBook
 
6個開發者應該學習的程式語言
文/Paul Rubens 譯/葉庭筠 2015/1/23 上午 10:54:14

如果你未來想找個有前景的工作,你會需要具備市場需求高的語言的相關經驗。以下六種可以提供你一定的競爭優勢。


如果你是開發人員,且希望能提升你在職場上的價值,那麼學習新程式語言是一個好的策略。但問題是,你該學哪種?
只要在開發人員求才網站上很快看過一遍,就會知道哪些程式語言的人才現在較熱門。稍稍找一下,你會看到Java、C、C++、C# 和Objective C、描述語言包括Python、PHP、Ruby和JavaScript以及SQL資料庫語言的人才職缺很多。
但如果你想一直保持自己的優勢,而且未來還能謀得金飯碗,那麼可能要花多點時間研究一下Java、Python等等之外的語言。
學習現在需求還不高、但很快就會走紅的新語言,開始累積經驗如何?這種職涯策略在1990年代很有用,當時Java剛出現,一些工程師及時發現其潛力而率先投入,後來幾年任何和Java有關的工作都隨他們選,而且開價開得很高。
問題是在如何在眾多新語言中選到對的語言來學。「幾乎所有新語言都誕生自開原碼專案,」Gartner研究總監Mark Driver說。「這意謂著沒有進入門檻,幾千種新語言都冒出來了,大部份都很快消失,只有少數會存活、且發揚光大。」
Driver表示他認為對大部份公司來說,現有主流語言像Java, C++ 和C#都用得很久、難以取代,「很少有企業希望他們用的語言太多樣、太發散。」
但目前有跡象顯示仍有新語言竄出頭。以下六種最有潛力的新語言未按順序臚列如下:

Dart:JavaScript的後繼者
Dart是由Google發展出來取代JavaScript的開原碼語言。和其他想取代JavaScript的語言如CoffeeScript一樣,它對JavaScript開發人員來說並不難學。這點很重要,因為它的設計宗旨就是要讓建立大型、多人開發的Web應用系統變得簡單—JavaScript本身就不太適合這點。
目前Dart應用可以執行在Chrome內建的Dart VM,或透過JavaScript的交叉編譯跑在其他瀏覽器中。
※學習理由:有Google支持使Dart有較高的成功機會。

Opa:簡單、安全的Web App
Opa的設計理念是使Web應用開發更為簡單而安全。原理何在?你並不需再用不同語言(像JavaScript、PHP和MySQL)來開發瀏覽器端、伺服器端及後端資料庫元件,再把它們串在一起,而是在Opa撰寫整個應用系統。然後編譯器會產生用戶端和伺服器端程式,並建立起彼此之間的通訊基礎架構。這招高。
Driver說,雖然此時Opa還未廣泛受到企業使用,但在網路上已經討論得很熱烈。
※學習理由:Web應用愈來愈複雜而普遍,能自動化產生、發佈伺服器/用戶端程式的工具有其獨特價值。

Scala:名實相符的可擴充語言
Scala是「scalable language(可擴充語言)」的簡稱,而它的用意就是如此:Scala可用於開發小型程式,也可開發非常大型的應用。它並不很新,2003年就問世了,但最近愈來愈受歡迎,理由之一是你可以依據並行性(concurrency)來優化程式碼。另一個原因則純粹是許多開發人員愛用。
對企業來說,用Scala的主要好處是它可以和Java互通。它跑在JVM (和Android)上,而整合開發環境(IDE)如Eclipse、IntelliJ或 NetBeans及Spring或Hibernate等框架也都可與之相容。「可在現有JVM上跑Scala這點很重要,」Forrester首席分析師Jeffrey Hammond說。
※學習理由:對在Java上投資很多,及不想在生產環境中支援新東西的企業來說,Scala很有賣點。

Erlang:當並行性遇上可用性
Erlang是另一個因為並行性而走紅的語言。Erlang誕生自1986年,並於1988年開放原始碼。Erlang設計目的是用於開發高可用性的大型應用系統,它的runtime系統支援熱交換,因此不用停機就可以修改或更新程式碼。
語言層級的功能包括開發及管理流程以簡化並行規劃(concurrent programming)。同時,流程可以透過訊息傳遞(message passing)來溝通,而不再需要明確鎖定(explicit locks)。
※學習理由:Gartner的Driver和Forrester的Hammond都認為Erlang可能再幾個月或幾年就會大紅大紫。

Ceylon:模組化Java的殺手
Ceylon是以Java為基礎發展而成的Java殺手。它原本是Red Hat公司內發展來撰寫大型程式的語言,在2013年底釋出首個穩定版本。
模組化是Ceylon的關鍵特色。程式碼都被包成一個軟體及模組,再編譯成模組檔案室 (module archive)。這項工具支援模組庫系統(module repository),而每個中央模組庫出版的模組都稱為Ceylon Herd
由於Ceylon是由Java發展而來,並具備Eclipse-based IDE及指令行工具(及內建模組化支援),因此如果你如果很熟Java開發, Ceylon應不致太難上手。
※學習理由:Ceylon程式可編譯並執行於Java及Java Script VM上—對用戶端及伺服器系統來說和Opa很類似,而且和原生程式可以很容易相容、互通。

Go:雲端上的語言
Go也是來自Google的開原碼語言,於2009年問世。Go也被稱為Goland,它和C一樣是傳統語言,但是是專為雲端發展的,內建並行性和垃圾收集(garbage collection)其他功能。你可以在一台電腦上幾秒中內編譯成一個大型Go應用程式。
以Go撰寫成的專案包括Docker和Force.com。「Go現在很熱,目前很多人拿它來做實驗—但它其實不好學。」Driver說。
※學習理由:集結Go適合雲端開發、Google支持及此時受矚目的程度等理由,足以顯示這個語言極可能很快就會一飛沖天。