V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
find456789
V2EX  ›  问与答

Guido van Rossum 为什么可以独立开发一门语言 Python , 我要学习哪些知识,才可以向他那样开发一门语言的第一个版本?

  •  
  •   find456789 · 2020-12-04 00:56:04 +08:00 · 1418 次点击
    这是一个创建于 1485 天前的主题,其中的信息可能已经有所发展或是发生改变。
    10 条回复    2020-12-04 10:12:37 +08:00
    Caratpine
        1
    Caratpine  
       2020-12-04 01:03:53 +08:00
    编译原理
    cmdOptionKana
        2
    cmdOptionKana  
       2020-12-04 01:23:21 +08:00 via Android
    龙书、虎书、鲸书
    levelworm
        3
    levelworm  
       2020-12-04 01:39:26 +08:00 via Android
    编译原理。不过难点是让那么多人用。。。
    liveoppo
        4
    liveoppo  
       2020-12-04 01:45:53 +08:00
    技术应该不是问题,关键怎样在实践中发现需求,并且有点点个性
    msg7086
        5
    msg7086  
       2020-12-04 02:20:13 +08:00
    如果只是「语言」的话,可以从 DSL 开始玩起,不考虑语法文法,直接切入解决痛点这步。
    圭多那个年代本身缺乏类似的语言,所以有必要从头开始,这个是时代所限。

    很多人都可以独立开发一门语言,开发语言也不是特别难的事情,关键是:
    1. 为什么要花大量宝贵的时间去开发他?
    2. 你能用他做出什么你以前做不到的事?
    wellsc
        6
    wellsc  
       2020-12-04 02:21:01 +08:00 via iPhone   ❤️ 1
    Sicp
    littlecreek
        7
    littlecreek  
       2020-12-04 02:39:52 +08:00   ❤️ 2
    开发语言的难点:
    1. 理解需求, 痛点. 如何与现有的语言竞争
    2. 设计语言, 对现有语言的各种特性做出取舍.
    3. 吸引第一批核心贡献者, 写出配套的 std lib
    4. 宣传推广, 吸引初期用户使用, 并成功出现第一批流行的库, 及杀手场景
    5. 继续宣传推广, 建立并维护社区, 吸引更多的贡献者, 开发者, 以及用户使用
    6. 吸引大公司开源部门使用并贡献, 其他的如各种社区, 大学等为之鼓吹, 开各种 xx Con 年会, 各地的爱好者沙龙
    7. 成功突破圈子, 并在主流使用场景中切出一块自己的势力范围. 挤掉一部分其他语言的空间.
    8. 好了, 现在你的语言应该可以成为 top 20~30 的语言之一了. 后面就是如何维持你的语言在 10 年之内不销声匿迹.

    要做到这些感觉好难, 只能是尽人事听天命.
    secondwtq
        8
    secondwtq  
       2020-12-04 05:11:27 +08:00 via iPhone
    GvR 牛逼的不是他开发了一个语言,而是他开发了一个有很多人用的语言
    你说要做 GvR,这话跟问怎么成为扎克伯格是差不多的
    jingcoco
        9
    jingcoco  
       2020-12-04 08:21:31 +08:00 via iPhone   ❤️ 1
    听过一些传闻,以色列人喜欢造轮子,然后卖给其他国家人。中国人是实用主义,能把工具使用的非常好,所以听闻国外好多研究机构会有中国人做助手……
    nonduality
        10
    nonduality  
       2020-12-04 10:12:37 +08:00   ❤️ 1
    现在任何新编程语言能玩的特性大同小异,换句话说,没啥新意可搞了。可以做的基本有 3 点:

    1 、创造具备某些杀手特性的全新语言:Rust 的内存安全性、Go 的 goroutine
    2 、创造一门编译到目前流行语言的新语言,并做到某种兼容,如各种编译运行到 JVM 的语言如 scala 、clojure
    3 、针对原有语言做某种提升,如 TypeScript 加强了 Javascript 、LuaJIT 给 Lua 提速、Pyston 给 Python 提速

    如果你想做一样很多人使用、以便留名青史,第一个选择恐怕很难,第二个也有一定难度,第三个依附现有的大腿,尽管很难,但相对容易点
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2903 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 08:10 · PVG 16:10 · LAX 00:10 · JFK 03:10
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.