Hamler( https://hamler-lang.org/) 是一门构建在 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 静态类型检查工具。
Simon Marlow & Philip Wadler (1997): A practical subtyping system for Erlang ( http://homepages.inf.ed.ac.uk/wadler/papers/erlang/erlang.pdf)
Philip Wadler (2002): The great type hope ( http://homepages.inf.ed.ac.uk/wadler/papers/erlang/erlang-slides.pdf)
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 语法的编程语言,核心特性可以概括为:
类 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
更高级的模块系统
高并发、软实时支持
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.