Crystal:一個類似于Ruby語法的編程語言
英文原文: Language Goals
Crystal 是一個開源的、類似于 Ruby 語法的編程語言,其特性如下:
- 類似于 Ruby 的語法;
- 支持靜態類型檢查,但無需指定變量類型或方法參數;
- 可在 Crystal 內通過代碼綁定調用C代碼;
- 在編譯時進行代碼評估和生成,避免了公式化的代碼;
- 編譯后的代碼是高效的本地碼。 </ul>
- 提供高效的,并行的垃圾回收器;
- 提供類似于 Erlang 和 Go 的并發原生處理功能;
- 更好的元編程方式;
- 提供結構體類型,除了進行C代碼綁定,還能編寫更有效的封裝代碼和更少的內存占用;
- 元組,命名元組和參數。 </ul>
Crystal 語法:Hello World
在 Crytal 中經典的 Hello World 程序代碼是:
采用面向對象思路的寫法是:
采用塊思路的寫法是:
盡管不同寫法得出的程序性能各有差異,但幸好這些寫法都是具表達力的。要運行 Hellow World 程序,請先安裝好相關程序。
然后把 Crystal 代碼保存為 hello.cr 文件,啟動控制臺后鍵入以下命令:
Crystal特性綜述
高效代碼生成
Crystal 是非解釋型語言,沒有虛擬機,由 LLVM 編譯為機器代碼。你不必指定變量類型,實例變量或方法參數,與靜態編譯語言類似;Crytal 可自行判斷該采用什么類型。
多類型變量
可以不指定變量類型。如果變量被指派了多種類型,在編譯時變量類型是包括所有類型的。在運行時時變量類型才是唯一的。
可以通過a.is_a?或a.responds_to?來檢查類型。
方法
在 Crystal 中,方法是可以重載的,重載依據是參數個數,類型限制及方法的使用與否。
進行C綁定
可在 Crystal 中進行C代碼綁定,例如以下的 SDL 綁定:
未來特性展望
Hacker News 上開發者對 Crystal 的精彩評論:
Habosa:我對一個有如此良好文檔支持的新語言所深深震撼了,其技術博客有很多完整的里程碑式文章。
Arikrak:與 Ruby 如此相似的目的是什么呢?難道是能夠直接運行 Rails?我對此充滿期待。
SomeCallMeTim:它真的酷斃了!如果能夠在 Windows 平臺上能夠更高效地運行例如C/Go,就更加完美了。