EMQ 团队正式向全球 IoT&5G 市场发布开源函数编程语言 - Hamler

EMQX
 EMQX
发布于 2020年06月11日
收藏 22

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

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 开源中国社区 [http://www.oschina.net]
本文标题:EMQ 团队正式向全球 IoT&5G 市场发布开源函数编程语言 - Hamler
加载中

精彩评论

南漂一卒
南漂一卒
三流码农撸业务,二流码农做架构,一流码农穿女装~
sunday12345
sunday12345
一门编程语言居然还专门面向 IoT & 5G,咋不加上 AI、区块链呢,蹭热度即蹭个够!
李英辉
李英辉
听着都头疼
l
liu_nix
:smirk::smirk::smirk:真●学不动!
_Anonymous_
_Anonymous_
因为这样可以跟光头形成鲜明对比,默默地向光头“大佬”们炫耀自己头发够多却一样成为了大牛。

最新评论(23

W
WindSpeed
运行在JVM上就不大?
sunday12345
sunday12345
不好意思,我还真做过 IoT,而且我就是来喷他的~

无论是 当下火热的 5G,还是 WiFi6,一起之前有过的 GPRS/EDGE/NB-IoT/Cat.1/LTE 都只是一种链路层的网络而已,与具体应用有什么关系?更别提基础的编程语言了。

要是这都能强扯的话,我昨天刚写的 Hello,World 能吹成 5G、IoT、区块链、生猪养殖的重要基础参考资料 !
c
co63oc
外行看热闹,内行看门道
变形精怪
除非出国产编程语言,否则打死不学新语言了,目前靠c#还房贷
n
newlife111
上来就喷不合适吧,你有做过IoT连接平台的调研吗?
就我来说,有幸用过EMQ。了解过erlang,erlang面对高并发,处理确实高效。
面向IoT我觉得没问题,& 5G也勉强搭得上。
PynixWang
PynixWang
运行在erlang之上,运行时太大了。。
华兹格
华兹格
哇塞,5000万的科研基金够不够?
d
dwcz
有看明白的吗?这语言到底有啥优势啊?看了一圈,没啥优势啊?他有的别人也有。
鬼面书生灬
鬼面书生灬
学不动啊。
OSC首席过客
OSC首席过客
开源到差不多完善稳定,就开始收费
返回顶部
顶部