|
谷歌似乎也试图凭借自主设计的高性能语言Go来实现同样的目的。为了让网络服务变得更优雅、更高效,针对大型网络服务背后的服务器开发更先进的软件颇有益处。此外,对于喜欢新鲜事物、喜欢挑战困难的程序员来说,这也是一种吸引力。 适当时机:发展壮大之后 2010年底,Facebook曾遭遇过一场危机。PHP并不是一种强调代码性能的语言,但当时Facebook出现了这方面的需求。Facebook的发展速度很快,因此如果不作出一些重大改变,那么该公司将会走向失败。 彻底改变编程语言并非可选方案之一。Facebook使用PHP编写的代码已达到数百万行,从事这一开发的工程专家已有数千人,而所形成的产品已积累了数亿用户。因此,Facebook的多名高级工程师成立了一个小团队。他们试图发明一种方式,使Facebook正常提供服务,同时不必放弃自己的“母语”。 整个解决方案的一部分是开发一款编译器,将Facebook的PHP代码翻译成运行速度更快的C++代码。而另一部分则是计算机语言工程领域的一项壮举:继续给Facebook程序员带来PHP风格的文化,同时让他们编写可靠性更高的代码。 这一“救援小组”为此设计了PHP语言的一个变种,即Hack。Hack是一种带可选输入检查系统的PHP语言。你既可以像以往一样,快速编写出代码混乱的PHP程序,也可以遵循系统要求,通过添加注释让系统来检查代码的正确性。这一输入检查工具完全使用OCaml来开发,而这并非巧合。Facebook希望程序员使用熟悉的语言来快速编写代码,但并不希望他们将事情搞错。(去年,扎克伯格公布了Facebook新的工程口号:“在确保基础设施稳定的情况下快速行动。”) 与此同时,Twitter也在进行类似的转型。Twitter的开发最初基于Ruby on Rails。这是一款采用Ruby语言开发的热门网络编程框架,并借鉴了PHP的很多思想。然而,Twitter随后也看到了用户数的暴涨。如果某一用户有着数十万关注者,那么当他发布消息时,数十万用户的时间线需要得到相应的刷新。以往,一些热门Twitter消息常常会压垮系统,导致Twitter工程师不得不暂停服务,对问题进行修复。Twitter也因随之而来的频繁宕机而“名声昭著”。 Twitter随后用Scala语言重写了服务的很大一部分代码,从而解决了这一问题。意料之中地,与OCaml类似,Scala也是一款由学术机构设计的语言,有着强大的输入检查系统,强调代码的准确性和性能,并因此牺牲了程序员个人的编程自由和娱乐感。 在找到营收模式之后,创业公司将走向成熟。与此类似,它们也可以利用编程语言的力量来操纵企业文化。编程语言设计师圭多·范洛塞姆(Guido van Rossum)曾在谷歌供职7年,而目前加入了Dropbox。他表示,当软件公司达到一定规模之后,避免混乱的唯一方式是使用对程序员有更多要求的编程语言。“你的速度可能会因此减慢,因为你需要重复3次去表述同一件事情。”他表示。 (责任编辑:职场达人) |


