究竟开发人员须要掌握多少门语言?「建议收藏」

究竟开发人员须要掌握多少门语言?

大家好,又见面了,我是全栈君。

究竟开发人员须要掌握多少门语言?「建议收藏」

诸如Apple、Facebook及Google这种大公司正在开发他们自己的编程语言。开发人员们被迫仅仅有适应。

前不久的世界开发人员大会上。Apple发布了它的新开发语言Swift。这是近期大型技术公司们开发的一大波新语言中的最新成员。这些新语言某种程度上都是专门应用于他们自己的平台。

对iOS开发人员,Apple有Swift。而Facebook 有 Hack —— 一门用于后端开发的语言。与此同一时候。Google已经拥有了它自己的Javascript替代者 Dart,以及一门新的通用编程语言Go。

这一波又一波的新语言。给开发人员们带来了很多问题。

或许当中最严重的问题正如我一位同事Adriana Lee在Apple公布Swift后所说:

(开发人员们究竟还得学习多少门语言?) ——Adriana Lee (@adra_la) June 2, 2014

计算机语言的通天塔

眼下已经存在的编程语言有数百种,同一时候还有很多其它的语言正在涌现。当中很多都是被设计用在相对较窄的应用程序范围内,大多数甚至从未走出过项目小组的范围。

与此类似,大技术公司开发的新语言事实上也是伴随着公司一起成长的。通用语言的鼻祖。C语言,就源于上世纪70年代初的AT&T贝尔实验室。Java,眼下作为Android app开发的主要语言,诞生于上世纪90年代Sun公司的Microsystems系统

发展到如今,不同之处在于。公司们拥抱新语言、从而想要延伸的特定商业目标的范围不一样了 —— 这一过程同一时候建立了一个忠心耿耿的开发人员基础,他们被牢牢锁定在了某个公司的特定平台上。这类一石二鸟的战略。最早能够追溯到Sun对Java的採用。当时公司就将其作为了挑战微软PC桌面统治地位的一种手段。(事情尽管没有像Sun计划的那样发展下去,但在Google转向Android之前。Java大体上也算是在企业中间件系统中找到了自己的一席之地。)

这么看来,Apple的Swift其目标也就非常明白了。

Swift应该不会辜负公司前期的大肆宣传,通过磨平Objective-C那粗糙的毛边,看起来它可以成功简化iOS app开发人员的开发过程。可是相同还是这些开发人员,他们却须要学习一门新语言的输入和输出。而这些功能非常可能在其它地方都不会用到。

大公司们为什么要反复造轮子

“不要反复造轮子”这一哲学在绝大多数开发人员心中根深蒂固,大公司们对此却并不买账。

那他们为何不仅仅是改动下现有语言用于新的用途呢?

答案非常easy,公司们发明他们自己的语言,是由于他们有这个能力。设计一门新语言可能非常复杂,但对资源要求却并不非常高。

困难之处也就在对其提供支持,包含提供软件资源(共享代码库、API、编译器、文档等)以及赢得开发人员的支持。

大公司们在这双方面尤其擅长。

另一个事实,现有语言通常非常难硬塞进现在的复杂代码框架中。举个栗子。Facebook决定发明的Hack,就是一个普遍适用于Web开发的脚本语言PHP的超集合(superset)。

Facebook的Hack近期已经比較普遍,其主要目标就是改进代码的稳定性,针对这一目的,它强制在程序执行之前对数据类型进行检測。

这种检測确保了一个程序。例如说,不会将一个整数解析为一个字符串。这种错误假设捕获不到非常可能会导致不可预知的后果。在Hack中。这些检測会预先执行。以便程序猿可以在程序上线前早早发现这种错误。

据Facebook的Hack项目组核心成员Julien Verlaguet透露,公司之前尝试过用一门现有语言实现更高效的编程。可是Facebook的大部分代码都是由PHP编写的,公司实际上已经建立了一个支持PHP及其分支的软件架构。即使可以让PHP同其它语言编写的代码协同工作。实现的难易程度和执行速度都无法满足要求。

