EMQ 團隊正式向 IoT&5G 市場發佈開源函數編程語言 - Hamler

Hamler - 面向 IoT&5G 市場的開源函數編程語言
EMQ 團隊很高興正式向 IoT&5G 市場發佈開源函數編程語言 - Hamler

Hamler 是一門構建在 Erlang 虛擬機(VM)上的 Haskell 風格的強類型(strongly-typed)編程語言,獨特地結合了編譯時的類型檢查推導,與對運行時高併發和軟實時能力的支持。

Hamler 編程語言將賦予行業,尤其是 5G、IoT、雲計算和邊緣計算等潛力領域,構建下一代高可靠、可擴展、具備軟實時支持應用的能力。

爲什麼發佈 Hamler?

近十年來,我們一直在開發基於 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 語法,alpacaefeneelchemygleam 等項目試圖引入 ML 風格語法和靜態類型,目前大部分仍處於很早期的開發中。

今天,EMQ 團隊做出努力,採用新的語言架構設計方式再一次嘗試解決上述問題,正式向業界發佈 Hamler 語言 0.1 版本!

Hamler 語言主要特性

Hamler 作爲運行在 Erlang VM 上的類 Haskell 語法的編程語言,核心特性可以概括爲:

  • 類 Haskell 和 ML 的友好語法
  • 編譯時的類型檢查與類型推導
  • 運行時的高併發、軟實時支持

結合我們多年對函數式編程的理解與開發 Erlang、Haskell 程序的經驗,Hamler 語言支持函數編程大部分主要特性,我們相信這些特性可以幫助產業更好地迎接 5G、IoT 、邊緣計算與雲計算帶來的開發浪潮,並吸引更多的開發者使用 Erlang VM - BEAM。

  • 聲明式與函數式編程
  • 類 Haskell 與 ML 語法
  • 編譯時類型檢查與推導
  • 代數類型系統支持(ADT)
  • 函數、閉包、高階函數
  • Currying and partial application
  • Pattern matching, and Guards
  • List comprehension
  • Applicative and Monad
  • 更高級的模塊系統
  • 高併發、軟實時支持

Hamler 編譯器設計

Hamler 源碼經過詞法分析後生成 CST,然後經過 CST -> AST -> CoreFn 的語法樹變換、語法分析與類型檢查後,生成 CoreErlang 的 IR 代碼,然後由 Erlang 編譯器生成最終的二進制 Beam 文件。

Hamler 編譯器架構如下圖:

hamler-compiler

Hamler 0.1 編譯器最初嘗試基於 GHC 8.10.1 實現,後改爲基於 Purescript 0.13.6 實現。

歡迎參與 Hamler 開源項目

Hamler 函數編程語言從發起即是一個開源項目,目前核心開發者主要來自 EMQ 公司研發團隊:

  • 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 研發團隊

EMQ - 杭州映雲科技有限公司致力於成爲全球領先的消息與流處理開源軟件企業,聚焦服務於新產業週期的 5G&IoT、邊緣計算(Edge)與雲計算(Cloud)市場。EMQ 研發團隊主要採用 Erlang、Haskell 等函數編程語言,開發高併發、高可靠、軟實時的大規模分佈式系統。

招聘職位:拉勾,或聯繫HR:[email protected]

版權聲明: 本文爲 EMQ 原創,轉載請註明出處。

原文鏈接:https://www.emqx.io/cn/news/open-source-functional-programming-language-hamler

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章