V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
akaHenry
V2EX  ›  分享创造

🔥 分享: 正在写 <<Mojo 编程学习指南>> 在线教程. 欢迎阅读+贡献.

  •  1
     
  •   akaHenry · 2023-09-13 11:56:08 +08:00 · 1530 次点击
    这是一个创建于 436 天前的主题,其中的信息可能已经有所发展或是发生改变。

    如题:

    Mojo 教程内容:

    • 已经写了几篇内容.
    • 相比官方文档, 对 mojo 的特性, 和其他语言, 做了比较. 方便快速掌握.

    done:

    • ✅ mojo 安装教程

    in-progress:

    • mojo 基础教程(语法详解)
    • mojo 标准库分析
    • mojo 进阶教程

    todo:

    • ❌ mojo 生态库

    Mojo 中文社区:

    阅读提示:

    • 无需登录, 但(手机需要挂全局梯子, PC 规则模式即可)
    • 无需登录, 但(手机需要挂全局梯子, PC 规则模式即可)
    • 无需登录, 但(手机需要挂全局梯子, PC 规则模式即可)

    PS:

    • 欢迎一起贡献 Mojo 中文教程.
    • 如有兴趣, 可以发 lark 注册邮件给我, 开编辑权限.
    8 条回复    2024-05-03 17:53:43 +08:00
    akaHenry
        1
    akaHenry  
    OP
       2023-09-13 12:10:29 +08:00
    Mojo 教程, 内容截图:

    iluolSNS
        2
    iluolSNS  
       2023-09-13 13:52:13 +08:00
    很棒 如果能打开就更好了
    akaHenry
        3
    akaHenry  
    OP
       2023-09-13 15:54:51 +08:00
    @iluolSNS #2 能打开呀?

    需要梯子, 全局模式.
    ZX576
        4
    ZX576  
       2023-09-21 11:09:39 +08:00
    昨天仔细看了 mojo 的介绍,看楼主在布道,有几个疑问能帮忙解答一下么?


    > It should not be limited in its ability to introduce new keywords or grammar productions merely to maintain compatibility


    我的理解是其实算是一门新的语言,python 程序员迁移仍然需要学习成本,考虑到很多地方借鉴了 rust 设计,所以推测学习成本还不低?


    > We utilize CPython to run all existing Python 3 code without modification and use its runtime, unmodified, for full compatibility with the entire ecosystem


    mojo 内置 Cpython 去支持 python 代码,可以理解为 mojo 并没有解决 python 的性能问题对吧?如果需要性能的领域,需要使用 mojo 语法进行实现


    >We will provide a mechanical migration tool that provides very good compatibility for people who want to migrate code from Python to Mojo.


    为 python 提速就是把 python 代码转为 mojo 代码?
    akaHenry
        5
    akaHenry  
    OP
       2023-09-26 18:03:16 +08:00
    @ZX576

    1. 学习成本不高, chris 并不会增加太多新语法. 语法复杂度远小于 rust. 100% 兼容 python, 目前比 python 扩充的特性, 都比较符合直觉. 并不难理解.

    2. 当前 mojo 执行 纯 python 代码 or import python lib 时, 会调用 cpython. (当前依赖 cpython, 未来会去掉依赖, 纯 mojo) 目前对 python codes or libs, 性能上, 应该没啥提升.(只是对齐 python 阶段, 未来 去除 cpython 依赖时, 会有提升. 画饼, 是个长期目标) 当前如果想提升性能, 是需要手动改写 python 代码到 mojo 来优化. 不过官方正在实现 python2mojo 工具(自动翻译), 估计很快就会发布. 到这个阶段, 即使不学 mojo, 只会 python 也能利用 mojo 来提升性能.(当成一个外挂)

    3. 是的. 提升 python 性能, 需要转换为 mojo. 当前是手转, 可能比较快就会有工具自动转了.
    ZX576
        6
    ZX576  
       2023-09-27 17:49:44 +08:00
    @akaHenry

    感谢回答呀!

    老实说 "工具自动转" 这一步存在太多变数了,我对此不是很乐观,想了一下中间存在的问题实在太多,个人猜测如果这个方向可行,rust 社区早应该做了,而不是折中搞一个 pyo3 出来。当然肯定是希望 mojo 大佬们能够搞出来这个转换器,社区苦 GIL 久矣!
    akaHenry
        7
    akaHenry  
    OP
       2023-09-30 12:35:58 +08:00
    @ZX576 和 rust 定位不一样. Mojo 是 Python 的超集. 性质如 TS vs JS 和 C vs C++.

    你不会觉得 C 转 C++, JS 转到 TS 困难吧?

    chris 过去在苹果, 搞过 Objective-C 转 Swift.

    这不过是再搞一遍, 轻车熟路. 你要相信专业的编译器专家和语言专家. 不会比我们懂的少.
    tntin
        8
    tntin  
       202 天前
    欢迎加入和共创 https://mojocn.org
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3448 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 04:37 · PVG 12:37 · LAX 20:37 · JFK 23:37
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.