EMQ 團隊很高興正式向全球 IoT&5G 市場釋出開源函式程式語言 - Hamler!
Hamler 是一門構建在 Erlang 虛擬機器(VM)上的 Haskell 風格的強型別(strongly-typed)程式語言,獨特地結合了編譯時的型別檢查推導,與對執行時高併發和軟實時能力的支援。
Hamler 程式語言將賦予行業,尤其是 5G、IoT、雲端計算和邊緣計算等潛力領域,構建下一代高可靠、可擴充套件、具備軟實時支援應用的能力。
近十年來,我們一直在開發基於 Erlang/OTP 的軟體系統,特別是我們的核心產品可伸縮分散式開源 MQTT 伺服器 - EMQ X。我們一直認為 Erlang/OTP,尤其是 Beam 虛擬機器是工程學的傑作。它具有出色的併發性、分佈性和容錯性,是少數正確處理高併發和軟實時的通用語言平臺,是最適合開發 IoT 和 5G 應用的平臺之一。
從多年開發 Erlang 程式經驗來看,我們一直期待解決兩個問題:編譯時型別系統與更友好的程式語法。編譯時強大的型別系統有助於我們構建更可靠的軟體系統;更友好的語法有助於我們建立一個繁榮的開發者社群。
為此學術界和產業界付出了近 20 年的努力。首先是 Philip Wadler 教授和 Simon Marlow 在 2000 年前後,為 Erlang 引入了型別標註和 Dialyzer 靜態型別檢查工具。
2008 年後,產業界有近 20 個專案,不斷地嘗試解決型別系統和友好語法的問題。elixir 專案引入了 Ruby 語法,吸引了部分 Ruby On Rails 社群開發者,卻沒有型別系統支援。Akka 專案在 JVM 上模擬實現了 Erlang/OTP ,但喪失了 Erlang/OTP 的軟實時特性。Well-Typed 公司的 Cloud Haskell 專案試圖在 Haskell 上模擬實現 Erlang/OTP,目前專案已經停滯。此外還有 lfe 引入了 Lisp 語法,alpaca、efene、elchemy、gleam 等專案試圖引入 ML 風格語法和靜態型別,目前大部分仍處於很早期的開發中。
今天,EMQ 團隊做出努力,採用新的語言架構設計方式再一次嘗試解決上述問題,正式向業界釋出 Hamler 語言 0.1 版本!
Hamler 作為執行在 Erlang VM 上的類 Haskell 語法的程式語言,核心特性可以概括為:
結合我們多年對函數語言程式設計的理解與開發 Erlang、Haskell 程式的經驗,Hamler 語言支援函式程式設計大部分主要特性,我們相信這些特性可以幫助產業更好地迎接 5G、IoT 、邊緣計算與雲端計算帶來的開發浪潮,並吸引更多的開發者使用 Erlang VM - BEAM。
Hamler 原始碼經過詞法分析後生成 CST,然後經過 CST -> AST -> CoreFn 的語法樹變換、語法分析與型別檢查後,生成 CoreErlang 的 IR 程式碼,然後由 Erlang 編譯器生成最終的二進位制 Beam 檔案。
Hamler 編譯器架構如下圖:
Hamler 0.1 編譯器最初嘗試基於 GHC 8.10.1 實現,後改為基於 Purescript 0.13.6 實現。
Hamler 函式程式語言從發起即是一個開源專案,目前核心開發者主要來自 EMQ 公司研發團隊:
Hamler 開源專案最終將與合作伙伴一起,貢獻給歐盟 2049 開放原始碼基金會 - 2049.Foundation。
[admin
]