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

有没有可能所有的编程语言或者框架都在朝着同一个方向发展

  •  1
     
  •   luffy · 2022-08-27 18:16:10 +08:00 · 2027 次点击
    这是一个创建于 579 天前的主题,其中的信息可能已经有所发展或是发生改变。

    比如在 n 年前某个主流编程语言 A 还没有闭包这个特性,另一个编程语言 B 加入了闭包, A 语言在下个版本也开始跟进。

    或者,曾经一些编程语言还不支持 type, 后来也慢慢加入 type.

    再比如,以前不支持宏,现在很多编程语言也都已经支持

    以前不支持函数式开发的,现在这些函数式特性也都慢慢加入了。

    就是整体的趋势发展好像是,大家都在互相借鉴,只要是主流的,普遍觉得好的特性,也都会慢慢被加入。 所以看起来都在朝同一个方向前进?

    10 条回复    2022-08-28 10:39:31 +08:00
    2NUT
        1
    2NUT  
       2022-08-27 18:31:12 +08:00   ❤️ 1
    确实是的,语言越来越相近, 但目前生态还是很明显的区别,泾渭分明

    最终语言越来越近, 直到 编译器 抹平了差异,最终大家都是 llvm 中间表示 的方言

    最后因为编译技术的发展, 生态也实现了统一.
    yyf1234
        2
    yyf1234  
       2022-08-27 18:39:26 +08:00 via iPhone
    好的东西都是趋同的
    pursuer
        3
    pursuer  
       2022-08-27 18:53:31 +08:00   ❤️ 1
    大道至简怎么讲(笑

    感觉现在入坑语言,学习相关生态(库)才是最麻烦的
    wu67
        4
    wu67  
       2022-08-27 20:08:41 +08:00
    我只能说代码编程一大抄. 除了少数的顶尖人士, 其他的相当大部分都不过是你抄我我抄你, 顶多针对公司业务改一改
    kingjpa
        5
    kingjpa  
       2022-08-27 21:04:47 +08:00
    是啊,就连浓眉大眼的 php 竟然也加入了强类型和注解,令人不解。
    luffy
        6
    luffy  
    OP
       2022-08-27 21:18:17 +08:00
    @kingjpa 这点倒是意外了, 很久没关注了
    cmdOptionKana
        7
    cmdOptionKana  
       2022-08-27 21:33:33 +08:00
    很正常,眼睁睁看着一个有用的特性,只要该特性带来的好处大于坏处,为什么不加上?

    一个语言就像我们普通人的一间房子,看见别人有空调、冰箱、净水器、洗碗机…… 只要有钱,多数家庭都会选择给家里添上,这是很合理的做法。

    动态语言加 type hint, 最大的原因是现代化 IDE/editor 的发展,使 type hint 的好处被放大。
    flyingghost
        8
    flyingghost  
       2022-08-28 01:40:21 +08:00
    人类很多事情的发展趋势都是类似,像一棵生长的树:
    各分支独立发展 -> 某些分支特性优秀,互相取长补短 -> 各分支趋同,同时有少数分支取得优势地位 -> 英雄主动统一江湖 /事实标准统一江湖 -> 单主流笨重缓慢保守乏味,变成泥足巨人,出现不满,新的分支 -> 回到开头循环
    msg7086
        9
    msg7086  
       2022-08-28 05:22:59 +08:00
    即使如此,语言背后的风格习惯也是不会改变的。
    最终你还是会看到两个长得很像但用起来手感却天差地别的语言。
    (没错我就是在说 Py 和 Rb 。)
    aguesuka
        10
    aguesuka  
       2022-08-28 10:39:31 +08:00   ❤️ 1
    过去时 -- 现代编程语言的最基本的要求
    * nullsafe
    * 第一公民函数
    * 作用域安全
    * 泛型
    * 类型推导
    * 元编程或者说自省能力
    * 去分号
    * 包, 模块, 可见修饰符

    进行时
    * 天然的异步
    * 类型后置
    * 模式匹配
    * immutable 的支持
    * 使用处理异常 monad
    * 限制 override 和 overload

    未来
    * Structural type 代替大部分 Nominal type
    * 变量所有权
    * Strictly positive 的代数数据类型(ADT)
    * 更严格的子类型, 比如说我们可能不需要 top type, 也就是所有类型的父类型
    * 安全的元编程


    太长不看: 现代编程语言就是在保证工程性的前提下, 尽量减少 runtime error, 并保持简洁的语法.
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1241 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 18:02 · PVG 02:02 · LAX 11:02 · JFK 14:02
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.