JavaScript並不是世界上最優美的程式語言。正因如此,一個世界級的專家寫了一本關於這個語言的「精粹 」的書。這本書的名字是“深度挖掘javascript的亮點”,因為優秀的東西被埋的相當深。即便如此,它還是迅速地稱為世界上最受歡迎的語言之一。這種受歡迎是應得的,因為儘管這種語言存在缺陷,但是javascript提供給開發者其它語言不能給予的重要的優勢。有一些優勢是在瀏覽器的開發人員同意了Javascript(好吧,技術上的ECMAScript)作為web語言的標準後產生的。其它的是固有的web應用程式設計模型以及更沒有通過什麼增強改進。然而,儘管原始生態的應用程式統治了web應用在行動裝置上的地位,但是JavaScript的優勢正在逐步轉向行動裝置。最終它會主宰嗎?
最近的TIOBE社群清單將JavaScript列為在所有程式語言中的第六位並且還在持續上升。 TIOBE方法的排名傾向於支持老舊的,更成熟的語言,而不太擅長追隨潮流。相較之下,Redmonk排名方法將JavaScript放在第一名的位置上。 Redmonk方法某種程度上會偏向有著強大開源社群的語言,但同時在實質上會反映現在的趨勢和興趣點。我們自己的開發者經濟概覽已經顯示HTML5/Javascript的聯合已經是行動裝置開發者所採用的第二流行的語言,幾乎55%的人使用。僅以微小的優勢輸給57%的人使用java。然而,儘管我們發現HTML5和Javascript的組合在優先選擇的人群上為(19%),在這個方陣上遠遠落後於Java(29%)。這看起來會在未來幾年顯著提高。 [你怎麼認為呢?我們已經有了一個新的調查,所以看看這個調查然後讓我們知道你的看法]
這並不是一個標準的「網贏」的說法。 我並不認為瀏覽器或是基於網頁視圖的應用程式最後會統治行動裝置。即使使用而且增長但不會是常態。 如果將來真的開放web標準來統治行動裝置那麼他們需要從文件物件模型(DOM)開始。 DOM不是建立應用程序,而是文件的基礎。當然你可以最初圍繞一個平台設計一個用於文件的應用程序,但是你會舉步維艱。看一眼現在的框架,允許你為行動瀏覽器或網頁視圖設計的相當高效能的應用程式:React.js 、 Famo.us 和lonic。這三者的共通點就是盡量少用DOM。
是的,有太多的 WebGL(或說 HTML5 Canvas 必備),但這些都是低階的 APIs。你所需的是大的、可能是多位元組的、好的框架為開發大多數應用程式來創造一個優秀的平台。這不太適合 web 應用程式設計模型,其中最新的程式碼是放在一個遠端的伺服器上,尤其不適用在一個移動的環境中。能在一個大的好的儲存在本地的WebGL上創建一個混合型的應用是真的,而且只是從遠端的伺服器上獲取程式特定的程式碼。但是為什麼要使用瀏覽器呢?為什麼不只是 javaScript 能優於其他的在硬體圖形加速器(提示:Qt 提供不錯的產品)的跨平台框架。一個高階的 API 在語言之間的橋接上是不會有那麼多的開銷的。或許在涉及存取特定功能的時候也是欠缺限制。
現在有幾個符合這一描述的非常有趣的新選擇。 React Native 和 NativeScript.。它們以不同的方式運行,但是二者都是用 JavaScript 來建立一個原始生態 UI 的應用程式。 Appcelerator 的 TiNext 可能也是很有趣的,即使它們多年來被多次談論卻不曾公開一個版本,因此讓我們耐心等待並一睹它的風采。
苹果已经恢复了JavaScript 在移动端的优势。阻止了大多数开发人员在移动端采用一个敏捷、web 样式持续交付模型的冠一个关键事情就是 Apple 在代码下载上的禁令。如果没有这种迭代模式的显著放缓,对比测试会更加困难。这实际上就意味着开发者,尤其是初学者,会学的慢些。直到最近,唯一获取更快的迭代的方式就是首先从 Android 开始,开发一个混合的应用程序,因为 Apple 使得JavaScript 称为在 webview 代码下载规则中的一个异常。在第一种情况下,它意味着大多数早期的采纳者正在远离这个平台。不幸的是第二种情况下 UX 的取舍实在是太大了,大多数开发者因为用户用程序故障或者切换到本地去走那条路线。但是在 ios7 中为运行 JavaScript 增加了 JavaScriptCore 接口,而且最新的 ios 开发者程序许可证条款中,他们修改了代码下载异常的规则包括 JavaScriptCore。
这从安全的角度上讲是有道理的。Apple 能审计和更新他们的运行时间,然而如果他们允许地第三方运行时下载代码,他们就没有有效地监控安全问题。因为 JavaScript 是 Apple 的唯一脚本选项并且他们不允许下载代码到本地,JavaScript 在恢复特权地位–作为那些想快速迭代的唯一选择。JavaScript 的可用性引发了一些努力,像 React 和 NativeScript 和 Apple 对代码下载政策的放宽把握已经完美地对外公布。
Web 提倡者有时候表明基于 web 的开放标准最终会胜利,因为开放一直都会赢。然而,Linux 就是一个明显的例子,这是一个开放的迅速发展的却没有委员会统一标准的生态系统。React,Facebook 似乎成了开源项目中快速构建的一个开发者生态系统。已经有了一个围绕 React.js 快速成长的委员会,这明显给他们带来了领先的机会。但是在 Telerik 的 NativeScript 团队正与 Google 共同工作,因此Angualr2.0 需要被无缝集成。Google 打算支持非 DOM 的环境,不管 web 标准是否朝向它。微软和谷歌可能需要一段很长的时间来支持他们在未来浏览器将实施的的标准。但是他们在共同朝着 TypeScript 努力,使构建一个负复杂一点的带有 JavaScript (证明是编译器在发现类型不匹配上比人聪明)应用程序更加简单。
Apple 已经为他们的新 Swift 语言建立了许多相当令人印象深刻的工具,尤其是互动场景(interactive playground)。然而,Facebook 在 React Native 上依据即刻反馈和高频即时编码可能已经有了更好的编码体验。苹果将会继续迭代他们的工具,开发者社区现在已经增加了这些新的 JavaScript 环境工具。Android 可能技术上是开源的,但是它在社区建设上却不是开放的。谷歌正在独自增强 Android 的平台和工具。大概真的是开放的开发者社区才会胜利,而真正基于社区的开源能够比基于开源标准的开放迭代更快。为此,“本地的 UX 使用 JavaScript 去建立”环境并取得成功,这样的平台肯定不会失败。应用还是会依据平台的外观和感觉,并采用新的特定平台的 API 去建立。
这个时候,看起来好像非常开放的JavaScript开发者社区将要赢得胜利了,因为他们制作的APP具有本地平台的的外观,感觉和性能,除了需要有Web开发的经验。封闭平台以往一直取胜是因为那时候的APP需要为他们封闭的生态系统定制。目前,开放的web标准还是输的。如果手机浏览器厂商能同意新标准,让他们制作的应用能具有本地应用那样的体验,那么他们就一定会取得胜利。
你认为JavaScript将会掌控移动开发的未来吗?还是Java,Objective-C和Swift继续它们的领导地位? 那物联网,它的后端会通过Node.js吗?通过调查,让我们知道你用什么来建立你的APP吧。
以上是詳解JavaScript為何會在行動端中勝出?的詳細內容。更多資訊請關注PHP中文網其他相關文章!