"任何不谈使用场景的最佳编程语言都是耍流氓." 我们经常会听到 "201X 年最佳的编程语言","程序员最应该学习的编程语言", 以及那句最著名的 "PHP 是最好的语言"...... 在没有使用情境的情况下, 这些都没有任何的参考意义.
为了能够给更多处在迷茫期的程序员提供一些建议, 我们将在多篇文章中从多个角度来分析编程语言的选择和应用. 本文会先讲述一下编程语言的选择成本以及选择标准.
u=1071158680,4050896773&fm=26&gp=0.jpg
更改编程语言的成本
如果你有一个很大的代码库, 那么一般来说, 你是不会轻易更换编程语言的. 因为这样做带来的成本会非常大, 聘请新的开发人员, 改变原有的基础设施, 学习最佳实践...... 这样的成本支出我们相信会让大多数的公司望而却步.
另外, 除了以上成本的支出, 往往我们还会忽略一种成本支出, 那就是学习成本. 虽然学习了解一门编程语言只需一到两个月的时间, 但是想要熟练掌握一门编程语言则需更长的时间, 所以无论是从程序员还是从企业的角度来看, 他们都倾向于选择原有的编程语言. 学习交流
我建了一个 "前端学习" 的交流群, 目前来看, 学习氛围很不错. 进群要求: 提问学习, 少闲聊, 多分享 (长期潜水的, 就不必了).1074182891
在这种情况下, 最好的编程语言一定是你现在正在使用的编程语言.
何时更改编程语言?
没有任何一种语言是完美的, 事实上每种语言是扩展时都会遇到一些问题. 但是, 将所有语言一视同仁, 也是不公平的, 毕竟当你有某些重要或者特殊需求的时候, 有些语言的表现会特别突出.
保留原有编程语言有时也需成本支出
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 是门槛较低的编程语言, 所以企业在招聘时对于应聘程序员的能力判断可能会迷茫. 这时, 社区就发挥作用了, 企业可以通过社区上他们的项目来判断这个人的能力. 而且并不是所有程序员都是学计算机出身的, 他们的代码可能并没有那么规范, 社区的存在可以让程序员的编程更加规范.
另外, 编程语言一旦被社区接受, 就会衍生出大量的库, 更利于编程语言的发展.
来源: http://www.jianshu.com/p/9ef5135820e3