关于微软新编程语言 Bosque,你需要知道的一切
博斯克是什么?
Bosque 编程语言是微软研究院的一个项目,旨在研究如何编写简单、明显且易于人类和机器推理的代码
让我补充几点
- 博斯克 (Bosque) 打字流畅,功能实用。
- 受到 JavaScript、TypeScript 和 ML 的严重影响。
- 它更像是一种研究产品,而不是一种盈利产品。
- 一个根据 MIT 许可的开源项目(非常非微软风格😁)。
它是什么时候发明的?
GitHub 仓库于2019 年 3 月 3 日创建,并于 2019 年 4 月 15 日在 Microsoft.com 上发布。
该语言的实现是怎样的?
目前,该语言是在 Node.js 上运行的TypeScript上实现的。
那么,它带来了什么新东西呢?
或许是编程的新时代
Bosque 的作者 Mark Marron 介绍了一种称为正则化编程 (Regularized Programming)的新编程模型。
在他的研究论文中,他提到了结构化编程(我们自 1970 年以来就知道)如何导致“意外复杂性”!
我们相信,就像多年前的结构化编程一样,这种规范化的编程模型将大大提高开发人员的工作效率,提高软件质量,并带来编译器和开发人员工具发展的第二个黄金时代。
正则化编程与结构化编程有何不同
你可以简单地说:“正则化编程 =结构化编程 v2.0 ”。
Marron 在他的白皮书中告诉我们,正则化编程建立在结构化编程的基础上……但是,它旨在消除复杂性的根源。
换句话说,您的代码中的错误更少!
他提到的复杂性的来源是:
- 循环、递归和不变量:我假设你已经知道这些了😆
- 可变状态和框架:可变对象与不可变对象总是令人困惑。
- 不确定的行为,例如:未初始化的变量。
- 数据不变违规:使用数组中的索引等访问/修改数据。
- 平等和别名:按值、按引用变量传递。
代码示例
不要在 C 语言中执行通常的迭代循环,例如:
将所有数组元素乘以 2。
int a[5] = {1, 2, 3, 4, 5};
int b[5];
for(int i=0; i<5; i++)
b[i] = a[i]*2;
Bosque通过以下方式避免了循环和直接从内存访问数组的整个想法:
var a = List[Int]@{1, 2, 3, 4, 5};
var b = a.map[Int](fn(x) => x*2);
目前一切都只是学术性的
现在,不要急于在你的公司或工作场所使用它😆
因为,整个事情是学术性的,旨在用于下一代编程语言的研发。
引用项目 repo 的内容:
我们不建议在任何生产工作中使用 Bosque 语言,而是鼓励目前仅对小型/实验性的附带项目进行实验。
有趣的事实
人们已经开始质疑这种编程语言的异步模型了😂
额外趣味事实
OP:未来几周可能会有工作机会要求具备几年使用这种新编程语言的经验。
回复:而且已经有 5 年工作经验的人也会申请 :P

你怎么认为
我们真的需要一门拥有全新范式的编程语言吗?
Bosque 真的有用吗?