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

每种编程语言都有他优势和劣势,能不能把这些优势集中起来,创建一门新的编程语言满足更多人的需要

  •  1
     
  •   zxCoder · 2020-12-26 08:40:40 +08:00 · 5141 次点击
    这是一个创建于 1430 天前的主题,其中的信息可能已经有所发展或是发生改变。
    49 条回复    2021-02-04 00:08:15 +08:00
    iConnect
        1
    iConnect  
       2020-12-26 08:43:42 +08:00 via Android
    低级语言可以统一,比如汇编,高级语言不可能统一,本来就是应用向的,需求差异,没法统一。
    cmdOptionKana
        2
    cmdOptionKana  
       2020-12-26 08:49:40 +08:00
    已经有人做了,Kotlin 就是这样一种语言,非常积极把各种主流语言的特性都加进去了,要啥有啥,还有 java 的生态。

    其他主流语言近年来的发展也是博取众长,不断做加法,流行的特性都逐渐加进来,结果就是各种主流语言趋同。

    另外也有一个难得的做减法的语言,Go,被赞美大道至简,也被讥讽大道至简。
    wellhome
        3
    wellhome  
       2020-12-26 08:54:45 +08:00 via iPhone
    kotlin 。可以单独写程序?
    WalkingEraser
        4
    WalkingEraser  
       2020-12-26 09:23:59 +08:00 via Android   ❤️ 4
    C++:你们小年轻在说啥?
    Deardrops
        5
    Deardrops  
       2020-12-26 09:31:15 +08:00 via Android   ❤️ 1
    https://zh.wikipedia.org/zh-cn/Nim

    Nim 表示,能学的语言特性我都学了,但没人用
    TypeError
        6
    TypeError  
       2020-12-26 09:40:05 +08:00 via Android
    rust,各种特性都在加
    lululau
        7
    lululau  
       2020-12-26 09:54:20 +08:00 via iPhone   ❤️ 1
    swift kotlin
    Cbdy
        8
    Cbdy  
       2020-12-26 10:04:23 +08:00 via Android
    Swift, Kotlin
    GeruzoniAnsasu
        9
    GeruzoniAnsasu  
       2020-12-26 10:04:40 +08:00
    为什么还在寻找银弹?
    civet
        10
    civet  
       2020-12-26 10:39:08 +08:00 via iPhone
    《人月神话》了解一下?
    secondwtq
        11
    secondwtq  
       2020-12-26 10:50:01 +08:00 via iPhone
    wysnylc
        12
    wysnylc  
       2020-12-26 11:28:49 +08:00
    全都有==全没有
    就如全栈==全废
    nguoidiqua
        13
    nguoidiqua  
       2020-12-26 11:30:59 +08:00   ❤️ 3
    优势往往是建立在劣势上的,真正去设计一个东西你就会发现没可能面面俱到,总得有所取舍。

    真要什么都不舍,那要么你做着很痛苦甚至做不出来,要么用着很痛苦甚至用不下去。
    nonduality
        14
    nonduality  
       2020-12-26 11:35:09 +08:00
    这年头编程语言能玩的技术特性和语言特性基本都玩遍了,所以看啥语言基本都差不多。
    twl007
        15
    twl007  
       2020-12-26 12:12:33 +08:00 via iPhone
    你说的不就是 c++么
    jtsai
        16
    jtsai  
       2020-12-26 13:11:19 +08:00 via iPhone   ❤️ 5
    语言不重要 有人用才重要 如果有很多人用 不得不用 狗屎都能成为标准 我说的是 js
    jtsai
        17
    jtsai  
       2020-12-26 13:18:35 +08:00
    一个语言的优秀固然很重要,还要考虑的历史的进程,和出生在哪家。
    icy37785
        18
    icy37785  
       2020-12-26 13:24:21 +08:00
    优势和劣势通常都是一体的呀,比如这个场景里是简陋,那个场景里可能就是简洁了,你消除了简陋的劣势也失去了简洁的优势。
    namelosw
        19
    namelosw  
       2020-12-26 13:24:32 +08:00
    全世界: 没有最好的语言, 在合适的场景使用合适的语言.

    LISP: 既然没有最好的语言, 只有合适的语言, 那么最好的语言是可以立刻改变成任何合适语言的语言.
    namelosw
        20
    namelosw  
       2020-12-26 13:26:04 +08:00
    @nonduality Coq 了解一下?
    namelosw
        21
    namelosw  
       2020-12-26 13:29:59 +08:00
    @secondwtq 看了这篇, 感觉最好的语言就是把 lambda cube 爬到头, 把 type inference, gradual typing 之类其他花里胡哨的全删掉, 最后允许一下 Idris 那种简单递归, 手动滑稽……
    Perry
        22
    Perry  
       2020-12-26 13:31:19 +08:00   ❤️ 2
    楼主是不是不知道一方面的优势往往会带来另一方面的劣势( tradeoff )?
    whi147
        23
    whi147  
       2020-12-26 14:01:38 +08:00 via iPhone
    c 艹表示 11 的特性都还有人学不会呢
    chinvo
        24
    chinvo  
       2020-12-26 14:12:50 +08:00 via iPhone
    你说的是不是 C#
    casstiel
        25
    casstiel  
       2020-12-26 15:06:45 +08:00
    多快好省了解一下
    SuperManNoPain
        26
    SuperManNoPain  
       2020-12-26 15:08:18 +08:00
    全都有==全没有
    就如全栈==全废
    renmu123
        27
    renmu123  
       2020-12-26 16:11:14 +08:00 via Android
    没有银弹
    raaaaaar
        28
    raaaaaar  
       2020-12-26 16:38:43 +08:00 via Android
    知道分工么,没有一个东西能够做到所有。
    BingoXuan
        29
    BingoXuan  
       2020-12-26 16:41:37 +08:00 via Android
    没有银弹
    natforum
        30
    natforum  
       2020-12-26 17:34:02 +08:00
    名字我都想好了,就叫 A 语言,全名 ALL language
    kx5d62Jn1J9MjoXP
        31
    kx5d62Jn1J9MjoXP  
       2020-12-26 17:34:49 +08:00 via Android
    开发速度和运行速度会有个妥协,运行速度快的语言贴近操作系统底层,开发起来就复杂
    语言的特化和功能的一般化也会有个妥协,Java 语言可以做很多东西但是每种都需要在一个专门的框架上做应用,js 和 php 就相反,只做一件事情
    AndyAO
        32
    AndyAO  
       2020-12-26 17:36:51 +08:00
    1. 加入中间层,例如 JVM,CLR,JavaScript Host.
    基于 JVM 的语言估计有十几种还多.
    2. 大量使用宏,例如 LISP.可以轻松建立 DSL.
    Jooooooooo
        33
    Jooooooooo  
       2020-12-26 18:01:01 +08:00
    "哎呀, 行业标准太多不统一, 我们应该统一这些标准, 做一个大而全的规范标准"

    "行业内又多了一个标准"
    IgniteWhite
        34
    IgniteWhite  
       2020-12-26 19:17:45 +08:00 via iPhone
    @natforum 有 C 语言,B 语言,ABC 语言,还真没有 A 语言哈哈
    msg7086
        35
    msg7086  
       2020-12-26 19:19:15 +08:00 via Android
    (现在有 50 种编程语言。)
    把优势集中起来,创造一门新的编程语言。
    (现在有 51 种编程语言。)
    Jaeden
        36
    Jaeden  
       2020-12-26 19:32:16 +08:00 via Android
    想要优势就会有优势的对立面产生劣势
    James369
        37
    James369  
       2020-12-26 19:43:55 +08:00
    为什么没有统一的操作系统,
    为什么没有统一的数据库,
    为什么没有统一的浏览器,
    丫的,我就是找不到统一的东西。这应该是矛盾的对立面在起作用。
    cmdOptionKana
        38
    cmdOptionKana  
       2020-12-26 19:46:03 +08:00 via Android
    @James369 统一会扼杀发展,因为缺少竞争
    charlie21
        39
    charlie21  
       2020-12-26 19:56:04 +08:00
    不妨类比人类语言

    Java 就像是英语,谁都能说一嘴
    Python 就像是汉语,有自己独特的一套价值观在里面,如果适应了之后则用着还挺舒服的

    C# 就像是法语,至少在非洲是很通用的

    C 语言就像是拉丁语,只有在少量无可取代的领域还在使用。但它带领了印欧语系

    ______ 就像是俄语,随时透露出一股与其它语言格格不入的凛冽气质

    C++ 就像是芬兰语。
    zachlhb
        40
    zachlhb  
       2020-12-26 20:14:19 +08:00 via Android
    @wellhome 可以,kotlin 也是一种语言,当然可以单独用,并不只是放在安卓里
    taowen
        41
    taowen  
       2020-12-26 21:32:28 +08:00
    原因主要是生态,一门语言不仅仅是语言,还包括上面的库。除非有非常强大的投入,要完全造一套库出来,成本太高了。所以大部分小众新语言都是采取借别人的生态的做法,比如编译到 JVM 上执行。

    运行时和语法是不能割裂的,很多语法需要独特的运行时支持。比如 golang 要求每个函数都可以是 coroutine,那么就可能导致复用 c 的函数库变得困难。这也就导致了,寄人篱下,必须低头。这就导致了新语言的语法特性是受限制的。
    neutralcomments
        42
    neutralcomments  
       2020-12-26 22:22:19 +08:00 via Android
    @charlie21 我知道,此空填易语言,不但骗钱还骗命
    miniliuke
        43
    miniliuke  
       2020-12-26 22:41:44 +08:00
    你想要一个带 GC 还是不带 GC 的语言......
    fiveelementgid
        44
    fiveelementgid  
       2020-12-26 23:05:50 +08:00 via Android
    Scholar language:C#语言就是这样的
    动态杂静态的语言,不过 dynamic 关键字没啥人用就是了
    fiveelementgid
        45
    fiveelementgid  
       2020-12-26 23:06:29 +08:00 via Android
    @charlie21 非洲人路过,哈哈哈哈哈哈哈哈哈哈哈哈ヘ(。□°)ヘ
    Richardhtw
        46
    Richardhtw  
       2020-12-26 23:08:00 +08:00
    没有银弹
    ImACat
        47
    ImACat  
       2020-12-26 23:18:02 +08:00
    话说凡事不都是 trade off 吗?不觉得有那种语言存在
    szzhiyang
        48
    szzhiyang  
       2020-12-27 13:45:34 +08:00 via iPhone
    Swift 。
    SingeeKing
        49
    SingeeKing  
       2021-02-04 00:08:15 +08:00 via iPhone
    感觉 Rust 就是这么做的,另外还有,传说中的 V 语言?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4250 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 05:29 · PVG 13:29 · LAX 21:29 · JFK 00:29
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.