小公司开发团队应该用什么语言

  • 优先考虑招聘问题 诚实地说,有人总比没人强。当然,如果你的业务没有扩张,也不知是喜是忧。喜是招聘问题并没有那么重要,你可以选择你喜欢的语言,慢慢打磨团队;忧的是,业务成长才能掩盖公司中存在的问题。一旦停滞,必定会爆发出来。
  • 考虑业务场景 考虑机器成本与系统瓶颈。如果你的业务依赖于大量机器,找对系统瓶颈,用擅长的东西做擅长的事是更明智的选择。比如 CPU 密集,用 golang 更能节省成本。 不过一般的极客出身的管理者往往会过分强调技术的作用。一般技术因素总是比你想象的更不重要。
  • Docker 让语言没那么重要 合理拆分业务,让不同人负责不同业务模块并暴露出 API 来,使得不同语言写同一个系统没有那么大负担。在我们团队中,Node.js、PHP、Java、Python 均有应用。

Python

写 Python 一般是三种人。

第一种是学校里刚毕业的,往往毕设需要,一般只会 Java 或者 Python,一部分是 R 语言或 Matlab,还有一部分是微软 C#。此类人无法直接承担主力开发。

第二种是培训班学习。由于铺天盖地9.9元学 Python,此类人在招聘中也较为常见。往往比学校科班出身的更差。

第三种,职业 Python 开发,在招聘中较为少见;但如果你能遇到,往往是个好的开发者(可能是种偏见)。当然选择这种语言本身就降低了阅读代码的维护成本。

PHP

PHP 上手比较容易,开发速度也快。但在有点追求的 PHP 开发者不少都转型到 Golang 了。我们团队中就有 PHP 跳槽到别的公司做 Golang 开发。另外招聘难度上相对 Java 会更大一点。

但是只要愿意学习,上手也很快,社区和学习资料也比较多。 PHP 最大的问题可能是 —— 它不酷,位于鄙视链底层。

Js

JS 正在占领全世界。不是我歧视,前端开发者很难快速上手服务端代码。用 JS 写出易维护的后端代码难度甚于其他语言。但 JS 有一个好处:茁壮成长,生命力旺盛。上班要去有成长性的公司上班,选语言要选一门不停发展的语言。

Golang

岗位开在那里,几天下来只有个位数的查看次数。可能是薪资不够有竞争力,相对其他语言,可能需要付出更高的成本才会有人加入。

Java

正如《程序员的酒后真言》里说的:

如果你不确定自己想做什么东西,请使用 Java。这是一种糟糕的编程语言,但几乎无所不能。

Java 是一种中规中矩的选择,有大量程序员使用,更容易约束代码,有繁荣的生态圈。此外也有大量应届生优先选择 Java,对团队补充新鲜血液也至关重要。 出于以上原因,我也在团队中逐步加大 Java 比重。但是如果只用一种语言,尤其是 Java 这样的,那工作也太乏味一点。其次,如果创业小公司业务敏捷,时间有限,可能其他语言和框架有更好的选择。

本文无意引战,只是提供管理者角度的视角,而且很多可能只是偏见。

2
1
@lv
三年从 2 到 30 人技术团队建设的一个思考,不一定对。
加入