“比方说我们尝试用Scala重写PHP代码库,”Verlaguet说。“Scala是一门设计优秀的美丽语言,可是它与PHP全然不兼容。每次我须要从Scala的代码库部分调用PHP的时候。都会损失性能。我们非常愿意使用一门现有语言。可是对于我们来说,这条路行不通。”

于是,Facebook发明了Hack,它与PHP一样可以共用公司现有的架构。Verlaguet介绍说,Facebook的代码库主体已经从PHP迁移到了Hack。同一时候公司将Hack开源。希望独立开发人员们可以帮公司找到Facebook以外的用途。

“你仍然能够使用PHP,”他说。“可是我们希望你有使用Hack的欲望。”

谁说了算

公司和开发人员之间有一种微妙的平衡。公司能够依照自己的喜好发明语言。

可是假设开发人员都不愿使用这门语言。那就没人用了,公司以外的人也就没人愿意将自己的职业生涯委托给这家公司。

公司在开发过程中同一时候使用不同的语言。这并不少见。比如,你可能用Objective-C开发iOS app。但却用Java开发Android app。对开发人员来说,这从来都不是症结所在。由于Objective-C和Java都是通用面向对象语言。它们用途广泛适用于非常多场合。

然而,Hack、Dart、Go和Swift,到眼下为止,仍然仅仅适用于严格特定公司的编程解决方式,往往和公司选择的编程环境相相应。诚然,如今下结论可能还太早。例如说Hack,就能够用在一些后端的实现中。它仅仅是太新了。以至于Facebook还没有不论什么数据供人们如此使用。

不是开发人员不能学习多门语言。

其实。大多数人已经掌握了多门语言。这好比罗曼斯语(一种由拉丁语演变而成的语言),假设你会说西班牙语。再去学法语就比那些不会西班牙语的人简单很多。

与此类似,假设你已经会Java,再学Ruby或Perl就简单得多。

假设你会PHP,基本上就已经学会了Hack。

与此相反,学习多门语言很多其它的是一个习惯问题。假设Java已经攻克了你的问题,你就不再有动力去学Ruby。

假设你用Objective-C编写iOS app感觉非常爽。你就不会有强烈的意愿去学Swift。

另外,对于一些开发人员来说,封闭生态系统的语言仅仅会使每一个人的生活变得更糟。

比如。自由设计师Jack Watson-Hamblin就告诉我说。像Apple这样强势推出Swift,事实上是在冒险添加程序猿的负担,同一时候将开发人员社区割裂开来:

程序猿掌握多门语言固然重要,可是不断强迫他们紧跟新语言,却是行不通的。假设我正在开发一个简单的跨平台app,我可不想被迫掌握四门语言再来完毕它。假设真的须要。我也仅仅想使用一门语言。

Watson-Hamblin就主张说,当每家公司都为了自家须要发明自己的语言时,程序猿的注意力被分散。开发的视野也局限于一种,这仅仅会拖慢整个开发进程。

他说,“假设拿公司负责一门语言与负责一个开源社区相比較,这两者的差别就好比一家大企业与一个初创小公司的差别”。社区生来就更加灵活。适应能力更强。

当然,Apple有很多非常好的理由推出Swift从零開始,就像当初Facebook发明Hack的时候一样。

我并非说,大公司不会强迫开发人员接受这样的改变。在这方面。有些公司一直都非常让人讨厌。

“新语言的发明。伴随着霸权的支配。”Verlaguet说,“被迫不停追赶,确实令人沮丧。但还有一方面,你又多了一种解决这个问题的新语言。

反过来想想,要是全世界的程序猿都用相同一门语言做全部事情,即使啥都凑合着能干,这门语言也一定干得不怎么样”。

题图来自于Flickr user Ruiwen Chua。CC 2.0


via: http://readwrite.com/2014/06/17/apple-swift-facebook-hack-google-dart

译者:Mr小眼儿 校对:wxy

本文由 LCTT 原创翻译,Linux中国 荣誉推出

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/115658.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号