同样,大型科技公司一贯在开拓新措辞,大约已有大型科技公司。具有首创性的通用措辞C 起源于1970年代初期的AT&T贝尔实验室。Java现在是Android运用程序开拓的紧张措辞,它于1990年代出身于Sun Microsystems。
如今不同的是,公司采取新措辞以达到其特定业务目标的程度—这一过程还具有建立专门的开拓职员根本的浸染,这些开拓职员有效地“锁定”了公司的特定平台。这种双重策略至少可以追溯到Sun推出Java,该公司将Java推广为寻衅Microsoft在PC台式机上的主导地位的一种办法。(只管Java终极在Google将其用于Android之前在企业中间件系统中找到了家,但事情并没有按照Sun的操持进行。)
显然,这也是Apple利用Swift的目标。如果不辜负公司的早期宣扬,Swift可能会通过对Objective-C(目前iOS和Mac OS X开拓职员的通用措辞)进行粗略整理来简化iOS运用程序的开拓。但这也须要那些相同的开拓职员学习他们不太可能在其他地方利用的新措辞的来龙去脉。

公司为什么要自己滚蛋
这与使大多数开拓职员愉快的根深蒂固的“不要重新发明轮子”哲学背道而驰。那么,为什么没有更多的公司仅仅将已经存在的措辞用于新用场呢?
答案之一便是,公司可以建立自己的措辞。设计一种新措辞可能很繁芜,但并不是特殊耗费资源。很难在供应软件资源(共享代码库,API,编译器,文档等)方面赢得支持,并赢得开拓职员的支持。公司在两者上都处于独特的位置。
还有一个事实是,现有措辞常日很难融入当今繁芜的代码框架中。例如,Facebook决定创建Hack,这是Web开拓中常用的脚本措辞PHP的超集。
Facebook利用Hack的紧张目标(这是当今常见的做法)是通过在实行程序之前逼迫实行数据类型检讨来提高代码的可靠性。这样的检讨可确保程序不会考试测验将整数阐明为字符串,如果不捕获该缺点,可能会产生无法预测的结果。在Hack中,这些检讨是预前辈行的,以便程序员可以在代码上线之前很早就识别出此类缺点。
根据Facebook Hack团队的核心开拓职员Julien Verlaguet的说法,该公司首先探求一种现有的措辞,该措辞可能许可更高效的编程。但是,Facebook的大部分内容已经基于PHP构建,并且该公司已经建立了强大的软件根本架构来支持PHP及其分支。虽然可以使PHP利用以另一种措辞编写的代码来事情,但这并不随意马虎,也不是很快。
“假设我试图在Scala中重写我们的PHP代码库,” Verlaguet说。“这是一种精心设计的幽美措辞,但与PHP根本不兼容。每当我须要从代码库的Scala部分调用PHP时,我都会失落去性能。我们本来希望利用现有的措辞,但对我们来说,这不是一个选择。”
取而代之的是,Facebook发明了Hack,它与PHP有足够的共同点,可以共享公司现有的根本架构。Verlaguet说,Facebook的绝大多数代码库已从PHP迁移到Hack,但该公司已开源该措辞,希望独立开拓职员可以在Facebook之外找到它的用场。
他说:“您仍旧可以利用PHP。” “但是我们希望您想要利用Hack。”
谁拥有力量公司与开拓商之间的力量平衡就在个中。公司可以根据自己的喜好来指定其措辞。但是,如果开拓职员不想利用它们,那么没有人会去,也便是说,对付那些可能希望在发明该措辞的公司事情一天的人来说。
对付公司来说,最随意马虎用一种措辞开拓另一种措辞并不罕见。例如,您将利用Objective-C开拓iOS运用程序,而利用Java开拓Android运用程序。对付开拓职员来说,这从来不是一个紧张的难题,由于Objective-C和Java都是通用的面向工具的措辞。它们对付许多目的很有用。
但是,到目前为止,Hack,Dart,Go和Swift仅被证明对特定公司指定的编程办理方案有用,常日与该公司选择的编程环境合营利用。当然,现在判断还为时过早。例如,Hack 可以用于多种后端实现中。它太新了,以至于Facebook还没有任何人们想要利用它的数据。
这并不是说开拓职员没有能力学习多种措辞。大多数已经做到了。将它们想像成浪漫的措辞-如果您知道西班牙语,比起您还不懂法语的人来说,学习法语等更为随意马虎。同样,如果您已经理解Java,则学习Ruby或Perl会更随意马虎。如果您理解PHP,那么您基本上已经理解Hack。
相反,这更多是一个习气问题。如果Java已经办理了您的特定问题,那么您就没有动力学习Ruby。而且,如果您乐于用Objective-C编写iOS运用程序,就不会很想起Swift。
但是,对付某些开拓职员而言,特定于生态系统的措辞会使每个人的生活更加困难。例如,自由设计师杰克·沃森·汉布林(Jack Watson-Hamblin)见告我,诸如Apple的Swift这样的举措可能会使程序员包袱沉重,并使开拓职员社区支离破碎:
对程序员来说,理解多种措辞很主要,但是强制他们一贯跟上新措辞是没故意义的。如果我要开拓一个大略的跨平台运用程序,那么我不须要理解四种措辞。如果确实须要,我只想利用单一用场的措辞。
沃森·汉布林(Watson-Hamblin)认为,当公司各自为知足自己的需求而构建自己的措辞时,这会分散编码职员的把稳力并在该措辞中逼迫采取单一的开拓视角,从而减慢总体进度。他说:“当公司卖力措辞而不是开放源代码社区时,就像公司与初创公司之间的差异一样。” 根据定义,社区更加灵巧温柔应性强。
当然,苹果公司有很多很好的情由从零开始 利用Swift,就像Facebook发明Hack一样。这并不虞味着它不会迫使开拓职员进行变更,个中某些无疑是不受欢迎的。
韦拉格特说:“随着新措辞的发明,它变得越来越霸权。” “必须跟上来可能令人沮丧。但另一方面,您更有可能利用一种新的措辞来办理您的确切问题。想象一下相反的情形—在这个天下上,程序员对所有事物都利用相同的措辞。这将是一种措辞,它可以使所有事情做的不好,但做不到。”
末了,开拓这么多年我也总结了一套学习Java的资料与口试题,如果你在技能上面想提升自己的话,可以关注我,私信发送领取资料或者在评论区留下自己的联系办法,有韶光记得帮我点下转发让跟多的人看到哦。