需要满足以下五条要求 1 支持多范式编程,表达能力强大 2 充分隐藏计算机体系结构的细节,特别是内存管理等等的细节 3 生态丰富,有大量的工具和库 4 语法设计现代,代码较为简洁,开发效率高 5 具有先进的 完善的工具链支持 比如 编译器 IDE 调试工具 运行监测工具之类
目前备选 python java C# js php groovy ruby swift perl kotlin scala
请大家帮我做做排除法 或者分析一下 n 这些语言不符合上面哪些要 如果没十全十美的 或许可以矬子里拔将军 最后我能选出一个
![]() | 1 zhy0216 2021-12-22 13:26:10 +08:00 ![]() ts 最好 不接受反驳 |
![]() | 2 shintendo 2021-12-22 13:26:35 +08:00 ![]() 女人会辜负你,Javascript 不会 |
3 liujavamail 2021-12-22 13:26:38 +08:00 选 java 就行了 |
4 smallX 2021-12-22 13:27:29 +08:00 rb 最好 不接受反驳 |
![]() | 5 3dwelcome 2021-12-22 13:27:45 +08:00 RUST WASM ,write once, run everywhere. |
![]() | 6 israinbow 2021-12-22 13:30:52 +08:00 Swift 罢 |
![]() | 7 loading 2021-12-22 13:32:50 +08:00 我建议 java 或者 java 塔,哈哈。 |
![]() | 8 chnhyg 2021-12-22 13:33:44 +08:00 |
9 Leviathann 2021-12-22 13:36:17 +08:00 via iPhone 考虑到 2021 年连 Java 都在积极推进 pattern matching 而 kotlin 居然还没有 所以就不推荐了 |
![]() | 10 wonderfulcxm 2021-12-22 13:36:35 +08:00 via iPhone ![]() “语法较为简洁”第一个排除 Java 好吗 |
![]() | 11 hsfzxjy 2021-12-22 13:37:13 +08:00 via Android rust |
12 xsen 2021-12-22 13:37:44 +08:00 asm |
![]() | 13 musi 2021-12-22 13:40:21 +08:00 Javascript 1. 既支持面向对象又支持函数式 2. 内存管理细节无 3. npm 生态就不说了 4. ES+语法较为现代 5. 不需要编译,打包工具种类繁多,调试 node ,chrome 齐全 |
14 crackhopper 2021-12-22 13:42:04 +08:00 我怎么觉得:“充分隐藏计算机体系结构的细节” 和 “代码较为简洁,开发效率高” , 这俩矛盾呢。说实话,C 语言更合适点?或者 C++。但我感觉两个代码都不简洁。有 GC 的,按照你的说明肯定要被排除,还剩个 rust ,我了解也不多,所以 rust 可能也是 ok 的。 |
15 crackhopper 2021-12-22 13:43:48 +08:00 perl, groovy 我也了解不多。其他那些帮你排除,就剩 rust ,但如果更想了解 cpu 、编译器、系统这些底层,c 和 c++会更加带你走向深渊。c 的话可能得多看项目,c++光标准就可以把你搞晕了。 |
16 Leviathann 2021-12-22 13:44:41 +08:00 @crackhopper 这意思应该就是要有 gc 的啊 有 gc ,所以隐藏了细节 |
17 crackhopper 2021-12-22 13:44:45 +08:00 sorry, 我看错了,忽略我的!!!充分隐藏,我看成暴露了。对不起。当我没说 |
![]() | 18 ericgui 2021-12-22 13:44:45 +08:00 rust |
19 crackhopper 2021-12-22 13:44:59 +08:00 @Leviathann 我看错了。了。 |
20 crackhopper 2021-12-22 13:46:37 +08:00 没法删除已经说过的。。。那就是 java 上面的,能用 java 库的更合适。 |
![]() | 21 szxczyc 2021-12-22 13:49:21 +08:00 via iPhone 看了一圈没有人推荐 Python ,语法简洁 Python 真的 库也是非常多 可读性和开发效率非常高 |
![]() | 22 kebamt 2021-12-22 13:53:47 +08:00 Go 语言不好吗?我下个月打算自学 Go 语言的 |
23 testlover 2021-12-22 13:57:44 +08:00 ![]() 如果是自己玩儿 不当作吃饭的手艺 建议 c# 无所不能 性能 语法易读性 跨平台 ide 都很强 |
![]() | 24 masterclock 2021-12-22 14:00:58 +08:00 ![]() Scala 所有条件都符合 |
![]() | 25 szuwl 2021-12-22 14:01:12 +08:00 你说的这些要求 C++ 完美符合 |
26 yazinnnn 2021-12-22 14:01:27 +08:00 kotlin 或者 f sharp 这两个接近满足所有要求 但是处于钻研目的,我建议你学 haskell 或者 scheme (或者 clojure ) |
![]() | 27 SmiteChow 2021-12-22 14:04:29 +08:00 人生苦短 你懂我意思吧 |
![]() | 28 Mutoo 2021-12-22 14:04:57 +08:00 Javascript 当之无愧 1 支持多范式编程,表达能力强大 原型、OOP 、FP 都支持,非常强大 2 充分隐藏计算机体系结构的细节,特别是内存管理等等的细节 脚本语言,自动 GC 3 生态丰富,有大量的工具和库 NPM 轮子数不清 4 语法设计现代,代码较为简洁,开发效率高 async generator 都有,代码可以非常简洁 5 具有先进的 完善的工具链支持 比如 编译器 IDE 调试工具 运行监测工具之类 配合最强 IDE WebStorm 和 devTools ,调试优化各种方便。 |
![]() | 29 zhuangzhuang1988 2021-12-22 14:28:11 +08:00 ![]() C# |
![]() | 30 easing 2021-12-22 14:29:05 +08:00 同建议 Haskell |
![]() | 31 araaaa 2021-12-22 14:37:42 +08:00 rust |
![]() | 32 zjsxwc 2021-12-22 14:40:03 +08:00 C++ |
![]() | 33 FanChen 2021-12-22 14:45:30 +08:00 个人觉得要深入钻研的话还是 Haskell |
![]() | 34 panlatent 2021-12-22 14:45:49 +08:00 go 语言 ... 不推荐,perl 、php 、ruby 不推荐,java 不推荐 |
![]() | 35 Yc1992 2021-12-22 14:52:24 +08:00 c++ 没跑了 |
36 ArcherD 2021-12-22 14:57:49 +08:00 ocaml 。除了没有大量工具和库,别的都满足,库虽然少都是精华。 相关的生态:前端: rescript 、js_of_ocaml wasm: grain 硬件: hardcaml 区块链:tezos 及 ligo lang unikernel:MirageOS 逆向:bap 基本各种开发都可以覆盖了。 |
37 joApioVVx4M4X6Rf 2021-12-22 15:02:55 +08:00 直接 python 就完了 |
![]() | 38 liuhan907 2021-12-22 15:05:15 +08:00 ![]() C#稍微有点不满足生态要求,不过反正也不差。我觉得 C#就可以。 |
![]() | 39 abersheeran 2021-12-22 15:07:55 +08:00 推荐 Python ,虽然 Javascript 生态更强但是有个问题,Javascript 的 Feature ( BUG )太多了,如果你不想像背八股文一样去接受那些 BUG ,就不要太精通 Javascript 。对外说会用就行了,就不会有人考你这些。Python 和 Javascript 相似的地方有很多,基本精通一门,另一个就自然会了(指非 BUG 的部分)。 |
![]() | 40 pengtdyd 2021-12-22 15:09:57 +08:00 没有人推荐 C ? 真是世风日下、人心不古啊 [dog] |
![]() | 41 714105382 OP 感谢大家热情的回复,V2 人气还是很旺的! 其实主要是想熟练一门较为现代化的编程语言提升一下业务开发效率,楼主之前是写 java 的。 上面的备选方案是我对着较为流行的语言筛选过一次的,不能排除的留下来的。 排除 C/C++是因为这两个语言包含了大量的体系相关的语言设计,特别是内存管理。 Haskell 我有一门课上学过,Haskell 是一门纯 FP ,感觉面对实际应用还是有点复杂,另外 GHC 版本太杂了 XD Golang 是因为语法抽象比较简练,适合系统和基础组件开发,但是感觉表达能力欠缺,Golang 我写过一点点,但是感觉缺少一些必须的语法糖和现代语法机制比如 exception ,写业务感觉有点累。 |
![]() | 42 naga1003 2021-12-22 15:12:31 +08:00 java 吧,万精油,其他有很多语言都比它高效,但是受众最广还是 java |
![]() | 43 panlatent 2021-12-22 15:14:55 +08:00 via iPhone 说下我的选择标准:能开发 web 且设施健全的,能开发带客户端的,有希望在浏览器中运行的,没那么复杂或者割裂的,具有静态类型的,具有泛型的或者解决有其他方案解决问题的。 如果是拿来吃饭的话,就别折腾了 该用啥用啥吧。 |
![]() | 44 diggzhang 2021-12-22 15:18:59 +08:00 ![]() 来我们一起研究缝合怪 Scala |
![]() | 45 lion9527 2021-12-22 15:19:08 +08:00 via Android 看了 iOS 真凉了,swift 都没人提起 |
46 Reid 2021-12-22 15:19:38 +08:00 Rust 吧 |
![]() | 47 714105382 OP @Reid 听说 Rust 是一门非常好的新语言,不过听说 Rust 的精妙设计主要是为了在保证高性能的同时尽可能兼顾安全和表达能力? 听说 Rust 的内存管理模型复杂程度不输 C++。感觉和我想遮蔽内存管理细节的要求不太符合。 不过说实话我对 Rust 还是很有兴趣的。 |
![]() | 48 714105382 OP @diggzhang Scala 的生态怎么样?另外听说 Scala 的编译器不太成熟?是不是在工具链这个层面上有点欠缺? |
![]() | 49 yewuya 2021-12-22 15:24:52 +08:00 rust |
![]() | 50 714105382 OP 大家可以报告一下不符合要求的各个语言的“痛点”来告诉我一下各个语言的不足,可能更有利于我排除。 比如以 Java 为例,Java 的语法确实不怎么简洁,开发效率相比于脚本类应该也不算特别高。 |
51 ArcherD 2021-12-22 15:29:36 +08:00 以前听说 scala 有 2000 多个 issue ,现在好了直接放到单独的仓库里面去了,https://github.com/scala/bug 还有 1800 多个。 |
![]() | 52 714105382 OP @ArcherD 啊好的,看来 Scala 的工具链和成熟度感觉还是不太 OK 的,可以排除? 貌似语言上 Scala 是学院派。 |
![]() | 53 qibing2000 2021-12-22 15:31:44 +08:00 @xsen 往下滚动滚轮时就在想:会不会有人推荐 asm ,果然出现了。哈哈哈哈! |
![]() | 54 feikeq 2021-12-22 15:33:04 +08:00 Javascript |
55 e9pWeUbh9PGCnp95 2021-12-22 15:35:10 +08:00 verilog , VHDL |
![]() | 56 714105382 OP @unintialized 吐血...... |
57 yazinnnn 2021-12-22 15:42:30 +08:00 F#比 scala 更缝一些,而且工具链比 sbt 好 F#缝了 C#的轮子 跨平台 性能 开发工具 Rust 的工具链 Go 的单文件部署 Haskell 的 monad 文化 python 的缩进 鸭子类型 编译时类型生成 |
![]() | 58 kiripeng 2021-12-22 16:11:11 +08:00 golang 朴实无华的选择 |
![]() | 59 feather12315 2021-12-22 16:18:12 +08:00 2 充分隐藏计算机体系结构的细节,特别是内存管理 只有 C 。其他语言与编译细节、汇编之间的鸿沟太大了。 |
![]() | 60 rb6221 2021-12-22 16:21:43 +08:00 支持多范式+现代语法设计,基本上只有新兴语言了 再加上生态丰富,只有 TS 了。。。。。 |
61 tjudqx123 2021-12-22 16:29:43 +08:00 不考虑 golang 吗 |
62 cyspy 2021-12-22 16:35:40 +08:00 全满足的也就 Scala ,虽然 Scala 有自己的问题。。 |
63 CodingNaux 2021-12-22 16:35:41 +08:00 大佬最新的文章, https://coolshell.cn/articles/21672.html 好像是推荐 java+go |
64 ila 2021-12-22 16:36:49 +08:00 via Android 第 3 点限制了很多选择,剩下 java,c#,python.nodejs 等 |
![]() | 65 Kininaru 2021-12-22 16:38:45 +08:00 Javascript 吧,我觉得挺符合的。语法简洁(箭头函数爽死我),用途广,库多( Nodejs ),不用垃圾回收,不用考虑线程(我觉得 JS 的并发模型和人的思维习惯挺像的) 不过为啥要隐藏计算机体系结构细节呢?你写程序本质上就是在和计算机对话,你不理解计算机,怎么写出好程序... |
66 exceldream 2021-12-22 16:41:07 +08:00 via Android 这要求不是 scala 吗? |
![]() | 67 714105382 OP @feather12315 大佬,我是要忽略这些细节啊,就是希望语言自己的机制能够处理好,不希望我操心,只关注逻辑本身就好。 |
68 tairan2006 2021-12-22 16:46:11 +08:00 haskell scala 深入研究能让你秃,来吧 |
![]() | 69 714105382 OP @Kininaru 主要是希望有 GC ,不需要陷入 C++那种级别的心智负担中,想找一个能够快速 coding 的语言。 体系本身确实要好好理解认真研究...... |
![]() | 70 714105382 OP @tairan2006 已经领教过 Haskell 的 Monad 之类的了,确实...... |
71 ArcherD 2021-12-22 16:51:34 +08:00 关于 haskell ocaml 的大神的看法和比较。 https://discuss.ocaml.org/t/job-build-system-engineer-at-jane-street/8737/3 |
72 Ayanokouji 2021-12-22 17:17:27 +08:00 深入学习啥,都逃不过 linux ,语法没啥好学的 |
![]() | 73 KousukeSakurako 2021-12-22 17:20:35 +08:00 无脑 Python |
![]() | 74 wxw752 2021-12-22 17:21:24 +08:00 ![]() 活在当下,我选 Java |
75 Tenlearn 2021-12-22 17:21:36 +08:00 楼上说得对,我猜你也就想赚钱,市面上那几个语言一搜不有的是?深入钻研的话,直接看 Linux 、操作系统、计算机网络、算法,其他都是语法罢了 |
![]() | 76 Chingim 2021-12-22 17:29:46 +08:00 为啥有人提 rust rust 有函数式编程范式吗? rust 的函数式好用吗? |
![]() | 77 dwlovelife 2021-12-22 17:34:59 +08:00 选 Java 为什么不选 Groovy ,完全动态,语法简洁,同样能跑在 JVM 上,同时也就是说和 Java 可以共享生态,Spring 类似的架子都能用! 奥我知道了,为什么这么多人不推荐了,因为不会,狗头 |
78 Konys 2021-12-22 17:38:29 +08:00 楼主要钻研的话,Java 挺好的 |
![]() | 79 ErenJaeger 2021-12-22 17:43:45 +08:00 人生苦短,。。。。 |
![]() | 80 qq73666 2021-12-22 17:45:01 +08:00 /div> 炒股,,钻研技术能致富么?能财富自由么?? |
![]() | 81 psyche 2021-12-22 17:46:58 +08:00 深入研究语言是什么意思呢? 是指研究语言设计, 编译器 /解释器结构? 学这方面不是要研究多个语言, 多一点好吗? 学习编程范式, 比如 FP, 用什么 Javascript 和 Haskell 有什么区别? 语法不是看一下午文档就会了? 哪个语言不是图灵完备的? 用来解决实际问题, 或者研究某类具体问题, 应该什么合适用什么, 大而全代表复杂或低效. 建议先搞清学习目的. |
![]() | 82 ysc3839 2021-12-22 17:47:26 +08:00 via Android 这些要求感觉只有 C++了…… 允许不那么符合的话看看 Rust ? |
![]() | 83 Pythoner666666 2021-12-22 17:54:03 +08:00 @szxczyc 性能太差了 兄弟 |
![]() | 84 chocotan 2021-12-22 18:16:28 +08:00 我自己玩会选择 kotlin, 干活儿还是要 java |
![]() | 86 wangyu17455 2021-12-22 18:35:04 +08:00 via Android 是基于 jvm 的语言,但不能是 java |
![]() | 87 afirefish 2021-12-22 18:43:21 +08:00 ![]() C# 加一票! |
88 a1562619919 2021-12-22 18:56:01 +08:00 via Android @chocotan 干活 kt 不香嘛 |
89 NeezerGu 2021-12-22 18:56:21 +08:00 刚想说钻研不选 haskell ? 然后就看到已经有很多人说了 |
90 seakingii 2021-12-22 19:04:26 +08:00 ![]() C# |
![]() | 91 TAFMT 2021-12-22 19:09:24 +08:00 先能吃饱饭 -> Java 自己感兴趣 -> python |
![]() | 92 liubaicai 2021-12-22 19:20:33 +08:00 ruby 是最好的语言,好到现有的项目都配不上它,所以我在用 js |
93 Bazingal 2021-12-22 19:22:46 +08:00 看起来只有 C#符合你的要求了 |
![]() | 94 duduaba 2021-12-22 19:34:16 +08:00 自己玩玩就随便选,吃饭就 js ,不为啥,因为 js 学一个星期就可能找到工作,其他语言就难说了。 |
95 alexkkaa 2021-12-22 19:40:57 +08:00 via Android 深入就不要选高级语言 汇编 c 搞起。除此之外你所有的需求 csharp 完美满足你 |
96 HENQIGUAI 2021-12-22 19:43:31 +08:00 JVM 里面有你想要的一切。 |
![]() | 97 guanhui07 2021-12-22 20:40:08 +08:00 via iPhone python |
98 cuminflea 2021-12-22 20:40:39 +08:00 julia~ |
![]() | 99 ch2 2021-12-22 20:51:25 +08:00 综合来看是 C# |
100 nebkad 2021-12-22 21:02:08 +08:00 ![]() C# 1. 支持多范式: 显然 C# 可以 OOP 也可以 FP ,元编程的能力很强,CodeGen 的能力也很强 2. 充分隐藏计算机体系结构的细节:C# 既可以写服务器(跨平台)、又可以写界面(跨平台),还可以写游戏( Unity )。甚至现代的 C# 你想直接操纵内存也是完全可行的。 3. 生态丰富:虽说服务端生态比不上 Java ,但也只是备份候选的开源产品不够多,而不是缺乏; 4. 语法设计现代: 多线程安全性比不上 Rust 但还是很能打的 5. 具有先进的 完善的工具链支持: 你总是有 VS 和 MS ,就看要不要加钱 |