Go or Node.JS ?

2018-04-23 15:17:21 +08:00
 mseasons

背景

本人双非大学计算机专业大二学生,之前一直在用 Python 做日常开发,但是各大招聘网站让我感觉做 Python 以后会吃不上饭,想深入学习另外一门语言,我从 Python 入门编程的,对 Java 这种写个代码都要配半天环境的语言天生抵触,对 Go/Node.JS/Haskell 之类的有天生好感,不知道选择哪个,希望 v2 大大们能给点意见。

16672 次点击
所在节点    程序员
133 条回复
mazyi
2018-04-23 19:13:43 +08:00
无意嘲讽,如果你觉得 spring 很难配置,其他得语言你都会觉得一样。
ioven
2018-04-23 19:19:24 +08:00
go,学一门静态语言对思考结构很有帮助
pzzrudlf
2018-04-23 19:19:40 +08:00
Go!!!
EricFuture
2018-04-23 19:26:17 +08:00
必须 go 啊,不看好 node 的前景
maxco292
2018-04-23 19:28:34 +08:00
个人认为,从吃饭难易角度看:Haskell << Node < Go < Python ≈ Java
从学习成本角度来看,Haskell > > Python > Java > Go ,node 不清楚。
从思维方式影响看,Java ≈ Haskell > Python ≈ Go , node 不清楚
大二的话,个人建议不要以吃饭为目的,可以多涉猎一些语言是没有坏处的。
深入学习的话,楼主主攻 Go 也是 OK 的。
gowk
2018-04-23 19:29:02 +08:00
Java 其实很好用,就是绕来绕去学习成本大,历史包袱重,Go 是新生代语言,创业无历史包袱的公司用的多。再过 10 年,这些公司会成为主力,到时候 Java 估计大势已去,没人愿意去维护那一大坨代码。那时候 Go 估计会发布 5.0,吊打一大波语言。。。
pepesii
2018-04-23 19:31:17 +08:00
既然还在读书,那就都看看,了解下特性,写写练手的项目
inflationaaron
2018-04-23 20:02:37 +08:00
惊了,楼主有心去学 Haskell 我已经很感动了。就语言表达能力而言,Haskell 绝对是静态类型语言的巅峰,而函数式的理念也重新回到了人们的视野之中,因此了解 Haskell 是很有帮助的。Haskell 也是所有函数式语言中最接近工程的( Clojure 也算一个),它的编译器实现 GHC 特性丰富、性能强劲,又能结合学术界最新的研究成果。
crossoverJie
2018-04-23 20:05:44 +08:00
UIXX
2018-04-23 20:07:10 +08:00
Java 是现今最好的工程语言之一(另一个是 C )。如果你觉得麻烦而不去学,那很遗憾。
Nodejs 跟 Go 倒不是非此即彼的选择,上手难易程度取决于你之前比较熟悉哪样,比如你用过很长时间的 Erlang,那 Go 操控起来易如反掌,如果你熟悉 javascript,那 Nodejs 不在话下。
如果你担心语言前景,那可不必。这两个语言现在都有很广泛的适用场景,都有大公司在使用支持核心业务。
就语言本身来说,Go 语言其实设计得很差,JS 更差,所以对比起来没什么可取舍的。
最后讲下就业市场,首先驳斥下 Nodejs 业务量小、Go 业务量大这种外行论调。
现在 Go 完全是被区块链、深度学习、大数据挖掘这几股风吹起来的,薪资水涨船高,其实真正需要用到 Go 去出去的高并发场景有几家公司才有?有几家能真正凭 Go 的取代而换得真金白银的效率提升的? Nodejs 同样也能支持淘宝双十一十二的海量并发,支持 Paypal 的金融服务...
如果是去大厂,不可能单单凭借 Go 开发或者 Nodejs 开发而受到青睐。无论是 Go/Nodejs,都要伴随着更前 /后端的 redis/mongodb/MQ 等一些后端技术才能组成一套较完整的方案。有自己熟悉的一套技术栈,无论是哪种语言你都可以为所欲为。
最后说下 Python,Python 它本身可以做大中小型系统,但是做大中型系统 Python 都绝对不是最好的选择。除了团队技术固定 /历史遗留等因素之外,很少有公司单独想用 Python 来做什么事情,所以多学点其他的不是什么坏事。
88250
2018-04-23 20:09:07 +08:00
加入我地鼠大军吧!
feverzsj
2018-04-23 20:09:17 +08:00
java 太肥大,需要占用大量资源,不适合容器化,所以还是 go
orm
2018-04-23 20:27:08 +08:00
Go 这种强类型编程语言,我也很喜欢,无奈市面上都是一些大互联网公司在用,就业面窄。还有楼主可以了解一下 jvm 语言,kotlin groovy scala。或者是 oracle 刚刚推出的 GraalVM,支持 node.js python java ruby
loadinger
2018-04-23 20:31:27 +08:00
python 都会吃不到饭了么。。。。你想太多了,只要你真的精通,易语言也能高薪的好么(无偏向)。
CMGS
2018-04-23 20:33:06 +08:00
>让我感觉做 Python 以后会吃不上饭,想深入学习另外一门语言
。。。
你 Python 吃不上饭,其他语言也吃不上的。吃上饭的都是不靠语言的。
再说了,真说就业市场,JAVA 毁天灭地,哪需要 go 和 node
shiny
2018-04-23 20:36:23 +08:00
@huiyifyj 我是 ES5 的年代看了大量书,当时能买到的基本都买了。所以到 ES6 后只看了阮一峰那本 《 ES6 标准入门》。看的过程中很爽,很多痛点都有解决方案。node 看的是朴灵的《深入浅出 node.js 》,现在不知道会不会太老了。
CMGS
2018-04-23 20:52:54 +08:00
再说了,什么叫 Python 没上升空间……
豆瓣给你吃了么,知乎让你灭了么,按照这么说 node 拿得出手的是…… keep 和即刻?哦别说大型公司,大型公司你校招你看你的 C/CPP System design 能力谢谢,腾讯主 C 百度主 CPP 阿里主 JAVA,一定要说副语言那多得去了你咋不都学?
做到高级工程师靠语言这个真是……按照这么说 JAVA 毁天灭地说得都算轻的了,阿里一水 P8 P9 都是 JAVA 狗,还要学啥其他语言?别说阿里 P8 P9 水,你们自己试试社招走一圈再说。
瞄了一眼还 Go 高并发,高并发用况背景都不预设就高并发。长连接高并发还是短连接高并发?按什么时间单位才算高并发?并发上去了瓶颈知道怎么算么? CPU 还是 MEM ?知道异步同步的差异么?讲讲 SELECT POLL EPOLL 各种模式差异内核状态区别数据流向怎么调优能说出来么?这些跟特么语言有个毛关系真是。
一个大二,不去多扩展自己的知识面,不去打好自己的基础,想得这有得没得的…有这个时间 leetcode 做他几道题校招岂不是美滋滋真是
zuston
2018-04-23 20:54:46 +08:00
讲道理来说,学好一门就行了。科班出来的话,一般公司不会局限语言,基础知识掌握牢固就行
chanin
2018-04-23 21:05:25 +08:00
@CMGS 阿里什么时候用 java 了,我们不在用 golang 和 node.js 吗?你的 P8 P9 莫非说的是腾讯可是腾讯没有 P8 P9 啊? 我觉得一个人在做出重要选择的时候不要随便安利自己并不熟悉的事情!
CMGS
2018-04-23 21:13:25 +08:00
@chanin 阿里什么时候用 JAVA ?纳尼?你活在哪个次元?「阿里一水的 P8 P9 」你哪只眼睛看到我说腾讯?那我说腾讯 T41 级别的岗位你社招面试过嘛?你知道面试些什么嘛?现在给你一支笔一张纸手写 C 语言版的 AVL 你保证写得出?
8012 年啦,你看看我这 ID,你自己人肉人肉这 ID 好嘛?我安利并不熟悉的事情? Node 最早的源码我翻过一次,Golang 这几年我就没停过一直在写,请问什么叫并不熟悉的事情?要不咱俩甩甩 offer 看谁大公司拿的 offer 多对大公司技术栈谁更熟悉?

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

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

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

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

© 2021 V2EX