JavaScript并不是世界上最漂亮的编程语言。正是出于这个原因,一位领先的专家写了一本关于语言“本质”的书。本书的标题是“深入挖掘JavaScript的亮点”,因为好东西被埋得相当深。即便如此,它正在迅速成为世界上最好的语言之一。这种流行是当之无愧的,因为尽管该语言存在缺陷,但JavaScript为开发人员提供了其他语言无法提供的重要优势。在浏览器制造商同意将Javascript(嗯,技术上是ECMAScript)作为Web语言的标准之后,会带来一些优势。其他的是固有的Web应用程序编程模型,并没有通过任何增强来改进。然而,当原生应用程序在移动端主导网络时,JavaScript的主导地位正逐渐转移到移动端。最终会占据主导地位吗?流行但未被优先考虑最新的TIOBE社区排行榜将JavaScript排在所有编程语言的第六位,并且还在继续上升。TIOBE方法的排名倾向于更老的、更成熟的语言,并且不太擅长跟随趋势。相比之下,Redmonk排名方法将JavaScript置于列表的顶部。Redmonk的做法会在一定程度上偏向于拥有强大开源社区的语言,但同时又能充分反映当前的趋势和兴趣。我们自己的开发者经济概览表明,HTML5/Javascript组合已经成为移动开发者采用的第二大流行语言,使用率接近55%。使用java的人仅以57%的微弱优势输掉了。然而,虽然我们发现HTML5和Javascript的组合是首选(19%),但它在这个方块中远远落后于Java(29%)。这看起来将在未来几年内显着改善。【你怎么看这件事?我们有一项新的调查,所以请查看并告诉我们您的想法]JavaScript在浏览器中飞向自由这不完全是标准的“净赢”声明。我认为浏览器或基于webview的应用程序永远不会统治移动设备。即使有使用和增长,它也不会成为常态。如果未来真正开放Web标准来统治移动设备,那么他们需要从文档对象模型(DOM)开始。DOM不是构建应用程序的基础,而是文档。当然,您最初可以围绕平台设计文档应用程序,但您会被卡住。查看当前允许您为移动浏览器或Web视图设计相当高性能的应用程序的框架:React.js、Famo.us和Ionic。这三者的共同点就是尽量少用DOM。是的,有太多的WebGL(或HTML5Canvas必须),但这些都是低级API。您所需要的只是大型的(可能是多字节的)良好框架,以创建用于开发大多数应用程序的优秀平台。这不太适合Web应用程序编程模型,其中最重要的程序代码放在远程服务器上,尤其不适合移动环境。的确,您可以在WebGL中本地创建一个具有大型好商店的混合应用程序,并且只需从远程服务器中提取特定于程序的代码。但是为什么要使用浏览器呢?为什么不只是javaScript在硬件图形加速器上胜过其他跨平台框架(提示:Qt提供了一个很好的加速器)。高级API在语言之间的桥接方面没有那么多开销。在访问某些功能时,也许也缺乏限制。现在有几个非常有趣的新选项符合这个描述。ReactNative和NativeScript..它们以不同的方式运行,但都是使用JavaScript构建原生UI的应用程序。Appcelerator的TiNext可能也很有趣,即使多年来他们一直在谈论但没有发布,所以让我们拭目以待。JavaScriptAnomalyApple恢复了JavaScript在移动设备上的主导地位。阻止大多数开发人员在移动设备上采用敏捷的Web式持续交付模型的关键因素之一是Apple禁止代码下载。如果没有这种迭代模式的显着放缓,比较测试将变得更加困难。这实际上意味着开发人员,尤其是初学者,学起来更慢。直到最近,获得更快迭代的唯一方法是首先从Android开始,开发混合应用程序,因为Apple在webview代码下载规则中将JavaScript作为例外。在第一种情况下,这意味着大多数早期采用者正在离开该平台。不幸的是,第二种情况下的用户体验权衡太大了,大多数开发人员走这条路是因为用户应用程序失败或切换到本机。但是在ios7中,为运行JavaScript添加了JavaScriptCore接口,在最新的ios开发者程序许可条款中,他们修改了代码下载异常的规则,将JavaScriptCore包含在内。从安全的角度来看,这是有道理的。Apple可以审计和更新他们的运行时,但是如果他们允许第三方运行时下载代码,他们就不能有效地监控安全问题。由于JavaScript是Apple唯一的脚本选项,而且他们不允许在本地下载代码,因此JavaScript正在收回其特权地位——作为那些想要快速迭代的人的唯一选择。JavaScript的可用性引发了一些努力,例如React和NativeScript,并且Apple已公开宣布放松对代码下载政策的控制。开放会赢吗?Web拥护者有时会建议基于Web的开放标准最终会获胜,因为开放永远是赢家。然而,Linux是一个没有委员会标准的开放、快速发展的生态系统的明显例子。React,Facebook似乎是一个在开源项目中快速构建的开发者生态系统。围绕React.js已经有一个快速发展的委员会,这显然给了他们领导的机会。但Telerik的NativeScript团队正在与谷歌合作,因此Angualr2.0需要无缝集成。Google打算支持非DOM环境,无论网络标准是否面向它。微软和谷歌可能需要很长时间才能支持他们将在未来浏览器中实施的标准。但他们正在共同努力开发TypeScript,以便更轻松地使用JavaScript构建不太复杂的应用程序(证明编译器在发现类型不匹配方面比人类更聪明)。Apple为其新的Swift语言构建了许多令人印象深刻的工具,尤其是交互式游乐场。然而,基于实时反馈和高频率的实时编码,Facebook可能已经在ReactNative上拥有更好的编码体验。Apple将继续迭代他们的工具,开发者社区现在已经为这些新的JavaScript环境添加了工具。Android在技术上可能是开源的,但在社区建设上并不开放。谷歌独自增强了Android的平台和工具。大概只有开放的开发者社区才会胜出,真正基于社区的开源比基于开源标准的开源迭代得更快。为此,“原生UX使用JavaScript构建”环境成功了,这样的平台肯定不会失败。应用程序仍将根据平台的外观和感觉构建,使用新的特定于平台的API。在这一点上,看起来非常开放的JavaScript开发人员社区即将获胜,因为他们制作的应用程序具有原生平台的外观、感觉和性能,此外还需要web开发经验。封闭平台总是赢家,因为当时的应用程序需要针对其封闭的生态系统进行定制。目前,开放网络标准仍在失败。如果移动浏览器制造商能够同意新标准,让他们的应用程序拥有与本地应用程序相同的体验,那么他们肯定会赢。你用什么做的?你认为JavaScript会统治移动开发的未来吗?或者Java、Objective-C和Swift会继续他们的领导地位吗?而物联网,它的后端会通过Node.js吗?通过参与调查让我们知道您使用什么来构建您的应用程序。
