想深入钻研一门语言 请大家出出主意
需要满足以下五条要求
1 支持多范式编程,表达能力强大
2 充分隐藏计算机体系结构的细节,特别是内存管理等等的细节
3 生态丰富,有大量的工具和库
4 语法设计现代,代码较为简洁,开发效率高
5 具有先进的 完善的工具链支持 比如 编译器 IDE 调试工具 运行监测工具之类
目前备选
python java C# js php groovy ruby swift perl kotlin scala
请大家帮我做做排除法 或者分析一下 n 这些语言不符合上面哪些要
如果没十全十美的 或许可以矬子里拔将军 最后我能选出一个
ts 最好 不接受反驳
女人会辜负你,javascript 不会
选 java 就行了
rb 最好 不接受反驳
RUST WASM ,write once, run everywhere.
Swift 罢
我建议 java 或者 java 塔,哈哈。
绝大多数情况下,如无非常特殊要求,选 Java 基本是不会错的。
具体详见 coolshell.cn/articles/21672.html 。
考虑到 2021 年连 Java 都在积极推进 pattern matching
而 kotlin 居然还没有 所以就不推荐了
“语法较为简洁”第一个排除 Java 好吗
rust
asm
javascript
- 既支持面向对象又支持函数式
- 内存管理细节无
- npm 生态就不说了
- ES+语法较为现代
- 不需要编译,打包工具种类繁多,调试 node ,chrome 齐全
我怎么觉得:“充分隐藏计算机体系结构的细节” 和 “代码较为简洁,开发效率高” , 这俩矛盾呢。说实话,C 语言更合适点?或者 C++。但我感觉两个代码都不简洁。有 GC 的,按照你的说明肯定要被排除,还剩个 rust ,我了解也不多,所以 rust 可能也是 ok 的。
perl, groovy 我也了解不多。其他那些帮你排除,就剩 rust ,但如果更想了解 cpu 、编译器、系统这些底层,c 和 c++会更加带你走向深渊。c 的话可能得多看项目,c++光标准就可以把你搞晕了。
这意思应该就是要有 gc 的啊
有 gc ,所以隐藏了细节
sorry, 我看错了,忽略我的!!!充分隐藏,我看成暴露了。对不起。当我没说
rust
我看错了。囧了。
没法删除已经说过的。。。那就是 java 上面的,能用 java 库的更合适。
看了一圈没有人推荐 Python ,语法简洁 Python 真的🉑
库也是非常多
可读性和开发效率非常高
Go 语言不好吗?我下个月打算自学 Go 语言的
如果是自己玩儿 不当作吃饭的手艺 建议 c# 无所不能 性能 语法易读性 跨平台 ide 都很强
Scala
所有条件都符合
你说的这些要求 C++ 完美符合
kotlin 或者 f sharp
这两个接近满足所有要求
但是处于钻研目的,我建议你学 haskell 或者 scheme (或者 clojure )
人生苦短 你懂我意思吧
Javascript 当之无愧
1 支持多范式编程,表达能力强大 ✅ 原型、OOP 、FP 都支持,非常强大
2 充分隐藏计算机体系结构的细节,特别是内存管理等等的细节 ✅ 脚本语言,自动 GC
3 生态丰富,有大量的工具和库 ✅ NPM 轮子数不清
4 语法设计现代,代码较为简洁,开发效率高 ✅ async generator 都有,代码可以非常简洁
5 具有先进的 完善的工具链支持 比如 编译器 IDE 调试工具 运行监测工具之类 ✅ 配合最强 IDE WebStorm 和 devTools ,调试优化各种方便。
C#
同建议 Haskell
rust
C++
个人觉得要深入钻研的话还是 Haskell
go 语言 ... 不推荐,perl 、php 、ruby 不推荐,java 不推荐
c++ 没跑了
ocaml 。除了没有大量工具和库,别的都满足,库虽然少都是精华。
相关的生态:前端: rescript 、js_of_ocaml
wasm: grain
硬件: hardcaml
区块链:tezos 及 ligo lang
unikernel:MirageOS
逆向:bap
基本各种开发都可以覆盖了。
直接 python 就完了
C#稍微有点不满足生态要求,不过反正也不差。我觉得 C#就可以。
推荐 Python ,虽然 JavaScript 生态更强但是有个问题,JavaScript 的 Feature ( BUG )太多了,如果你不想像背八股文一样去接受那些 BUG ,就不要太精通 JavaScript 。对外说会用就行了,就不会有人考你这些。Python 和 JavaScript 相似的地方有很多,基本精通一门,另一个就自然会了(指非 BUG 的部分)。
没有人推荐 C ? 真是世风日下、人心不古啊 [dog]
感谢大家热情的回复,V2 人气还是很旺的!
其实主要是想熟练一门较为现代化的编程语言提升一下业务开发效率,楼主之前是写 java 的。
上面的备选方案是我对着较为流行的语言筛选过一次的,不能排除的留下来的。
排除 C/C++是因为这两个语言包含了大量的体系相关的语言设计,特别是内存管理。
Haskell 我有一门课上学过,Haskell 是一门纯 FP ,感觉面对实际应用还是有点复杂,另外 GHC 版本太杂了 XD
Golang 是因为语法抽象比较简练,适合系统和基础组件开发,但是感觉表达能力欠缺,Golang 我写过一点点,但是感觉缺少一些必须的语法糖和现代语法机制比如 exception ,写业务感觉有点累。
java 吧,万精油,其他有很多语言都比它高效,但是受众最广还是 java
说下我的选择标准:能开发 web 且设施健全的,能开发带客户端的,有希望在浏览器中运行的,没那么复杂或者割裂的,具有静态类型的,具有泛型的或者解决有其他方案解决问题的。
如果是拿来吃饭的话,就别折腾了 该用啥用啥吧。
来我们一起研究缝合怪 Scala
看了 iOS 真凉了,swift 都没人提起🙃
Rust 吧
听说 Rust 是一门非常好的新语言,不过听说 Rust 的精妙设计主要是为了在保证高性能的同时尽可能兼顾安全和表达能力?
听说 Rust 的内存管理模型复杂程度不输 C++。感觉和我想遮蔽内存管理细节的要求不太符合。
不过说实话我对 Rust 还是很有兴趣的。
Scala 的生态怎么样?另外听说 Scala 的编译器不太成熟?是不是在工具链这个层面上有点欠缺?
rust
大家可以报告一下不符合要求的各个语言的“痛点”来告诉我一下各个语言的不足,可能更有利于我排除。
比如以 Java 为例,Java 的语法确实不怎么简洁,开发效率相比于脚本类应该也不算特别高。
以前听说 scala 有 2000 多个 issue ,现在好了直接放到单独的仓库里面去了, github.com/scala/bug 还有 1800 多个。
啊好的,看来 Scala 的工具链和成熟度感觉还是不太 OK 的,可以排除? 貌似语言上 Scala 是学院派。
往下滚动滚轮时就在想:会不会有人推荐 asm ,果然出现了。哈哈哈哈!
JavaScript
verilog , VHDL
吐血......
F#比 scala 更缝一些,而且工具链比 sbt 好
F#缝了
C#的轮子 跨平台 性能 开发工具
Rust 的工具链
Go 的单文件部署
Haskell 的 monad 文化
python 的缩进
鸭子类型
编译时类型生成
golang 朴实无华的选择
2 充分隐藏计算机体系结构的细节,特别是内存管理
只有 C 。其他语言与编译细节、汇编之间的鸿沟太大了。
支持多范式+现代语法设计,基本上只有新兴语言了
再加上生态丰富,只有 TS 了。。。。。
不考虑 golang 吗
全满足的也就 Scala ,虽然 Scala 有自己的问题。。
大佬最新的文章, coolshell.cn/articles/21672.html
好像是推荐 java+go
第 3 点限制了很多选择,剩下 java,c#,python.nodejs 等
JavaScript 吧,我觉得挺符合的。语法简洁(箭头函数爽死我),用途广,库多( Nodejs ),不用垃圾回收,不用考虑线程(我觉得 JS 的并发模型和人的思维习惯挺像的)
不过为啥要隐藏计算机体系结构细节呢?你写程序本质上就是在和计算机对话,你不理解计算机,怎么写出好程序...
这要求不是 scala 吗?
大佬,我是要忽略这些细节啊,就是希望语言自己的机制能够处理好,不希望我操心,只关注逻辑本身就好。
haskell
scala
深入研究能让你秃,来吧
主要是希望有 GC ,不需要陷入 C++那种级别的心智负担中,想找一个能够快速 coding 的语言。
体系本身确实要好好理解认真研究......
已经领教过 Haskell 的 Monad 之类的了,确实......
关于 haskell ocaml 的大神的看法和比较。
discuss.ocaml.org/t/job-build-system-engineer-at-jane-street/8737/3
深入学习啥,都逃不过 linux ,语法没啥好学的
无脑 Python
活在当下,我选 Java
楼上说得对,我猜你也就想赚钱,市面上那几个语言一搜不有的是?深入钻研的话,直接看 Linux 、操作系统、计算机网络、算法,其他都是语法罢了
为啥有人提 rust
rust 有函数式编程范式吗? rust 的函数式好用吗?
选 Java 为什么不选 Groovy ,完全动态,语法简洁,同样能跑在 JVM 上,同时也就是说和 Java 可以共享生态,Spring 类似的架子都能用!
奥我知道了,为什么这么多人不推荐了,因为不会,狗头
楼主要钻研的话,Java 挺好的
人生苦短,。。。。
炒股,,钻研技术能致富么?能财富自由么??
深入研究语言是什么意思呢?
是指研究语言设计, 编译器 /解释器结构? 学这方面不是要研究多个语言, 多一点好吗?
学习编程范式, 比如 FP, 用什么 JavaScript 和 Haskell 有什么区别? 语法不是看一下午文档就会了? 哪个语言不是图灵完备的?
用来解决实际问题, 或者研究某类具体问题, 应该什么合适用什么, 大而全代表复杂或低效.
建议先搞清学习目的.
这些要求感觉只有 C++了……
允许不那么符合的话看看 Rust ?
性能太差了 兄弟
我自己玩会选择 kotlin, 干活儿还是要 java
坑人没跑了
是基于 jvm 的语言,但不能是 java
C# 加一票!
干活 kt 不香嘛
刚想说钻研不选 haskell ? 然后就看到已经有很多人说了
C#
先能吃饱饭 -> Java
自己感兴趣 -> python
ruby 是最好的语言,好到现有的项目都配不上它,所以我在用 js
看起来只有 C#符合你的要求了
自己玩玩就随便选,吃饭就 js ,不为啥,因为 js 学一个星期就可能找到工作,其他语言就难说了。
深入就不要选高级语言 汇编 c 搞起。除此之外你所有的需求 csharp 完美满足你
JVM 里面有你想要的一切。
python
julia~
综合来看是 C#
C#
- 支持多范式: 显然 C# 可以 OOP 也可以 FP ,元编程的能力很强,CodeGen 的能力也很强
- 充分隐藏计算机体系结构的细节:C# 既可以写服务器(跨平台)、又可以写界面(跨平台),还可以写游戏( Unity )。甚至现代的 C# 你想直接操纵内存也是完全可行的。
- 生态丰富:虽说服务端生态比不上 Java ,但也只是备份候选的开源产品不够多,而不是缺乏;
- 语法设计现代: 多线程安全性比不上 Rust 但还是很能打的
- 具有先进的 完善的工具链支持: 你总是有 VS 和 MS ,就看要不要加钱
我记得之前接收短信就能实现保号,但是现在它的通知邮件说: If you’d like to keep your Google Voice number xxx, you wi…
这都什么年代了,居然有人还在用 WIN 7 32Bit 版本的 OS ,这些人的脑回路到底是怎么想的? 而且,微软也都已经放弃对 WIN 7 的支持了,还是最原始的 WIN …
Internet Explorer – Web程序员的毒药。在IE上开发时间中有超过60%的时间是花在和IE的bug进行搏斗,让你的开发生产率严重下降。下面是一个…