雇佣
另一个原因影响开发人员去选择合适的编程语言,就是你可以选择被雇佣。不过这是真的吗?我现在在C#办公点工作,我藐视了Java开发者吗?当然没有。一个好的开发者就是一个好的开发者,跟语言没什么关系。拒绝潜在的新人是因为他们所知道的的语言是反应迟钝的弱智语言。
麻烦的是:如果你认为仅仅雇佣python 或者 node 开发者可以让你提升到一个更高的开发人员的标准:你错了。你选择的空间会变得更加狭窄。或许那个空间的平均质量会高一些,但谁知道?谁在意呢?我只需要一个开发者,我希望她是在我能雇佣的人中最好的,跟平均值没什么关系。
语言和能力之间没有必然的联系:我遇到了一些非常聪明的Java开发人员和一些十足可怕的自认为消息灵通的开发者。我宁愿尽可能多的雇佣乐于使用我们所使用的技术的优秀的开发人员,而不是去限制我能召集到人才的机会,坦诚的说,目前已经很受限制了。
我听说到的另一个争论是,你所使用的技术会限制应聘者为你工作的意愿 --- 一些开发者就想在指定的平台工作,比如clojure. 其实,他们阻碍了自己成长。我宁愿要那些主动想去解决有趣问题的人员,不用去考虑语言,而不是那些只解决垃圾问题的自以为是的潮人。如果你是在银行工作,碰到的都是很胡扯的问题吗?当然,可以直接用一种自以为是潮人的语言如果它能够帮助你雇佣到足够的傻子。它会使很多人才远离我。
通用语言
将所有使用潮人语言的程序员集中在一起,让他们组成一个团队。会发生什么呢?意外的是,你看到了一堆C#和Java的开发人员。因为几乎每一个开发人员都知道这两种语言中的一种----它们是通用语言。反之如果没有组成一个团队,他们只不过是一群水平参差不齐潮人语言开发人员。
事实上最重要的事情是当你选择一种语言时,取决于你的团队中会有多少开发人员熟悉这种语言,以及你打算雇佣的人有多少人了解这种语言。如果团队中的每个人需要重新培训,像smalltalk;以及你雇佣的每个人需要手把手指导学习新语言---这是你必须考虑的成本因素,什么样的利益和你会从中获得什么好处?
其次,你是否可以在遇到问题时比较容易的获得支持帮助?Java的开源社区非常棒---当你遇到一个问题,他们已经至少有15个不同的解决方案,其中有一些甚至可行。如果你使用C#,那么你的选择会非常有限---但是将会有选择,有些不是来自微软的支持。如果你使用最新的潮人语言,猜猜会发生什么? 你就只能靠自己。不过对于有些人来说,这正是潮人语言所吸引他们的地方。但对于我们这些想要把工作做好的人来说,这是一种痛苦。
最后,最好的建议还是倾向使用上一个项目相同的语言:因为每个人都已经熟悉它,以及所需的工具也已经安装部署完成。这就是为什么Java迅速成为新一代cobol(译者注:第一个广泛使用的高级编程语言)的原因。