令人驚艷的 Scala 程式語言

前言

最近發生了一件事,讓我注意到 Scala 這個程式語言,那就是知名的 Twitter 網站原本是用 Ruby 所撰寫的,但是因為執行速度太慢,於是改用 Scala 整個改寫,以便增進速度。

這件事非常吸引我注意,因為 Ruby 的 Rail 是非常著明的網站伺服器,設計很好且彈性很強,如果 Twitter 必須要用 Scala 取代 Ruby,那必然是 Ruby 具有致命性的缺陷,這個缺陷應該就是速度。

執行平台

看了 Scala 的簡介後,我發現 Scala 的設計與 Ruby, Python, Perl 等語言有個相當重要的不同點,因為 Scala 是個強型態的語言,這點讓 Scala 被歸類到 C#, Java, C, C++ 這類強型態語言中。另外,又由於 Scala 通常是在 Java 虛擬機上執行的,因此成為了 Java 的最佳繼承者。

Java 語言發展至今,其缺陷越來越明顯。當一個語言語法令人感覺冗長,卻又不斷提出新的語法以企圖強化其功能時,這個語言就進入了衰老期。從這點看來,Java 已經很明確的進入衰老期,因此急需一個新生的語言來填補 JVM 虛擬機上的空缺。Scala 看起來有填補此一空缺的機會,因為 Scala 的程式在編譯後,就是變成 JVM 的 bytecode,可以直接在 JVM 上執行。

另外,由於 JVM 與 .NET 同樣都採用虛擬機的架構,因此 Scala 也具有編譯後放到 .NET 平台上執行的功能,這使得 Scala 語言可以橫跨兩大平台,增加了 Scala 的使用廣度。

接著,Scala 可以搭配 Lift Web Server,用來撰寫網站程式,因此才會被 Twitter 拿來使用。而 bytecode 的執行速度又比 Ruby 等直譯式語言快,於是 Scala 在執行效能上就具有了 Ruby, Python 所不具備的優勢。

結語

經過幾個範例的測試,我發現 Scala 的運作還不錯,值得進一步探索,如果 Lift Web Server 也運作良好,就可以考慮用 Scala 撰寫網站程式,甚至撰寫與視窗較無關的程式。如果 Scala 可以在 Mono 平台上運作良好的話,或許有機會取代掉 C# ,成為 Mono 平台的標準語言,如此就可以橫跨原先由 Java 與 C# 所佔據的虛擬機市場,並且讓 Mono 擺脫微軟的威脅,走出一條更健康的路。

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License