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