查看原文
其他

Swift 之父又设计了一门编程语言,号称为 AI 而生

池建强 MacTalk 2023-05-11
2022 年初,Swift 创始人 Chris Lattner 创建了一家公司 Modular AI,准备重建人工智能基础设施,以降低 AI 的开发和部署门槛。当时看到这条新闻,我也不知道具体要干啥,反正听描述是比较抽象。
这不,前两天,Modular AI 宣布推出一门全新的编程语言 Mojo。看来,Chris 新创业公司迈出的第一步是设计一门新的编程语言。听起来多少有些奇怪,这年头编程语言已经够多了,为什么要设计一门新的编程语言呢?纵使拿了 3000 万美元的天使融资,也不能这么造,对不对。
现在已经是公司 CEO 的 Chris 解释说,他们一开始并没计划做这事,但在推进创业的过程中,团队发现 AI 编程中,上层框架和下层硬件的鸿沟实在是太大了,为此,开发者不得不多写一些额外的适配代码。他们实在无法忍受这种复杂性。
于是 Mojo 诞生了。
简单说,Mojo 集 Python 的可用性与 C 语言的速度于一体,可以充分发挥 AI 硬件的性能。根据官方测试数据,它比 Python 快 35000 倍。3.5 万倍这个数据,倒是也不用特别惊奇,因为 Mojo 是静态编译的,而 Python 是解释型的编程语言,二者的逻辑就不一样。从官网文档中,可以看出它有如下几个特点:
- 对硬件的原生支持:Mojo 可以支持 CPU、GPU、TPU 和自定义 ASIC,以释放不同硬件类型的优势。 
- 高级语法和语义:Mojo 的高级语法和语义完全基于 Python,精通 Python 的工程师可以轻松学习和使用。 
- 自动并行化:Mojo 通过跨多个硬件后端的自动并行化简化了高效并行代码的编写,而无需并行化知识。 
- 类型推断和检查:Mojo 提供类型推断和检查系统,捕获编译时错误并降低运行时错误的可能性。 
- 静态编译:Mojo 是静态编译的。代码是在执行前编译,因此执行速度会更快,优化也会更好。
今天,Python 已经是人工智能领域的头号编程语言。Mojo 聪明的是,它没有从头开始,没有再发明什么新的语法糖,而是兼容 Python 及其整个生态系统。也就是说,懂 Python 的工程师迁移到 Mojo 会很快。Mojo 雄心勃勃,它基于 Python,但又希望超越 Python,成为 AI 时代专用的编程语言。
说起为 AI 而生的语言,我估计你还会想到 Julia。这几年,Julia 也慢慢走入我们的视野,它也收获了不少好评。HackerNews 上,Chris 还回答了 Mojo 和 Julia 的区别,他说 Julia 是一门美好的语言,自己也是其超级粉丝。但相比发布于 2012 年的 Julia,Mojo 的优势是“新”,它吸取了 Swift、Rust、C++ 以及 Julia 等语言的优点。这倒是实诚话。
新一定程度上,也是缺点。现在,Mojo 还没发布 1.0 版本,我们只能继续等待它的生长。
随着大模型的持续火热,我们有理由相信新的技术革命之下,将会诞生新的编程语言,至少是有机会的。咱们回看过去的几次技术浪潮,也都有这样的趋势。PC 互联网的风口下,Java 迅速崛起;移动互联网的风口下,Objective-C 迅速崛起;云原生的风口下,Go 语言迅速崛起。
其实,OpenAI 早之前也发布过类似的编程语言 Triton,和 Mojo 类似,他们都是希望能提高 AI 模型的构建效率。
现在 Mojo 还没开源,但官方 Twitter 表示,随着 Mojo 的逐步成熟,它一定会开源。具体的语言细节我不说了,你可以加入 Mojo 的 Discord 参与讨论,可以试用他们的 Mojo Playground 练习 Mojo 代码。
我特别看好 Mojo。因为,它是 Chris Lattner 的作品。咱们再聊聊他这个人。
Chris 大名鼎鼎,是 LLVM(主要发起人与作者之一)、Clang 和 Swift 的创始人。做过编译器工作的,写过 iOS  App 都会知道,这三个工作成果是多么伟大。移动互联网的半壁江山,基本上是构建在这三个工作成果之上。
Chris  是一位 70 后程序员,是个天才,也是个好学生。
他在 2000 年本科毕业之后,继续攻读计算机硕士和博士。但 Chris 并不是宅男,学习之余他手捧“龙书”游历世界,成为德智体美劳全面发展的好学生。之后就是一篇又一篇地发表论文,硕士毕业论文即提出了一套完整的运行时编译思想,奠定了 LLVM 的发展基础,读博期间 LLVM 编译框架在他的领导下得到了长足的发展,已经可以基于 GCC 前端编译器的语义分析结果进行编译优化和代码生成,所以 Chris 在 2005 年毕业的时候已经是业界知名的编译器专家了。
Chris 毕业的时候正是苹果为了编译器焦头烂额的时候,因为苹果之前的软件产品都依赖于整条 GCC 编译链,而开源界的这帮大爷并不买苹果的帐,他们不愿意专门为了苹果公司的要求优化和改进 GCC 代码,所以苹果一怒之下将编译器后端直接替换为 LLVM,并且把 Chris 招入麾下。
Chris 进入了苹果之后如鱼得水,不仅大幅度优化和改进 LLVM 以适应 Objective-C 的语法变化和性能要求,同时发起了 CLang 项目,旨在全面替换 GCC。这个目标目前已经实现了,从 OS X10.9 和 XCode 5 开始,LLVM+GCC 已经被替换成了 LLVM+Clang。
2010 年的夏天,Chris Lattner 接到了一个不同寻常的任务:为 OS X 和 iOS 平台开发下一代新的编程语言。那时候乔布斯还在以带病之身掌控着庞大的苹果帝国,他是否参与了这个研发计划,我们不得而知,不过我想他至少应该知道此事,因为这个计划是高度机密的,只有极少数人知道,最初的执行者也只有一个人,那就是 Chris Lattner。
从 2010 年的 7 月起,Chris 就开始了无休止地思考、设计、编程和调试,他用了近一年的时间实现了大部分基础语言结构,之后另一些语言专家加入进来持续改进。到了 2013 年,该项目成为了苹果开发工具组的重中之重,Chris 带领着他的团队逐步完成了一门全新语言的语法设计、编译器、运行时、框架、IDE 和文档等相关工作,并在 2014 年的 WWDC 大会上首次登台亮相便震惊了世界,这门语言的名字叫做:Swift。
根据 Chris 个人博客对 Swift 的描述,这门语言几乎是他凭借一己之力完成的。这位著名的 70 后程序员在 2021 年离开 Swift 核心团队后,开启了自己的创业生涯,今年又推出了 Mojo 这门新语言,也许,这是他的第四个伟大项目。
Just for fun.
最近池老师在墨问便签更新了一系列文章,整理一个近期的合集,方便大家阅读享用。已经更新了Swift 创始人打造 AI 新语言 Mojo,陆奇谈大模型,王慧文做 AI、钉钉推出魔法棒、ChatGPT创始人的创业手册、浏览器版本的 ChatGPT 和 Claude 信息等,并且这个 AI 文章合集持续更新的,需要可以文末找下小跟班
(已更新资料内容)
AI 资料合集,扫码私信小跟班:AI
*咱文心一言、GPT社群的同学,不用重复添加

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存