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

想深入钻研一门语言 请大家出出主意

  •  
  •   714105382 · Dec 22, 2021 via iPad · 16410 views
    This topic created in 1788 days ago, the information mentioned may be changed or developed.

    需要满足以下五条要求 1 支持多范式编程,表达能力强大 2 充分隐藏计算机体系结构的细节,特别是内存管理等等的细节 3 生态丰富,有大量的工具和库 4 语法设计现代,代码较为简洁,开发效率高 5 具有先进的 完善的工具链支持 比如 编译器 IDE 调试工具 运行监测工具之类

    目前备选 python java C# js php groovy ruby swift perl kotlin scala

    请大家帮我做做排除法 或者分析一下 n 这些语言不符合上面哪些要 如果没十全十美的 或许可以矬子里拔将军 最后我能选出一个

    135 replies  •  2021-12-24 11:31:42 +08:00
    1  2  
    ❮ ❯
    zhy0216
    zhy0216
    Dec 22, 2021❤️3
    1
    ts 最好 不接受反驳
    shintendo
    shintendo
    Dec 22, 2021❤️2
    2
    女人会辜负你,javascript 不会
    liujavamail
    liujavamail
    Dec 22, 2021
    3
    选 java 就行了
    smallX
    smallX
    Dec 22, 2021
    4
    rb 最好 不接受反驳
    3dwelcome
    3dwelcome
    Dec 22, 2021
    5
    RUST WASM ,write once, run everywhere.
    israinbow
    israinbow
    Dec 22, 2021
    6
    Swift 罢
    loading
    loading
    Dec 22, 2021
    7
    我建议 java 或者 java 塔,哈哈。
    chnhyg
    chnhyg
    Dec 22, 2021
    8
    绝大多数情况下,如无非常特殊要求,选 Java 基本是不会错的。

    具体详见 https://coolshell.cn/articles/21672.html 。
    Leviathann
    Leviathann
    Dec 22, 2021 via iPhone
    9
    考虑到 2021 年连 Java 都在积极推进 pattern matching
    而 kotlin 居然还没有 所以就不推荐了
    wonderfulcxm
    wonderfulcxm
    Dec 22, 2021 via iPhone❤️5
    10
    “语法较为简洁”第一个排除 Java 好吗
    hsfzxjy
    hsfzxjy
    Dec 22, 2021 via Android
    11
    rust
    xsen
    xsen
    Dec 22, 2021
    12
    asm
    musi
    musi
    Dec 22, 2021
    13
    javascript
    1. 既支持面向对象又支持函数式
    2. 内存管理细节无
    3. npm 生态就不说了
    4. ES+语法较为现代
    5. 不需要编译,打包工具种类繁多,调试 node ,chrome 齐全
    crackhopper
    crackhopper
    Dec 22, 2021
    14
    我怎么觉得:“充分隐藏计算机体系结构的细节” 和 “代码较为简洁,开发效率高” , 这俩矛盾呢。说实话,C 语言更合适点?或者 C++。但我感觉两个代码都不简洁。有 GC 的,按照你的说明肯定要被排除,还剩个 rust ,我了解也不多,所以 rust 可能也是 ok 的。
    crackhopper
    crackhopper
    Dec 22, 2021
    15
    perl, groovy 我也了解不多。其他那些帮你排除,就剩 rust ,但如果更想了解 cpu 、编译器、系统这些底层,c 和 c++会更加带你走向深渊。c 的话可能得多看项目,c++光标准就可以把你搞晕了。
    Leviathann
    Leviathann
    Dec 22, 2021
    16
    @crackhopper 这意思应该就是要有 gc 的啊
    有 gc ,所以隐藏了细节
    ericgui
    ericgui
    Dec 22, 2021
    17
    rust
    crackhopper
    crackhopper
    Dec 22, 2021
    18
    sorry, 我看错了,忽略我的!!!充分隐藏,我看成暴露了。对不起。当我没说
    crackhopper
    crackhopper
    Dec 22, 2021
    19
    @Leviathann 我看错了。囧了。
    crackhopper
    crackhopper
    Dec 22, 2021
    20
    没法删除已经说过的。。。那就是 java 上面的,能用 java 库的更合适。
    szxczyc
    szxczyc
    Dec 22, 2021 via iPhone
    21
    看了一圈没有人推荐 Python ,语法简洁 Python 真的🉑

    库也是非常多
    可读性和开发效率非常高
    kebamt
    kebamt
    Dec 22, 2021
    22
    Go 语言不好吗?我下个月打算自学 Go 语言的
    testlover
    testlover
    Dec 22, 2021❤️6
    23
    如果是自己玩儿 不当作吃饭的手艺 建议 c# 无所不能 性能 语法易读性 跨平台 ide 都很强
    masterclock
    masterclock
    Dec 22, 2021❤️1
    24
    Scala
    所有条件都符合
    szuwl
    szuwl
    Dec 22, 2021
    25
    你说的这些要求 C++ 完美符合
    yazinnnn
    yazinnnn
    Dec 22, 2021
    26
    kotlin 或者 f sharp
    这两个接近满足所有要求

    但是处于钻研目的,我建议你学 haskell 或者 scheme (或者 clojure )
    SmiteChow
    SmiteChow
    Dec 22, 2021
    27
    人生苦短 你懂我意思吧
    Mutoo
    Mutoo
    Dec 22, 2021
    28
    Javascript 当之无愧

    1 支持多范式编程,表达能力强大 ✅ 原型、OOP 、FP 都支持,非常强大
    2 充分隐藏计算机体系结构的细节,特别是内存管理等等的细节 ✅ 脚本语言,自动 GC
    3 生态丰富,有大量的工具和库 ✅ NPM 轮子数不清
    4 语法设计现代,代码较为简洁,开发效率高 ✅ async generator 都有,代码可以非常简洁
    5 具有先进的 完善的工具链支持 比如 编译器 IDE 调试工具 运行监测工具之类 ✅ 配合最强 IDE WebStorm 和 devTools ,调试优化各种方便。
    zhuangzhuang1988
    zhuangzhuang1988
    Dec 22, 2021❤️3
    29
    C#
    easing
    easing
    Dec 22, 2021
    30
    同建议 Haskell
    araaaa
    araaaa
    Dec 22, 2021
    31
    rust
    zjsxwc
    zjsxwc
    Dec 22, 2021
    32
    C++
    FanChen
    FanChen
    Dec 22, 2021
    33
    个人觉得要深入钻研的话还是 Haskell
    panlatent
    panlatent
    Dec 22, 2021
    34
    go 语言 ... 不推荐,perl 、php 、ruby 不推荐,java 不推荐
    bytenoob
    bytenoob
    Dec 22, 2021
    35
    c++ 没跑了
    ArcherD
    ArcherD
    Dec 22, 2021
    36
    ocaml 。除了没有大量工具和库,别的都满足,库虽然少都是精华。
    相关的生态:前端: rescript 、js_of_ocaml
    wasm: grain
    硬件: hardcaml
    区块链:tezos 及 ligo lang
    unikernel:MirageOS
    逆向:bap

    基本各种开发都可以覆盖了。
    joApioVVx4M4X6Rf
    joApioVVx4M4X6Rf
    Dec 22, 2021
    37
    直接 python 就完了
    liuhan907
    liuhan907
    Dec 22, 2021❤️3
    38
    C#稍微有点不满足生态要求,不过反正也不差。我觉得 C#就可以。
    abersheeran
    abersheeran
    Dec 22, 2021
    39
    推荐 Python ,虽然 JavaScript 生态更强但是有个问题,JavaScript 的 Feature ( BUG )太多了,如果你不想像背八股文一样去接受那些 BUG ,就不要太精通 JavaScript 。对外说会用就行了,就不会有人考你这些。Python 和 JavaScript 相似的地方有很多,基本精通一门,另一个就自然会了(指非 BUG 的部分)。
    pengtdyd
    pengtdyd
    Dec 22, 2021
    40
    没有人推荐 C ? 真是世风日下、人心不古啊 [dog]
    714105382
    714105382
    OP
    Dec 22, 2021
    41
    感谢大家热情的回复,V2 人气还是很旺的!
    其实主要是想熟练一门较为现代化的编程语言提升一下业务开发效率,楼主之前是写 java 的。
    上面的备选方案是我对着较为流行的语言筛选过一次的,不能排除的留下来的。
    排除 C/C++是因为这两个语言包含了大量的体系相关的语言设计,特别是内存管理。
    Haskell 我有一门课上学过,Haskell 是一门纯 FP ,感觉面对实际应用还是有点复杂,另外 GHC 版本太杂了 XD
    Golang 是因为语法抽象比较简练,适合系统和基础组件开发,但是感觉表达能力欠缺,Golang 我写过一点点,但是感觉缺少一些必须的语法糖和现代语法机制比如 exception ,写业务感觉有点累。
    naga1003
    naga1003
    Dec 22, 2021
    42
    java 吧,万精油,其他有很多语言都比它高效,但是受众最广还是 java
    panlatent
    panlatent
    Dec 22, 2021 via iPhone
    43
    说下我的选择标准:能开发 web 且设施健全的,能开发带客户端的,有希望在浏览器中运行的,没那么复杂或者割裂的,具有静态类型的,具有泛型的或者解决有其他方案解决问题的。

    如果是拿来吃饭的话,就别折腾了 该用啥用啥吧。
    diggzhang
    diggzhang
    Dec 22, 2021❤️1
    44
    来我们一起研究缝合怪 Scala
    lion9527
    lion9527
    Dec 22, 2021 via Android
    45
    看了 iOS 真凉了,swift 都没人提起🙃
    Reid
    Reid
    Dec 22, 2021
    46
    Rust 吧
    714105382
    714105382
    OP
    Dec 22, 2021
    47
    @Reid 听说 Rust 是一门非常好的新语言,不过听说 Rust 的精妙设计主要是为了在保证高性能的同时尽可能兼顾安全和表达能力?
    听说 Rust 的内存管理模型复杂程度不输 C++。感觉和我想遮蔽内存管理细节的要求不太符合。
    不过说实话我对 Rust 还是很有兴趣的。
    714105382
    714105382
    OP
    Dec 22, 2021
    48
    @diggzhang Scala 的生态怎么样?另外听说 Scala 的编译器不太成熟?是不是在工具链这个层面上有点欠缺?
    yewuya
    yewuya
    Dec 22, 2021
    49
    rust
    714105382
    714105382
    OP
    Dec 22, 2021
    50
    大家可以报告一下不符合要求的各个语言的“痛点”来告诉我一下各个语言的不足,可能更有利于我排除。
    比如以 Java 为例,Java 的语法确实不怎么简洁,开发效率相比于脚本类应该也不算特别高。
    ArcherD
    ArcherD
    Dec 22, 2021
    51
    以前听说 scala 有 2000 多个 issue ,现在好了直接放到单独的仓库里面去了,https://github.com/scala/bug 还有 1800 多个。
    714105382
    714105382
    OP
    Dec 22, 2021
    52
    @ArcherD 啊好的,看来 Scala 的工具链和成熟度感觉还是不太 OK 的,可以排除? 貌似语言上 Scala 是学院派。
    Kizishao
    Kizishao
    Dec 22, 2021
    53
    @xsen 往下滚动滚轮时就在想:会不会有人推荐 asm ,果然出现了。哈哈哈哈!
    feikeq
    feikeq
    Dec 22, 2021
    54
    JavaScript
    e9pWeUbh9PGCnp95
    e9pWeUbh9PGCnp95
    Dec 22, 2021
    55
    verilog , VHDL
    714105382
    714105382
    OP
    Dec 22, 2021
    56
    @unintialized 吐血......
    yazinnnn
    yazinnnn
    Dec 22, 2021
    57
    F#比 scala 更缝一些,而且工具链比 sbt 好
    F#缝了
    C#的轮子 跨平台 性能 开发工具
    Rust 的工具链
    Go 的单文件部署
    Haskell 的 monad 文化
    python 的缩进
    鸭子类型
    编译时类型生成
    kiripeng
    kiripeng
    Dec 22, 2021
    58
    golang 朴实无华的选择
    feather12315
    feather12315
    Dec 22, 2021
    59
    2 充分隐藏计算机体系结构的细节,特别是内存管理

    只有 C 。其他语言与编译细节、汇编之间的鸿沟太大了。
    rb6221
    rb6221
    Dec 22, 2021
    60
    支持多范式+现代语法设计,基本上只有新兴语言了
    再加上生态丰富,只有 TS 了。。。。。
    tjudqx123
    tjudqx123
    Dec 22, 2021
    61
    不考虑 golang 吗
    cyspy
    cyspy
    Dec 22, 2021
    62
    全满足的也就 Scala ,虽然 Scala 有自己的问题。。
    CodingNaux
    CodingNaux
    Dec 22, 2021
    63
    大佬最新的文章, https://coolshell.cn/articles/21672.html
    好像是推荐 java+go
    ila
    ila
    Dec 22, 2021 via Android
    64
    第 3 点限制了很多选择,剩下 java,c#,python.nodejs 等
    Kininaru
    Kininaru
    Dec 22, 2021
    65
    JavaScript 吧,我觉得挺符合的。语法简洁(箭头函数爽死我),用途广,库多( Nodejs ),不用垃圾回收,不用考虑线程(我觉得 JS 的并发模型和人的思维习惯挺像的)

    不过为啥要隐藏计算机体系结构细节呢?你写程序本质上就是在和计算机对话,你不理解计算机,怎么写出好程序...
    exceldream
    exceldream
    Dec 22, 2021 via Android
    66
    这要求不是 scala 吗?
    714105382
    714105382
    OP
    Dec 22, 2021
    67
    @feather12315 大佬,我是要忽略这些细节啊,就是希望语言自己的机制能够处理好,不希望我操心,只关注逻辑本身就好。
    keenkiller
    keenkiller
    Dec 22, 2021
    68
    haskell

    scala

    深入研究能让你秃,来吧
    714105382
    714105382
    OP
    Dec 22, 2021
    69
    @Kininaru 主要是希望有 GC ,不需要陷入 C++那种级别的心智负担中,想找一个能够快速 coding 的语言。
    体系本身确实要好好理解认真研究......
    714105382
    714105382
    OP
    Dec 22, 2021
    70
    @tairan2006 已经领教过 Haskell 的 Monad 之类的了,确实......
    ArcherD
    ArcherD
    Dec 22, 2021
    71
    关于 haskell ocaml 的大神的看法和比较。
    https://discuss.ocaml.org/t/job-build-system-engineer-at-jane-street/8737/3
    Ayanokouji
    Ayanokouji
    Dec 22, 2021
    72
    深入学习啥,都逃不过 linux ,语法没啥好学的
    KousukeSakurako
    KousukeSakurako
    Dec 22, 2021
    73
    无脑 Python
    rockddd
    rockddd
    Dec 22, 2021❤️1
    74
    活在当下,我选 Java
    Tenlearn
    Tenlearn
    Dec 22, 2021
    75
    楼上说得对,我猜你也就想赚钱,市面上那几个语言一搜不有的是?深入钻研的话,直接看 Linux 、操作系统、计算机网络、算法,其他都是语法罢了
    Chingim
    Chingim
    Dec 22, 2021
    76
    为啥有人提 rust
    rust 有函数式编程范式吗? rust 的函数式好用吗?
    dwlovelife
    dwlovelife
    Dec 22, 2021
    77
    选 Java 为什么不选 Groovy ,完全动态,语法简洁,同样能跑在 JVM 上,同时也就是说和 Java 可以共享生态,Spring 类似的架子都能用!
    奥我知道了,为什么这么多人不推荐了,因为不会,狗头
    Konys
    Konys
    Dec 22, 2021
    78
    楼主要钻研的话,Java 挺好的
    ErenJaeger
    ErenJaeger
    Dec 22, 2021
    79
    人生苦短,。。。。
    qq73666
    qq73666
    Dec 22, 2021
    80
    炒股,,钻研技术能致富么?能财富自由么??
    psyche
    psyche
    Dec 22, 2021
    81
    深入研究语言是什么意思呢?
    是指研究语言设计, 编译器 /解释器结构? 学这方面不是要研究多个语言, 多一点好吗?
    学习编程范式, 比如 FP, 用什么 JavaScript 和 Haskell 有什么区别? 语法不是看一下午文档就会了? 哪个语言不是图灵完备的?
    用来解决实际问题, 或者研究某类具体问题, 应该什么合适用什么, 大而全代表复杂或低效.
    建议先搞清学习目的.
    ysc3839
    ysc3839
    Dec 22, 2021 via Android
    82
    这些要求感觉只有 C++了……
    允许不那么符合的话看看 Rust ?
    Jarstone
    Jarstone
    Dec 22, 2021
    83
    @szxczyc 性能太差了 兄弟
    chocotan
    chocotan
    Dec 22, 2021
    84
    我自己玩会选择 kotlin, 干活儿还是要 java
    junmoxiao
    junmoxiao
    Dec 22, 2021
    85
    @Yc1992 坑人没跑了
    wangyu17455
    wangyu17455
    Dec 22, 2021 via Android
    86
    是基于 jvm 的语言,但不能是 java
    afirefish
    afirefish
    Dec 22, 2021❤️1
    87
    C# 加一票!
    a1562619919
    a1562619919
    Dec 22, 2021 via Android
    88
    @chocotan 干活 kt 不香嘛
    NeezerGu
    NeezerGu
    Dec 22, 2021
    89
    刚想说钻研不选 haskell ? 然后就看到已经有很多人说了
    seakingii
    seakingii
    Dec 22, 2021❤️1
    90
    C#
    TAFMT
    TAFMT
    Dec 22, 2021
    91
    先能吃饱饭 -> Java
    自己感兴趣 -> python
    liubaicai
    liubaicai
    Dec 22, 2021
    92
    ruby 是最好的语言,好到现有的项目都配不上它,所以我在用 js
    Bazingal
    Bazingal
    Dec 22, 2021
    93
    看起来只有 C#符合你的要求了
    duduaba
    duduaba
    Dec 22, 2021
    94
    自己玩玩就随便选,吃饭就 js ,不为啥,因为 js 学一个星期就可能找到工作,其他语言就难说了。
    alexkkaa
    alexkkaa
    Dec 22, 2021 via Android
    95
    深入就不要选高级语言 汇编 c 搞起。除此之外你所有的需求 csharp 完美满足你
    HENQIGUAI
    HENQIGUAI
    Dec 22, 2021
    96
    JVM 里面有你想要的一切。
    guanhui07
    guanhui07
    Dec 22, 2021 via iPhone
    97
    python
    cuminflea
    cuminflea
    Dec 22, 2021
    98
    julia~
    ch2
    ch2
    Dec 22, 2021
    99
    综合来看是 C#
    nebkad
    nebkad
    Dec 22, 2021❤️3
    100
    C#
    1. 支持多范式: 显然 C# 可以 OOP 也可以 FP ,元编程的能力很强,CodeGen 的能力也很强
    2. 充分隐藏计算机体系结构的细节:C# 既可以写服务器(跨平台)、又可以写界面(跨平台),还可以写游戏( Unity )。甚至现代的 C# 你想直接操纵内存也是完全可行的。
    3. 生态丰富:虽说服务端生态比不上 Java ,但也只是备份候选的开源产品不够多,而不是缺乏;
    4. 语法设计现代: 多线程安全性比不上 Rust 但还是很能打的
    5. 具有先进的 完善的工具链支持: 你总是有 VS 和 MS ,就看要不要加钱
    1  2  
    ❮ ❯
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2007 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 177ms · UTC 02:57 · PVG 10:57 · LAX 18:57 · JFK 21:57
    ♥ Do have faith in what you're doing.