Modular AI 表示,自 5 月 2 日推出 Mojo 编程语言以来,已有超过 12 万开发者注册使用 Mojo Playground,超过 1.9 万开发者在 Discord 和 GitHub 上积极讨论 Mojo。
Mojo 现在可供本地下载,不过目前只有 Linux 系统版本,官方承诺会在即将发布的版本中添加 macOS 和 Windows 系统支持。
据介绍,Mojo 是一种用于计算的高性能“Python++”编程语言,面向 AI 开发人员推出,随着时间的推移,它将发展成为 Python 的超集。
目前,Mojo 已经支持与任意 Python 代码无缝集成,并具有可扩展的编程模型来针对性能关键型系统,包括人工智能中普遍存在的加速器(例如 GPU)。
此外,IT之家在博客中注意到,Mojo 号称将动态和静态语言的优点结合在一起,性能可达到目前 Python 的 68,000 倍,还提供与 Python 生态系统的完全互操作性,从而可以无缝使用 Python 库。
以下为使用 Mojo 计算欧几里得距离的代码:
$ mojo Welcome to Mojo! 🔥 Expressions are delimited by a blank line. Type `:mojo help` for further assistance. 1> %%python 2. import numpy as np 3. n = 10000000 4. anp = np.random.rand(n) 5. bnp = np.random.rand(n) 6> from tensor import Tensor 7. let n: Int = 10000000 8. 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 sqrt 14. def mojo_naive_dist(a: Tensor[DType.float64], b: Tensor[DType.float64]) -> Float64: 15. var s: Float64 = 0.0 16. n = a.num_elements() 17. for i in range(n): 18. dist = a[i] - b[i] 19. s += dist*dist 20. return sqrt(s) 23> fn mojo_fn_dist(a: Tensor[DType.float64], b: Tensor[DType.float64]) -> Float64: 24. var s: Float64 = 0.0 25. let n = a.num_elements() 26. for i in range(n): 27. let dist = a[i] - b[i] 28. s += dist*dist 29. 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.821425092235 35. print(naive_dist) 36. 1290.8521425092235
此外,Mojo 允许开发者构建静态编译的可执行文件,可以在没有任何依赖项的情况下进行部署,例如:
$ mojo build hello.🔥 $ ./hello Hello Mojo 🔥! 9 6 3 $ ls -lGtranh hello* -rw-r--r-- 1 0 817 Sep 3 23:59 hello.🔥 -rwxr-xr-x 1 0 22K Sep 3 23:59 hello
Mojo 还拥有 Visual Studio Marketplace 的官方扩展,支持语法高亮、语句诊断、格式化、补全建议等。
原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/302474.html