EMQ团队正式向全球 IoT&5G 市场发布开源函数编程语言 - Hamler
EMQ團隊很高興正式向全球 IoT&5G 市場發(fā)布開源函數編程語言 - Hamler!
Hamler 是一門構建在 Erlang虛擬機(VM)上的 Haskell風格的強類型(strongly-typed)編程語言,獨特地結合了編譯時的類型檢查推導,與對運行時高并發(fā)和軟實時能力的支持。
Hamler 編程語言將賦予行業(yè),尤其是 5G、IoT、云計算和邊緣計算等潛力領域,構建下一代高可靠、可擴展、具備軟實時支持應用的能力。
為什么發(fā)布 Hamler?
近十年來,我們一直在開發(fā)基于 Erlang/OTP 的軟件系統(tǒng),特別是我們的核心產品可伸縮分布式開源 MQTT 服務器 - EMQ X。我們一直認為 Erlang/OTP,尤其是 Beam 虛擬機是工程學的杰作。它具有出色的并發(fā)性、分布性和容錯性,是少數正確處理高并發(fā)和軟實時的通用語言平臺,是最適合開發(fā) IoT 和 5G 應用的平臺之一。
從多年開發(fā) Erlang 程序經驗來看,我們一直期待解決兩個問題:編譯時類型系統(tǒng)與更友好的程序語法。編譯時強大的類型系統(tǒng)有助于我們構建更可靠的軟件系統(tǒng);更友好的語法有助于我們創(chuàng)建一個繁榮的開發(fā)者社區(qū)。
為此學術界和產業(yè)界付出了近 20 年的努力。首先是 Philip Wadler教授和 Simon Marlow在 2000 年前后,為 Erlang 引入了類型標注和 Dialyzer靜態(tài)類型檢查工具。
- Simon Marlow & Philip Wadler (1997): A practical subtyping system for Erlang
- Philip Wadler (2002): The great type hope
2008 年后,產業(yè)界有近 20 個項目,不斷地嘗試解決類型系統(tǒng)和友好語法的問題。elixir項目引入了 Ruby 語法,吸引了部分 Ruby On Rails 社區(qū)開發(fā)者,卻沒有類型系統(tǒng)支持。Akka項目在 JVM 上模擬實現了 Erlang/OTP ,但喪失了 Erlang/OTP 的軟實時特性。Well-Typed 公司的 Cloud Haskell項目試圖在 Haskell 上模擬實現 Erlang/OTP,目前項目已經停滯。此外還有 lfe引入了 Lisp 語法,alpaca、efene、elchemy、gleam等項目試圖引入 ML 風格語法和靜態(tài)類型,目前大部分仍處于很早期的開發(fā)中。
今天,EMQ 團隊做出努力,采用新的語言架構設計方式再一次嘗試解決上述問題,正式向業(yè)界發(fā)布 Hamler 語言 0.1 版本!
Hamler 語言主要特性
Hamler 作為運行在 Erlang VM 上的類 Haskell 語法的編程語言,核心特性可以概括為:
- 類 Haskell 和 ML 的友好語法
- 編譯時的類型檢查與類型推導
- 運行時的高并發(fā)、軟實時支持
結合我們多年對函數式編程的理解與開發(fā) Erlang、Haskell 程序的經驗,Hamler 語言支持函數編程大部分主要特性,我們相信這些特性可以幫助產業(yè)更好地迎接 5G、IoT 、邊緣計算與云計算帶來的開發(fā)浪潮,并吸引更多的開發(fā)者使用 Erlang VM - BEAM。
- 聲明式與函數式編程
- 類 Haskell 與 ML 語法
- 編譯時類型檢查與推導
- 代數類型系統(tǒng)支持(ADT)
- 函數、閉包、高階函數
- Currying and partial application
- Pattern matching, and Guards
- List comprehension
- Applicative and Monad
- 更高級的模塊系統(tǒng)
- 高并發(fā)、軟實時支持
Hamler 編譯器設計
Hamler 源碼經過詞法分析后生成 CST,然后經過 CST -> AST -> CoreFn 的語法樹變換、語法分析與類型檢查后,生成 CoreErlang 的 IR 代碼,然后由 Erlang 編譯器生成最終的二進制 Beam 文件。
Hamler 編譯器架構如下圖:
Hamler 0.1 編譯器最初嘗試基于 GHC 8.10.1 實現,后改為基于 Purescript 0.13.6 實現。
歡迎參與 Hamler 開源項目
Hamler 函數編程語言從發(fā)起即是一個開源項目,目前核心開發(fā)者主要來自 EMQ 公司研發(fā)團隊:
- Feng Lee: Hamler 語言設計者,貢獻了一個夢想和大部分 libs
- Yang M: 貢獻了 Hamler 編譯器大部分代碼
- S Hu: 來自 University of Bristol,貢獻了 Hamler 大部分文檔
- wivwiv: 貢獻了 hamler-lang.org 網站 theme 設計
- CrazyWisdom: 貢獻了 hamler-lang.org 網站域名
- ysfscream: 貢獻了 hamler-lang.org 網站和 https 設置
- juan6666:貢獻了 Hamler 語言 Logo 設計
Hamler 開源項目最終將與合作伙伴一起,貢獻給歐盟 2049 開放源碼基金會 - 2049. Foundation。
總結
以上是生活随笔為你收集整理的EMQ团队正式向全球 IoT&5G 市场发布开源函数编程语言 - Hamler的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 台积电已开始建造3nm芯片设备 将于20
- 下一篇: 雷军:小米金融旗下香港虚拟银行天星银行正