V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
soclearn
V2EX  ›  编程

传统编程语言语法发展到现在,有个阑尾炎事件依然存在

  •  
  •   soclearn · 2023-04-11 22:02:30 +08:00 · 2419 次点击
    这是一个创建于 593 天前的主题,其中的信息可能已经有所发展或是发生改变。

    就是包围代码的 chunk 块,一层层树形嵌套要求闭合的那些{},()
    一不小心编译器就给你抛个错

    谁能知道这么个问题,可以成为打败一个人学习编程最大的难题
    不是说它难,而是说它存在了这么久,居然没有人正视它。

    bug 和调试往往需要在这里聚集大量时间
    有对齐的编辑器和样式化过后的编辑器,也不省事

    面向人的语法,居然要做成这样子

    可见编程尚处在非常原始的阶段
    那些发明语言的人,可能根本没考虑过语言要做成啥样子好,,,根本就没有考虑这方面的实用性设计

    第 1 条附言  ·  2023-04-12 01:19:49 +08:00
    解决问题的关键,可以尝试设计一种语法中至少不含任何强制{},(),依然能最大程序做到隐式表达代码块开闭逻辑的语言,这样任何 500 字以内的含换行 chunk 块,都可以自然语言方式 oneliner 化,而且可以统统喂给解析器消化的,,
    这样一种 “智能编译器”
    非 js webpack 之后的那种效果。

    的确有点像 chatgpt
    31 条回复    2023-04-23 21:26:06 +08:00
    lance6716
        1
    lance6716  
       2023-04-11 22:16:22 +08:00 via Android
    po 应该很喜欢 Python
    soclearn
        2
    soclearn  
    OP
       2023-04-11 22:19:22 +08:00
    @lance6716

    完全错了。我喜欢直接免语法的语言。
    直接在 ast 上写代码的语言。
    或者说,写语言和写代码为一体的语言。
    soclearn
        3
    soclearn  
    OP
       2023-04-11 22:29:41 +08:00
    编程语言有语法,而且是这么丑陋的语法。
    绝对是这个时代的悲哀。

    编程的输入形式,从 parser 的设计开始,并且发展成今天这个样子,就注定是个悲哀。
    duke807
        4
    duke807  
       2023-04-11 23:02:23 +08:00 via Android
    不觉得是问题
    duke807
        5
    duke807  
       2023-04-11 23:02:52 +08:00 via Android
    op 应该喜欢 verilog
    用 begin 和 end 代替 { }
    hsfzxjy
        6
    hsfzxjy  
       2023-04-11 23:03:52 +08:00 via Android
    你是说像直接把英语 /汉语作为代码吗
    est
        7
    est  
       2023-04-11 23:06:26 +08:00
    @minlearn 你需要的是 chatgpt plus
    cmdOptionKana
        8
    cmdOptionKana  
       2023-04-11 23:17:34 +08:00   ❤️ 2
    1. 没有银弹
    2. 复杂度只能被转移, 不能被消灭

    因此, 编程语言就像菜系一样, 只是各有取舍, 各有偏好.

    人类语言也一样, 屈折语发展着就会变成分析语, 分析语发展着会变成黏着语, 黏着语继续发展又会变成屈折语, 哪个语种是完美的?
    metalvest
        9
    metalvest  
       2023-04-11 23:29:11 +08:00 via Android
    那你应该喜欢 latex
    Origami404
        10
    Origami404  
       2023-04-11 23:35:29 +08:00 via Android
    编程语言本来就是树状的,不用括号套括号表示树状结构还用啥? lisp s-exp 和 Mathematica 那种 m-exp 选一个呗
    yuelang85
        11
    yuelang85  
       2023-04-11 23:44:00 +08:00
    applescript?
    XiLingHost
        12
    XiLingHost  
       2023-04-11 23:46:21 +08:00
    有个语言基本上可以满足你提到的没有 chunk 块
    Brainfuck
    L4Linux
        13
    L4Linux  
       2023-04-11 23:51:40 +08:00 via Android
    @metalvest latex 的括号还不够复杂的吗?

    另外,回 op:没有嵌套结构的语言只配拿来当正则表达式。
    renmu
        14
    renmu  
       2023-04-11 23:56:10 +08:00 via Android   ❤️ 2
    那么您有什么好建议吗?可以写一个原型吗?
    kop1989smurf
        15
    kop1989smurf  
       2023-04-12 00:08:26 +08:00 via iPhone
    直接写机器码不就完全符合楼主的诉求了吗?
    没语法,高效,还没层级关系。
    soclearn
        16
    soclearn  
    OP
       2023-04-12 00:43:28 +08:00
    @est 有那么一点意思
    soclearn
        17
    soclearn  
    OP
       2023-04-12 00:43:53 +08:00
    @renmu 总比你这样的无脑盲从好一百倍
    soclearn
        18
    soclearn  
    OP
       2023-04-12 00:46:15 +08:00
    @Origami404
    关键一旦有流程结构,必然是树形结构的嵌套。
    这在代码中占据了绝大多数的触发机会。
    现在的语言无一例外
    soclearn
        19
    soclearn  
    OP
       2023-04-12 00:49:17 +08:00
    @cmdOptionKana 那就不能稍微解决这个{}问题吗。。。其它的先放一放
    Reficul
        20
    Reficul  
       2023-04-12 01:03:08 +08:00
    有直接写 ast ,数据即代码的语言 --- common lisp

    可惜是 OP 不喜欢括号
    kwh
        21
    kwh  
       2023-04-12 01:22:22 +08:00   ❤️ 8
    我也十分认可你的理念。
    像什么 C++之父,C 语言之父,Java 之父,他们在语言中体现的理念简直是坨屎,
    严重怀疑这些人的能力,看上去学历很高,实际(摇头)。

    本人学历也还行,高中肄业,初学编程三天,在学习中的所思所想简直暴打这些什么什么之父。奈何生不逢时,也只能宝珠蒙尘。

    但凡我生对了时代,怎么着也得是一个奥特曼之父。
    soclearn
        22
    soclearn  
    OP
       2023-04-12 02:38:38 +08:00
    @kwh
    真不错,你居然有了跟 王垠 一样的认知。
    他也有类似观点,认为 C++之父,C 语言之父,Java 之父,他们在语言中体现的理念简直是坨屎,

    如果你不是跟 王垠 一样是绝对的天才
    那应该是绝对的蠢材
    soclearn
        23
    soclearn  
    OP
       2023-04-12 02:53:52 +08:00
    @kwh blocked
    (认知决定素质,这种人才是他自己口中吐出的东西)
    soclearn
        24
    soclearn  
    OP
       2023-04-12 02:58:05 +08:00
    实际上,王垠对于某些语言之父的看法,十分接地气和中肯。比如,好多语言的设计其实并不高明。

    形成王垠对这件事认知的水平,其实稍微处在“编程语言科学”这个领域,登高就够一览。这个难度并不大。因为这属于格物自然至知。
    (难的是他长年累月的实践达到的水平和思考能力)

    而怕的,
    永远是无脑跪舔。
    又或者是。哪怕是稍微中肯的话都要反讥一次。
    kujio
        25
    kujio  
       2023-04-12 09:03:54 +08:00
    代码块 开头 缩进?
    RightHand
        26
    RightHand  
       2023-04-12 09:49:25 +08:00 via Android
    解决问题的关键可以尝试设计一种语法中至少不含任何强制{}()依然能最大程序做到隐式表达代码块开闭逻辑的语言这样任何 500 字以内的含换行 chunk 块都可以自然语言方式 oneliner 化而且可以统统喂给解析器消化的这样一种 智能编译器非 jswebpack 之后的那种效果 去掉所有标点符号空格的文字你还能准确读出来么?
    abc8678
        27
    abc8678  
       2023-04-16 22:05:33 +08:00 via Android
    有时候漏了一两个,要一层一层展开,长度大了就要前后来回翻。可能我还不会用 IDE ,用起来没那么智能
    soclearn
        28
    soclearn  
    OP
       2023-04-16 22:50:13 +08:00
    @L4Linux 不错的回答
    levelworm
        29
    levelworm  
       2023-04-19 02:21:05 +08:00 via Android
    我倒觉得这对判断 scope 可简单多了。
    chinesehuazhou
        30
    chinesehuazhou  
       2023-04-19 08:48:17 +08:00 via Android
    @minlearn 歪个楼,能否推荐“编程语言科学”的相关学习材料,比如书籍和视频
    LLaMA
        31
    LLaMA  
       2023-04-23 21:26:06 +08:00   ❤️ 1
    写个价值 5k 的 dd 脚本要求还这么多 block 了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3743 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 10:42 · PVG 18:42 · LAX 02:42 · JFK 05:42
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.