2019年python、golang、java、c++,rust如何选择?
如果是面向工资编程,那以下主要默认题主要去互联网企业。
开源时代一种新语言的诞生,往往是以下几个步骤:
- 推出一个很酷的新模型或者新理念:比如Python的ML,Golang的静态编译/工具链等
- 一些先锋程序员就会投入进去开发,这些程序员就是天使轮拿到的资金
- 要早别人抄走这些优势之前构造一个基本可用的工具链(调试器,IDE,包管理,优化)/框架库(主要是Web,SQL等)
- 如果成功,就会有后续公司进入然后他们出钱养程序员投入这个领域,相当于语言融资了ABC轮
- 直到某一天市场大规模采用了,大量贡献了程序员/库/教程/stackoverflow的踩坑,相当于语言上市了,一个正循环就培养好了
- 再然后就是用得越多,岗位越多;岗位越多,新鲜血液越多(相当于资金)
一个大金主,也就是现在喜欢说的“XX的爹”,可以长期稳健的提供大量人员和技术,比如Google把go和kubernetes结合的很好,于是go的市场就非常好,因为一个语言那么多细节,那么多场景都需要人去编码,去测试,去验证,没有人去踩坑的话就是用户自己踩,自然也就没人愿意跟随。和房价一样,追涨杀跌,“信心比黄金和货币更重要”。 所以验证市场的方式就是观察走势和交易量:
- 去看看招聘的岗位数量
- 去看看采用某个技术栈的公司的业绩如何,特别是其市场地位
- 看看某个领域新出的库,都是用什么语言写的。比如在k8s里面,出了一堆新东西,你看是go,或者C++还是别的什么写的。说明这个领域的基本定式方式已经变了。
讲讲反面例子:
Github一家不太容易支撑起Ruby/Rails,所以Ruby的热度下去了。这也跟Ruby在推出RoR之后,Python快速学习了这套打法。但是后续的库,Python却多于Ruby,所以一下子战局变了。这就是所谓的先手没有变成优势。
总结以下:
- java肯定没问题,生态完善完美,大公司在用,人力和技术储备和流动性都不错
- go肯定没问题,云生态完美,k8s基本上统治
- rust还属于A轮阶段,看看你自己是不是先锋开发者。未来Rust我觉得不错,但是时间点无法预测。
- C++老牌,但是最近新库似乎就是Envoy用C++写的。
- python我觉得主要是ML领域