如果 go、node、c#学一个推荐哪个?

174 天前
 afkool
不为工作,就是自己玩
时间充裕,生活无压力。就是想突然想系统学一个。可以理解为找个网游自己打?

其实日常也写一些脚本、web 代码。但就是屎到不能再屎的那种。。。

想系统学一学。rust 怕学不懂,先放后面

node 其实是优选,但性能又担心不咋滴。。后期 v8 有没有可能雄起?

我知道我的能力,node 的瓶颈我遇不到,但就是想系统过一个语言,心里想的是学个差不多的。
目前这三个里大家推荐那个?
10194 次点击
所在节点    程序员
129 条回复
kk2syc
174 天前
System.Text.Json 库性能比 Newtonsoft.Json 好
guaike
174 天前
要论语音的舒适度和优雅度,也就是写得爽,必须是 C# 了,而且也是跨平台全栈都能干,这么多年积累的库也很多
halida
174 天前
自己玩的话要部署东西用 js ,写个 html 就可以部署了。
IvanLi127
174 天前
推荐 node.js ,上手快,库又多又新。写脚本快快地,写项目也快快地,自己玩不需要考虑运行效率,要考虑玩得痛快。
iX8NEGGn
174 天前
自己玩推荐 C#,太优雅了,生态比不上 Java ,但该有的也都有。担心编程语言的性能,感觉有点杞人忧天。
lujiaxing
174 天前
自己玩肯定是 C#
至于 go, 你把 C# 语言版本调成 C# 2.0 (2006 年版), 那写起来就有 golang 那味儿了.

C# 主要在于优雅, 语言表达能力强, 上限极高, 而且通用万能. 你想写 CURD 可以用 C#, 想搞机器学习可以用 C#, 做 WEB 开发可以 C#, IoT 可以 C#, 桌面端/移动端可以 C# (Avalonia), 游戏可以 C# (Unity). 尤其如果你还不是 Windows 环境, 偶尔需要给自己开发个工具软件用, 没什么比 C# 更合适的了. 你总不能拿 JavaFx 写界面吧?

NodeJS, 也算是一个方向, JavaScript 同样具备与 C# 类似的, 极强的表达能力. 很多 C# 可以轻松实现的效果在 Javascript 里也可以轻松做到. 而且 NodeJS 同样具备万金油的属性, CURD 能做, 网页也能做. 小程序能做, H5 也能做. 桌面 PC 能做, APP 也能做 (RN / Cordova). 只是 npm_module 有点恼人, 但是眼不见心不烦只要不总盯着也算不得什么问题. 至于性能, 你是学着玩儿的, 管他什么性能呢. 你要性能的话找 C# 去.

Golang 在国内商业场景上用的多, 但是论给自己用的话, Golang 可以说是一个很差的选择. 贫瘠的语法, 羸弱的表达能力, 没完没了的 if err != nil... 别人一句话 golang 要写一串. Golang 之所以流行本质上就是很多人看中了 golang 语法贫瘠简陋这点, 在大团队中如果每个人在实现同一种逻辑的时候倾向于不同的实现方式, 那么后期维护会不那么方便. 而 golang 的语法由于一视同仁的贫瘠, 所以无论是刚毕业的孩子还是干了十年的老油条, 写出来的东西都是类似的. 可能就会相对好维护一些. 但是你是一个人用, 你既不拿开发挣钱 (起码现在不), 又不搞什么团队, golang 的这些优点对你来说就完全是无意义的.

其实你还有个更好的选择: Python.
人生苦短, 我用 Python. Python 这门开发语言最大的优势就是简洁, 优雅, 表达能力强. 而且也可以通过 PythonQT 来做界面. 而且你既然会 Python 何不一条路走到黑呢.... 反正你又不指着写代码挣钱.
Ocean810975
174 天前
https://www.freecodecamp.org/
freecodecamp 最近在整合其平台上的全部教学,搞全栈开发者认证,反正是免费的,而且流程也没啥毛病,一关一关闯就行了。我建议任何零基础的想玩玩的都来试试这个。
ragnaroks
174 天前
虽然我用 csharp 比较多,但是 justforfun 的话我更推荐 nodejs
senkuu
174 天前
python 库多,RPA 神器,玩自动化办公首选
w568w
174 天前
对各个语言的刻板印象(只谈缺点),供楼主参考:

C# 请参考该贴: https://www.v2ex.com/t/1102753

NodeJS:
- 实际上主力用户还是前端
- 模板、更多的模板,库、更多的库,编译时魔法、dirty hack 、monkey patch
- 每天都有学不完的东西,但是学完也没用,因为等学完知识就已经被淘汰了
- 和 Typescript 打架,和 read properties of undefined (null) 打架,和开发者工具打架

Go:

- 什么都没有,什么都要自己写
- 官方包搜索器基本是废物,找包只能上 GitHub 碰运气
- 披着「性能高」的皮,实际上几乎没做任何语义优化
- if err != nil return "", err
- 错误其实就是字符串,但其实不是,快来看看我们总结的 10 种不同错误声明和处理方法


Rust:

- 泛型,更多的泛型,This<Is<What<you::See>::In>, Rust>>
- 每天花一半时间安抚编译器的情绪,并最终习得一个类型理论( Type Theory )博士学位
- 编译很慢并且吃满你的 CPU
- 为什么我用的每个包都在用宏?为什么宏有三种写法(而且没有官方文档)?
levelworm
174 天前
看做什么,不是系统学语言而是系统学一块知识。
maigebaoer
174 天前
golang, TS 都用 go 重写了😂😂😂
hard2reg
174 天前
人生苦短,我用 Python 。超多库快速实现你的想法。
RichardPlus
174 天前
原来用 c#的人还是不少的呀 XD
Trim21
174 天前
按你这描述我推荐你学 Python…
iintothewind
174 天前
Go 是一个语法特性仅仅比 C 多一点点的, 语法设计比较糟糕的语言.
Go 的设计与目前计算机语言的发展趋势相抵触的,
当然 Go 也有些优点, 但这些优点跟它的语法特性没关系.

NodeJs 比较偏向前端, 因为作为动态弱类型语言, 工程性是偏弱的.
NodeJs 的前端生态还是很丰富的, 所以适合往前端或者全栈发展.

C#是语法层面设计的非常好的语言, 可惜生态不占优势.
不过, 学习 C#能提高自己对编程语言的品味.

如果这三个里面非得选一个,
用来工作的话, 建议选 NodeJs, Worse is better.

用来学习, 无所谓哪一个, 毕竟一个好的开发人员, 不应该只学习一种语言.

那些只用一门语言的开发者,
就像只会用锤子解决所有问题的木工, 看什么都是钉子,
不仅如此,

还抱怨别人设计了螺丝刀, "根本就没有锤子好用, 锤子砸东西方便多了".
leo72638
174 天前
自己玩就 node ,node 性能不弱,不需要考虑性能瓶颈,尤其是你本来就写 web ,学习成本也低
dearmymy
174 天前
脱离应用场景很难选
如果写游戏那就 c# 学 unity
如果想通用点 node python ,其实 python 更适合,不要小瞧 python 他只是下限低而已。
go 说实话如果不拿来纯后端没啥学得必要。个人可玩性太少
kelvansun
174 天前
推荐学 C#,上手容易。
FrankAdler
174 天前
c#学了可以写桌面 gui ,还能写服务端

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1117684

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX