【Mojo 编程语言开放下载,声称比 Python 快 68000 倍】出品|开源中国
Mojo 是 Modular AI 公司开发的新编程语言,它结合了 Python 的易用性以及 C 语言的可移植性和性能,目标是使其成为 AI 研究和生产的理想选择 。
Modular AI 是 Chris Lattner 和 Tim Davis 于 2022 年创立的公司,目标是自下而上重建全球 ML 基础设施 。在这家新生的创业公司中,Chris Lattner 以 CEO 身份领导团队 。
Chris Lattner 毕业于波特兰大学的计算机科学系,具有创建和领导多个知名大型项目的经验,其中包括 LLVM、Clang、MLIR 和 CIRCT 等编译器基础设施项目,他还带头创建了 Swift 编程语言 。
从 2005 年 7 月到 2017 年 1 月间,他曾领导苹果的开发者工具部门,随后,曾短暂领导过特斯拉的自动驾驶团队 。2017 年 8 月,Chris Lattner 在 Google Brain 团队领导了 TensorFlow 基础设施工作,包括一系列硬件支持(CPU、GPU、TPU),底层运行时和编程语言工作 。
今年 5 月,Modular AI 向外界了 Mojo 。据称自 Mojo 亮相以来,超过 12 万开发者注册使用了 Mojo Playground,另外还有 19 万开发者参与 与 GitHub 讨论 。Modular AI 公司更是在上月底宣布 。
9 月 7 日,Modular AIMojo 正式开放下载,这意味着开发者可以在本地使用 Mojo 进行开发 —— 目前仅支持 Linux,官方表示会尽快推出 Mac 和 Windows 版本 。
根据公告,官方提供了编译器和 Mojo SDK 。其中 Mojo SDK 还包括全套开发者和 IDE 工具,用于轻松构建和迭代 Mojo 应用程序 。
下面是 Mojo SDK 包含的工具概览 。
- mojo 驱动:提供 shell 用于 read-eval-print-loop 或 REPL 的 shell,支持构建和运行 Mojo 程序、打包 Mojo 模块(包括对 扩展的支持)、生成文档和格式化代码?
- VS Code 扩展:支持多项生产力功能,例如语法高亮显示、自动补全代码等 ?
- Jupyter kernel:支持构建和运行 Mojo notebooks,包括 Python 代码??
- 调试工具(即将推出):进入并检查正在运行的 Mojo 程序,甚至包括混合 C++ 和 Mojo 代码的框架
最近开发团队刷新了自己的成绩,他们表示 Mojo 将动态和静态语言的优点结合在一起,。
▲ 好一个 Python++
这很难评,各位自行下载来玩一玩吧:
示例代码
跟 Python 一样,可以通过运行 mojo 命令在 REPL 中进行编程 。下面是使用 Mojo 计算欧几里得距离的代码:
$ mojoWelcome to Mojo! Expressions are delimited by a blank line.Type `:mojo help` for further assistance.1> %%python2. import numpy as np3. n = 100000004. anp = np.random.rand(n)5. bnp = np.random.rand(n)6> from tensor import Tensor7. let n: Int = 100000008. var a = Tensor[DType.float64](n)9. var b = Tensor[DType.float64](n)10. for i in range(n):11. a[i] = anp[i].to_float64()12. b[i] = bnp[i].to_float64()13> from math import sqrt14. def mojo_naive_dist(a: Tensor[DType.float64], b: Tensor[DType.float64]) -> Float64:15. var s: Float64 = 0.016. n = a.num_elements()17. for i in range(n):18. dist = a[i] - b[i]19. s += dist*dist20. return sqrt(s)23> fn mojo_fn_dist(a: Tensor[DType.float64], b: Tensor[DType.float64]) -> Float64:24. var s: Float64 = 0.025. let n = a.num_elements()26. for i in range(n):27. let dist = a[i] - b[i]28. s += dist*dist29. return sqrt(s)30.31> let naive_dist = mojo_naive_dist(a, b)32. let fn_dist = mojo_fn_dist(a, b)33. print(fn_dist)34. 1290.852142509223535. print(naive_dist)36. 1290.8521425092235
推荐阅读
- 长鹿农庄门票 顺德长鹿农庄开放时间
- 菊花一般什么时候开放
- 桔子花什么时候开放急急急急
- 竟相什么成语
- 竞相开放的意思是什么
- 竞什么开什么
- 深圳“开放摆摊”首周调查:有条例无细则 随意摆卖重回街头
- wps是什么编程语言
- 雪花那个飘刘翠翠的结局
- 封闭式基金与开放式基金的区别,这五点你需要知道