转自:http://www.techug.com/post/how-to-choose-porgramming-languages.html?1497961678521?ref=myread
“任何不谈使用场景的最佳编程语言都是耍流氓。”我们经常会听到“201X年最佳的编程语言”、“程序员最应该学习的编程语言”、以及那句最著名的“PHP是最好的语言”……在没有使用情境的情况下,这些都没有任何的参考意义。
为了能够给更多处在迷茫期的程序员提供一些建议,我们将在多篇文章中从多个角度来分析编程语言的选择和应用。本文会先讲述一下编程语言的选择成本以及选择标准。
更改编程语言的成本
如果你有一个很大的代码库,那么一般来说,你是不会轻易更换编程语言的。因为这样做带来的成本会非常大,聘请新的开发人员、改变原有的基础设施、学习最佳实践……这样的成本支出我们相信会让大多数的公司望而却步。
另外,除了以上成本的支出,往往我们还会忽略一种成本支出,那就是学习成本。虽然学习了解一门编程语言只需一到两个月的时间,但是想要熟练掌握一门编程语言则需更长的时间,所以无论是从程序员还是从企业的角度来看,他们都倾向于选择原有的编程语言。
在这种情况下,最好的编程语言一定是你现在正在使用的编程语言。
何时更改编程语言?
没有任何一种语言是完美的,事实上每种语言是扩展时都会遇到一些问题。但是,将所有语言一视同仁,也是不公平的,毕竟当你有某些重要或者特殊需求的时候,有些语言的表现会特别突出。
保留原有编程语言有时也需成本支出
PHP到C++的转换器—HipHop for PHP、PHP的未来—Hack、用于PHP和Hack的虚拟机—HHVM。PHP的性能很好,所以很多企业会选择保留使用,但是他们并不是完全没有付出代价,例如,Facebook的内部代码是用PHP开发的,其也投入成本发布了新的编程语言—Hack。
选择编程语言的标准
虽然我们认为世上没有完美的编程语言,但是对于某些场景和特定任务来说,是有更好的编程语言。所以我们认为可以制定一些标准来帮助程序员和企业选择编程语言。
良好的技术素质
除了性能,编程语言必须具有良好的技术素质来满足用户需求。如果你的软件包含有大量的并发,所以需要一种具有一流支持的编程语言。
例如,Twitter的编程语言选择了Ruby,其LAMP模型不支持封装,所以很难建立独立的独立存储或搜索服务。这是Ruby的缺点,但是Ruby也有专为其他东西设计的特性。技术素质指的不仅仅是你看到或者用到的,如语法,更多的是其在背后是如何实现的。
所以,在选择编程语言时不要盲目相信编程语言的排名,而是要根据你的需求对所有的语言进行分析对比。假设现在有两种编程语言分别是X和Y,X编程语言在用户量达到500万之后表现优秀,而Y语言在用户不到500万的时候,表现优秀且价格便宜,如果你一开始就选择了X语言,可能它的使用成本非常高,你直接死在了通往500万的路上。
编程语言的流行程度
流行的编程语言能够帮你节省金钱和时间,尤其是对开源开发来说。假设你的公司是用PHP来开发的,那么你就可以搭乘Facebook的顺风车,使用Hack和HHVM等加快公司的发展。
如何判断一个编程语言是否流行?
- ·该语言的就业岗位数量;
- ·搜索引擎上该语言的搜索数量;
- ·GitHub上该语言的项目数量
社区会发挥更多的作用
良好的社区有很多好处,例如,企业能够更了解开发人员的思维方式,混社区的程序员往往具备更多非编程的技能、社区会企业招聘人才节约了更多的时间和人力成本……
PHP是门槛较低的编程语言,所以企业在招聘时对于应聘程序员的能力判断可能会迷茫。这时,社区就发挥作用了,企业可以通过社区上他们的项目来判断这个人的能力。而且并不是所有程序员都是学计算机出身的,他们的代码可能并没有那么规范,社区的存在可以让程序员的编程更加规范。
另外,编程语言一旦被社区接受,就会衍生出大量的库,更利于编程语言的发展。