为何谷歌和苹果都要开发自己的编程语言?
扫描二维码
随时随地手机看文章
在周一举行的全球开发者大会(WWDC)上,苹果公司分享一个鲜为人知的成功故事。大约1年前,苹果曾推出新的编程语言Swift,宣称其可帮助开发者更轻松地开发iPhone和Mac应用。开发者们为此欢呼不已。
这种编程语言被称为Swift名副其实。苹果承诺Swift将令编程速度更快,应用也能更快地投入实际应用中。这种应用已经在许多开发者中引发共鸣,他们在Topcoder网站上举行Swift编程挑战赛,目前对Swift感兴趣的开发者已经达到3700人,并有望于今年年底达到2万人。
全球最大问答网站之一Stack Exchange对全球顶级开发者进行调查显示,Swift是开发者们最感兴趣的编程语言之一。去年11月份,一名男子通过教授其他人如何使用Swift,一个月净赚了6.6万美元。
但是苹果并非第一家推出自己编程语言的科技巨头。早在1991年,微软就已经推出可视化程序设计语言Visual Basic,它以Basic编程语言为基础,是图形用户界面最早、最受欢迎的编程语言。大约2009年,谷歌(微博)也推出了其自己的编程语言Go。
对于众多开发者来说,编程语言非常重要。而对苹果、谷歌甚至微软来说,每当发布新的编程语言时,都意味着对开发者们的习惯发起艰难挑战。因此,企业肯定会谨慎考虑,对吗?苹果和谷歌也必定从中赚取利益,对吧?
开发编程语言好处多
然而,事实并非如此。苹果与谷歌的编程语言有很多共同之处。谷歌的Go与苹果的Swift旨在解决开发者在旧版编程语言中遇到的问题。
Swift很像Objective-C,后者主导iOS编码,开发者很快就采用它。事实上,它与Objective-C如此相似,以至于Swift代码甚至可被用于同一种应用中。但是Objective-C已经诞生30多年了,而Swift则是一种现代化努力,确保应用开发更容易,运行速度更快。
与Swift类似,Go的目标也是帮助更轻松地建立复杂系统。而网络软件编程行业中的昔日老大C++与Python,已经无法满足谷歌要求。Go FAQ发言人称:“Go是在开发者对现有系统编程语言和环境感到失望的情况下应运而生的。”
自从Go诞生以来,编码者使用它更为轻松,但在我们称之为“云”的大数据中心时代,它依然存在很多编程语言在速度和性能方面的问题。作为一个开源项目,全世界的开发者都为Go的发展做出贡献,令其越来越好。
对于谷歌和苹果来说,推出自己的编程语言有助于他们更轻松地招募相关人才。比如,自从使用Go建立自己的服务器应用后,谷歌更容易招募到精通Go语言的开发者,他们只需要更少的培训即可承担重任。
此外,公司外部的开发者利用Swift或Go解决的任何问题,苹果与谷歌都可以应用到自己的业务中。但是最重要的部分是,这些语言被公开后,其唯一目的就是帮助开发者开发出更好的软件。
Swift快速崛起
云端应用监测与管理平台New Reli的高级软件工程经理乔纳森·卡隆(Jonathan Karon)说:“当然,Swift的承诺是让软件变得更加稳定。”更为稳定的软件意味着更好的应用体验,而更好的应用体验令苹果开发者感觉更好,iPhone看起来也更棒。
Swift已经取得早期成功,但是其依然需要不断改进,毕竟其诞生仅仅1年时间。Swift的高标准要求意味着它很难被用于在低端Macbook上写代码,并且还缺少很多功能。开发者中间也存在争议,Swift是否真的比Objective-C更快。
但是开发者们对Swift的未来发展非常看好。卡隆称,从企业角度来看,他发现New Reli客户大多保持他们现有的后端软件,但是他们正使用Swift开发人们在智能手机上常用的应用。
而对于消费应用来说,语言学习应用Duolingo是Swift的早期采用者,正利用Swift建立自己的Test Center应用。Lyft也是如此,正利用Swift开发其打车应用。流视频直播应用Meerkat同样是Swift的超级粉丝,该公司CEO本·鲁宾(Ben Rubin)表示:“我们喜欢Swift,我们知道它依然是一种新兴技术,有许多空白有待填补,为此我们期待其在开发体验方面的改进。”
但是有些网络评论家质疑称,Swift的存在可能是因为苹果正尝试为iPhone和iPad建立一种编程语言,令其应用更难用于安卓设备。但这可能只是部分原因。苹果精心塑造起公共形象,苹果工程师就像硅谷工程师一样,对解决问题感到兴奋不已,该公司的开发者们很可能抓住机会,向全球公布被他们视为更好的解决方案。
如果你依然习惯于使用Objective-C,苹果不会阻止你,它只是将Swift当作一种选择。为iPhone和Apple Watch开发健身应用的BodBot公司创始人塞尔吉奥·普拉多(Sergio Prado)说:“在文档中,他们平等对待Objective-C和Swift,他们从未想过使用Swift。”
这也就是说,BodBot的应用目前并未使用Swift,因为这不是他想要体验的。但普拉多说,他正关注着编程语言的发展。苹果有望在WWDC主题演讲中宣布Swift的更新方向。
谷歌语言Go前景不明
谷歌Go不像Swift那样呈现爆发式增长,这不仅仅是因为其针对更复杂、被称为“系统水平”的编程。Go项目描述自己为“由谷歌设计,帮助解决谷歌难题,谷歌有大问题。”你当然可以利用Go开发移动应用,但那并非其最擅长的领域。
热门应用容器引擎Docker、云托管服务平台DigitalOcean都在使用Go启动其内部项目。如果Swift是为开发iPhone应用而生,那么Go的使命就是帮助开发容纳应用数据的服务器应用。DigitalOcean软件工程师布莱恩·莱尔斯(Brian Liles)说:“在我们看来,Go很容易使用,为此我们将继续探索其可能性。”
但是总的来说,Go还没有成功起飞。帮助商家在云端开发应用的平台Apprenda战略研究部资深主管丹·特肯科普夫(Dan Turkenkopf)说:“到现在为止,我们还没有看到有太多企业客户使用Go,除了实验室的某些早期试验外。”
卡隆表示,主要原因是谷歌有很多悬而未决的编程项目。谷歌有Google Dart,这是另一种不太热门的编程语言。谷歌还在为安卓应用试验新的软件编译器,其代号为“Jack and Jill”,据说其有可能改变开发者开发应用的方式。换句话说,谷歌“空中有很多球”,开发者发现这些“球”的方向却都不同。[!--empirenews.page--]
总之,谷歌与苹果都已经推出各自的编程语言,因为新技术的进步往往都是现有编程语言和技术存在不足所驱动。这也是他们推动自己议程的有趣方式之一,即使只为让更多人对谷歌和苹果正在做的事情发生兴趣。
但是正如卡隆指出的那样,更快、更少漏洞的代码不会自动让你的应用变得值得使用。像Swift和Go这样的编程语言并非“银弹”,即令应用变得更有用或使用起来更有趣。你同样需要更好的设计、更好的功能。