加载中...
Unison 是一门函数式编程语言,其最大特色是代码以内容寻址的方式按语法树的哈希值存储,而非以文本文件为单位。这一设计带来了无需重复编译、无依赖冲突、天然分布式执行等独特能力。

| 主要设计者 | 保罗·丘萨诺 |
| 公开时间 | 2020 年前后 |
| 范式 | 纯函数式 |
| 核心特色 | 内容寻址代码 |
| 类型系统 | 静态、代数效应 |
Unison 是一门纯函数式、静态类型的编程语言,由保罗·丘萨诺(Paul Chiusano)等人创建,约于 2020 年前后进入公众视野。它彻底重新思考了代码的存储方式:每段定义都根据其抽象语法树计算出唯一哈希,以内容寻址存入代码库,函数之间通过哈希而非名字引用。
在传统语言中,代码以文本文件组织,改一处依赖可能引发大范围重新编译与命名冲突。Unison 将代码看作不可变的哈希索引内容:一旦某定义被写入并求得哈希,它就永不改变,名字只是指向哈希的标签。由此衍生出诸多好处,如已编译结果可缓存复用、重命名不引起重构、不同版本的同名函数可共存。
Unison 的分布式能力使其适合编写跨节点协作的服务、数据管道和云计算任务,函数可以像数据一样在网络中传递并就地执行。其不可变代码库理念也吸引关注可重现构建与依赖管理的开发者。作为一门理念前卫的研究导向语言,Unison 更多被用于探索代码存储与分布式编程的新范式,工业采用尚在早期。
问:内容寻址代码解决了什么痛点?答:它消除了因命名和版本冲突导致的依赖地狱与重复编译。由于定义按内容哈希唯一标识,任何一次成功的构建结果都可永久缓存,重命名或多版本共存也不再引发冲突。
问:Unison 如何实现分布式执行?答:因为函数由哈希唯一标识且代码库不可变,一段计算可以连同其依赖的哈希一起序列化发送到远程节点,对方按哈希取得或补齐所需代码即可执行,从而让分布式调用像本地调用一样自然。

| 主要设计者 | 保罗·丘萨诺 |
| 公开时间 | 2020 年前后 |
| 范式 | 纯函数式 |
| 核心特色 | 内容寻址代码 |
| 类型系统 | 静态、代数效应 |
登录 后参与讨论
暂无讨论,来发表第一条评论吧