• 请不要在回答技术问题时复制粘贴 AI 生成的内容
skies457
V2EX  ›  程序员

有没有这样一种语言

  •  
  •   skies457 · Feb 14, 2020 · 9214 views
    This topic created in 2458 days ago, the information mentioned may be changed or developed.

    像 JavaScript 一样灵活且生态丰富,像 Python 一样 Pythonic 式的简单易上手,像 Go 一样并行编程方便快捷,然后还具备接近 C/C++的性能。。

    要是还有 Rust 的安全性就更棒了🌚

    61 replies  •  2020-02-15 19:22:21 +08:00
    Mitt
    Mitt
    Feb 14, 2020
    1
    您可以选择自己写一个 🌚
    akazure
    akazure
    Feb 14, 2020 via Android
    2
    易语言?
    bilibilifi
    bilibilifi
    Feb 14, 2020 via iPhone
    3
    你大概可以考虑一下 Julia,就是生态比较差
    afpro
    afpro
    Feb 14, 2020
    4
    简单易上手 = 想怎么写就怎么写
    安全性 = 我让你怎么写 你就要怎么写
    所以你想要一个 又管你又不管你的老婆?
    singerll
    singerll
    Feb 14, 2020 via Android❤️4
    5
    这不就是老板用的语言吗?
    dreamerlv3ex
    dreamerlv3ex
    Feb 14, 2020❤️1
    6
    ETC:拼音怎么样,简单到小学生都会,仅仅需要 26 个字母,多音节并行无压力,模块化拼接,语法糖,性能还需要说吗?
    安全性,对老外不友好,非常利于 BGSG.
    KasuganoSoras
    KasuganoSoras
    Feb 14, 2020❤️1
    7
    PHP 是世界上最好的语言
    manami
    manami
    Feb 14, 2020 via Android
    8
    404 Not Found
    Cbdy
    Cbdy
    Feb 14, 2020 via Android
    9
    这不是 Java 吗?
    luckylo
    luckylo
    Feb 14, 2020 via Android
    10
    中科院的 木兰呀 手动狗头
    crayygy
    crayygy
    Feb 14, 2020 via iPhone
    11
    Kotlin ?
    dilu
    dilu
    Feb 14, 2020❤️1
    12
    我从来没觉得 JavaScript 的生态有多好反而有种病态,随便引用一个包,几百个包就上来了。。。。
    ClericPy
    ClericPy
    Feb 14, 2020
    13
    我怀疑你在说 Nim, 但又没有证据...

    https://github.com/the-benchmarker/web-frameworks

    这语言的 web 框架 Benchmark 不知道什么时候在这个榜单里成第一了... 2 和 3 是 JS 也很 6 了

    但是没大厂背书的语言, 不太敢用
    goldenalex
    goldenalex
    Feb 14, 2020
    14
    用 Rust 方式写的 python 调用 JavaScript 执行的 C 程序?
    slyang5
    slyang5
    Feb 14, 2020
    15
    Kotlin
    pythonee
    pythonee
    Feb 14, 2020
    16
    江湖上好像传说着 clojure
    J0G57faC6uPo75W0
    J0G57faC6uPo75W0
    Feb 14, 2020 via Android
    17
    D 语言最接近,不过生态不好。
    pursuer
    pursuer
    Feb 14, 2020
    18
    灵活和性能经常是矛盾的
    lululau
    lululau
    Feb 14, 2020 via iPhone
    19
    swift
    coderluan
    coderluan
    Feb 14, 2020
    20
    简单和性能最终肯定是矛盾的,这点哪个语言能解决,剩下的问题,生态快捷啥的,有都是的人愿意来做出贡献。
    legiorange
    legiorange
    Feb 14, 2020
    21
    @bilibilifi 现在我不推荐使用 julia,整个体系还没达到能进行稳定的企业应用开发,学习的时间成本比较划不来,但是类似实验室这种的计算型较强的是没问题的。
    imn1
    imn1
    Feb 14, 2020
    22
    每天看的新闻,头条都是用这种语言写的
    GoLand
    GoLand
    Feb 14, 2020
    23
    这不就是 go,生态日益丰富,简单容易上手,性能不错。
    janxin
    janxin
    Feb 14, 2020
    24
    不存在的,自己写一个,自己做生态,自己多推广
    virusdefender
    virusdefender
    Feb 14, 2020
    25
    那不就是 golang 么,它不灵活生态丰富简单容易上手性能高安全么
    tt67wq
    tt67wq
    Feb 14, 2020 via iPhone
    26
    @Cbdy 就 java 那罗里吧嗦的语法
    clemente0620
    clemente0620
    Feb 14, 2020
    27
    人民币 /美刀
    wozhizui
    wozhizui
    Feb 14, 2020
    28
    这就是矛盾的事情,比如我想要一辆便宜的、省油的、动力强、好维修的车,有吗?有。
    whoami9894
    whoami9894
    Feb 14, 2020 via Android
    29
    @ClericPy 版本号没上 1.x 的都存疑
    ClericPy
    ClericPy
    Feb 14, 2020
    30
    @whoami9894 #29 第一行写的就是 1.0 吧...
    zhuangzhuang1988
    zhuangzhuang1988
    Feb 14, 2020
    31
    C#啊!!!
    yunye
    yunye
    Feb 14, 2020
    32
    红头文件语言
    optional
    optional
    Feb 14, 2020
    33
    ts 编译到 quickjs 或者 deno
    Mtianmin
    Mtianmin
    Feb 14, 2020
    34
    https://github.com/zhanyong-wan/dongbei

    这个这个哈哈哈哈哈哈
    LokiSharp
    LokiSharp
    Feb 14, 2020 via iPhone
    35
    你说的可能是性 C#
    skies457
    skies457
    OP
    Feb 14, 2020
    36
    @zhuangzhuang1988 @LokiSharp 写过半年 C#,C#性能还行,但是写起来有点迂腐像 C++、Java,灵活性还是不如动态语言呀。。LINQ 增加了一点语言的爽度,但时常感觉还是带着镣铐跳舞 emmm
    skies457
    skies457
    OP
    Feb 14, 2020
    37
    @optional 对性能能否接近原生还存疑,虽然不太了解 quickjs 和 deno。。个人觉得 JS 系语言的发展从来都没有以性能为导向过,大都是够用就行,毕竟日常处理数据量并不是很大
    skies457
    skies457
    OP
    Feb 14, 2020
    38
    @virusdefender @GoLand Go 虽然性能不差,但写起来是真的不敢恭维,if err != nil 这点就可以黑一年。。
    MeteorCat
    MeteorCat
    Feb 14, 2020 via Android
    39
    lua,挂个 c/c++
    wysnylc
    wysnylc
    Feb 14, 2020
    40
    快捷和安全是反义词
    huoru
    huoru
    Feb 14, 2020
    41
    有,elixir,请看: https://www.v2ex.com/t/484954#reply19

    > 像 JavaScript 一样灵活且生态丰富
    没错,因为是动态语言,算是新的语言,工具链成熟,包管理器好用

    > 像 Python 一样 Pythonic 式的简单易上手
    我觉得语法设计的好

    > 像 Go 一样并行编程方便快捷
    actor 模型,比 go 更好的并行

    > 然后还具备接近 C/C++ 的性能
    mq 就是用 erlang 写的,现在虚拟机支持 HIPE 直接编译

    > 要是还有 Rust 的安全性就更棒了
    比不了,但稳定性可以比。
    QingXuJiaZhi
    QingXuJiaZhi
    Feb 14, 2020
    42
    @skies457 “C#性能还行,但是写起来有点迂腐像 C++、Java,灵活性还是不如动态语言”

    江湖传闻动态一时爽,重构火葬场。

    你知道为什么 TypeScript 势头那么猛吗,知道 Python 也积极搞 type hint 吗,为什么过去曾经被吹捧的动态语言要往静态化的方向走?

    其中一个重要原因是最近几年 IDE/编辑器 的发展非常迅猛,在现代化编辑器的协助下,动态语言的优势几乎丧失殆尽,静态语言的缺点被克服(包括写的时候可以自动化、阅读代码的时候也可以简化显示)。
    Buges
    Buges
    Feb 14, 2020 via Android
    43
    Python 整体上的那种统一,协调,一致的设计其他语言很少有。抛开这一点的话推荐 C++,虽然宛若打满补丁的缝合怪,但避开那些偏底层性能方面的特性熟悉了之后也勉强能称得上简单好用。
    charlie21
    charlie21
    Feb 14, 2020
    44
    并行编程 是什么?能吃吗?好吃吗?
    queuey
    queuey
    Feb 14, 2020
    45
    我怀疑你在说 木兰, 但又没有证据...
    wangyzj
    wangyzj
    Feb 14, 2020
    46
    什么时候鱼和熊掌可以兼得了?
    ostholz
    ostholz
    Feb 14, 2020
    47
    难道不是 Crystal Lang?
    什么时候 Kotlin Native 成熟了,Kotlin 也是个不错的选择
    wangtxxl
    wangtxxl
    Feb 14, 2020
    48
    除了 木兰 也许只有 方舟旗下的编程语言了
    LokiSharp
    LokiSharp
    Feb 14, 2020 via iPhone
    49
    @skies457 我倒是觉得静态类型写起来爽,动态类型的要多写很多不必要的测试才能放心
    Brucepac
    Brucepac
    Feb 14, 2020 via iPhone
    50
    感觉 Swift 很接近了,等 async 有了就差不多了
    alya
    alya
    Feb 14, 2020
    51
    @wozhizui 超跑 gk5
    Kirscheis
    Kirscheis
    Feb 14, 2020 via Android
    52
    当然是 c++了,c++什么都可以一把梭
    skies457
    skies457
    OP
    Feb 14, 2020
    53
    @cmdOptionKana 赞同静态化趋势,动态语言的 type inference 也是必不可少的。但你试过用 c#写 python 的"for i, obj in enumerate(objects)"吗......
    skies457
    skies457
    OP
    Feb 14, 2020
    54
    @Buges @Kirscheis c++至今没有和 express.js 、gin、flask 相比拟的成熟的 web 后端框架,处理起 json 之类的格式代码量爆炸。。
    Kirscheis
    Kirscheis
    Feb 14, 2020 via Android
    55
    @skies457 c++确实没什么好的后端框架,不过处理 json 并不比其它语音差呀,内存效率很高,parser 也不难写,相关的库也很丰富,还快
    codehz
    codehz
    Feb 14, 2020❤️1
    56
    vlang: 你说的这些需求都有在首页上(
    甚至还有安全性:没有 null,没有全局变量,没有 undefined,没有 undefined behavior,有边界检查,有 Result/Option 类型,有泛型,默认不可变数据结构,默认纯函数
    没有 GC,也不需要生命周期管理
    性能:和 C 一样快,0 成本和 C 交互,最少的内存分配
    编译速度:总之是默秒全
    直接生成机器码
    还有自己的优化器
    编译器:空间需求<2MB,编译自身只需 0.4 秒
    还有 c to v 和 c++ to v 的转换器
    以及动态代码重载
    和强大的图形库
    自带跨平台 GUI 库
    轻松跨平台构建
    依赖少,无痛部署
    可以在任何 C 能运行的地方运行
    还有 REPL
    以及自带 ORM

    唯一的问题就是大部分真正重要的内容都没实现(每月黑 V 1/1 )
    secondwtq
    secondwtq
    Feb 14, 2020
    57
    来一点点枚举楼主这个需求的问题:

    * “像 JavaScript 一样灵活” —— “灵活”无法定义。如果说能写什么程序的话,那么任何一个图灵完全并且有正常的 C FFI 的语言都足够灵活( https://v2ex.com/t/604915#r_7962546 ),只是 JavaScript 作为没有标准的 FFI 的语言,灵活性很值得怀疑。如果“灵活”是指“同样的程序可以有多少种写法”的话,不同语言由于语言特性的不同,会有不同的角度,比如 JavaScript 的 prototype 很灵活,汇编的内存操作也很灵活。单单“灵活”是什么也说明不了的,既然楼主说了“像 JavaScript 一样灵活”,那楼主要的就只能是 JavaScript。

    * “生态丰富” —— 满足 V 站定义的“生态丰富”的语言(假设楼主说的是通用编程语言,并且这里不算 Scala、TypeScript 这种作弊的),用手指+脚趾能数出来,这一上来就大大限制了候选集合。

    * “Pythonic 式的简单易上手” —— 这个“Pythonic”又直接把目标锁在了 Python 上——因为“Pythonic”就是指“Python 的特征”,或“根据 Python 所总结出的特征”。从比较的角度讲,编程语言就是这样一个思路的集合,如果以“Pythonic”指导设计语言的话,最后出来的就只是另一个 Python。
    再说“简单易上手”,如果说生态尚且可以通过数据量化的话,“简单易上手”是无法定义的,或者说不同的人可能有不同的定义。既然你前面提到了“Pythonic”,那么我只能假设你的“简单易上手”是指“Pythonic”。根据上一段所述,符合“Pythonic”的只有 Python。

    * “像 Go 一样并行编程方便快捷” —— Go 在并行编程方面我只能说一般(再说从根上讲这就不是 Go 的设计目标之一),不是很明白这个需求。

    * “接近 C/C++ 的性能” —— 能严格满足这一标准的语言只有 C/C++,我在 https://v2ex.com/t/594287#r_7803885 这里说过 C/C++ 在这方面的特殊性。至于“接近”么,“接近”的定义也有很多种,比如在上面那个贴子中有回复提到 OCaml 比 C 快,用 Java 的人会说 Java 的性能不比 C++ 差,哪怕用 Python 的人把 CPython 扔了用 PyPy 之类的也敢这么说( https://news.ycombinator.com/item?id=13748622 ),这个 StackOverflow https://stackoverflow.com/questions/35019918/sum-all-numbers-from-one-to-a-billion-in-haskell 说 Haskell 随手一改比 C++ 还快,而这个 https://stackoverflow.com/questions/17036059/why-does-javascript-appear-to-be-4-times-faster-than-c 上面还说 modern JS engine “may allow performance roughly equal with compiled languages like C.”,

    * “Rust 的安全性” —— 这就涉及到前面说的“简单易上手”的定义问题,如果你认为在编程时 reason about lifetime 是正常的事情,那么这条需求是可以与“简单易上手”兼容的。如果你认为编程时不应该时刻 reason about lifetime,并且这件事情会搞得很“复杂”,那这个和“简单易上手”不兼容。
    epkT6QJ3RSaz6AnJ
    epkT6QJ3RSaz6AnJ
    Feb 14, 2020
    58
    如果量子计算实现,真正的 lisp 就会实现,所有的框架、ide 都会消亡,因为都是历史的产物,最终退化为一种历史和文化,未来人类可能已经不需要 gui,不需要实例,不需要过程,只需要信息量和 lisp machine。
    epkT6QJ3RSaz6AnJ
    epkT6QJ3RSaz6AnJ
    Feb 14, 2020
    59
    @epkT6QJ3RSaz6AnJ 因此我们活在的世界其实未来人看,可能就想蒸汽机和核能的区别,我们认为很有生产力的工具,在未来看都显得笨拙和多余。
    b00tyhunt3r
    b00tyhunt3r
    Feb 15, 2020
    60
    @epkT6QJ3RSaz6AnJ 解释一下
    whoami9894
    whoami9894
    Feb 15, 2020
    61
    @ClericPy 我说框架版本号
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   873 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 134ms · UTC 21:15 · PVG 05:15 · LAX 13:15 · JFK 16:15
    ♥ Do have faith in what you're doing.