ホームページ >ウェブフロントエンド >jsチュートリアル >なぜ JavaScript がモバイルで勝てるのか?

なぜ JavaScript がモバイルで勝てるのか?

伊谢尔伦
伊谢尔伦オリジナル
2016-11-29 09:22:121013ブラウズ

JavaScript は世界で最も美しいプログラミング言語ではありません。だからこそ、世界トップクラスの専門家が言語の「真髄」についての本を書きました。この本の名前は「Deep Digging into the Highlights of JavaScript」です。優れた内容がかなり深く埋められているためです。それでも、急速に世界で最も人気のある言語の 1 つになりつつあります。この言語の欠点にもかかわらず、JavaScript は開発者に他の言語ではできない重要な利点を提供するため、この人気は当然のことです。ブラウザ開発者が Javascript (技術的には ECMAScript) を Web 言語の標準として合意したことで、いくつかの利点が生まれました。残りは固有の Web アプリケーション プログラミング モデルであり、機能強化によって改善されていません。ただし、モバイル デバイスではネイティブ アプリケーションが Web アプリケーションを支配していますが、JavaScript の優位性は徐々にモバイル デバイスに移りつつあります。最終的には支配するのでしょうか?

人気はあるが優先されていない

最近の TIOBE コミュニティ リストでは、JavaScript がすべてのプログラミング言語の中で 6 位にランクされており、その後も上昇し続けています。 TIOBE 方式のランキングでは、古くて成熟した言語が優先される傾向があり、トレンドを追うのが苦手です。対照的に、Redmonk のランキング方法では JavaScript が 1 位になります。 Redmonk のアプローチは、強力なオープンソース コミュニティを持つ言語にある程度偏りますが、同時に基本的に現在の傾向と関心を反映します。弊社独自の開発者経済概要によると、HTML5 と Javascript の組み合わせは、モバイル開発者によって使用される言語の中ですでに 2 番目に人気があり、ほぼ 55% が使用しています。ほんのわずかの差ですが、57% の人が Java を使用しています。ただし、HTML5 と Javascript の組み合わせが人々の間で好まれている選択肢であることがわかりました (19%) が、この分野では Java (29%) には大きく及ばなかったのです。これは今後数年間で大幅に改善されると思われます。 【どう思いますか?新しいアンケートを実施しましたので、チェックしてご意見をお聞かせください]

JavaScript はブラウザーで無料で利用できます

これは標準的な「オンラインで勝つ」という声明ではありません。私は、ブラウザーや Webview ベースのアプリケーションが最終的にモバイル デバイスを支配するとは思いません。使って増えても常態化しない。 Web 標準が本当に将来モバイルデバイスを支配することになるのであれば、Web 標準はドキュメント オブジェクト モデル (DOM) から始める必要があります。 DOM はアプリケーションを構築するための基盤ではなく、ドキュメントです。もちろん、最初はプラットフォームを中心としたドキュメント用のアプリを設計することもできますが、行き詰まってしまうでしょう。モバイル ブラウザーまたは Web ビュー用にかなり高性能なアプリケーションを設計できる現在のフレームワーク (React.js、Famo.us、および lonic) を見てみましょう。これら 3 つの共通点は、DOM の使用を最小限に抑えることです。

はい、WebGL (または HTML5 Canvas 必須) は多すぎますが、これらは低レベルの API です。必要なのは、ほとんどのアプリケーションを開発するための優れたプラットフォームを作成するための、大規模でおそらくマルチバイトの優れたフレームワークです。これは、最新のアプリケーション コードがリモート サーバー、特にモバイル環境でホストされる Web アプリケーション プログラミング モデルにはあま​​り適合しません。確かに、ローカルにある大きくて優れた WebGL ストア上にハイブリッド アプリケーションを作成し、リモート サーバーからアプリケーション固有のコードを取得するだけで済みます。しかし、なぜブラウザを使用するのでしょうか? JavaScript だけが、ハードウェア グラフィック アクセラレータにおいて他のクロスプラットフォーム フレームワークよりも優れているのはなぜではないでしょうか (ヒント: Qt は優れたフレームワークを提供しています)。高レベルの API では、言語間のブリッジングにそれほど多くのオーバーヘッドがかかりません。特定の機能へのアクセスに関して制限がない場合もあります。

この説明に適合する、非常に興味深い新しいオプションがいくつかあります。 React Native と NativeScript。これらは動作方法が異なりますが、どちらも JavaScript を使用してネイティブ UI を持つアプリケーションを構築します。 Appcelerator の TiNext も興味深いかもしれません。たとえバージョンがリリースされずに何年にもわたって多くの話題になってきたとしても、それを待って垣間見てみましょう。

JavaScript例外

Apple はモバイルにおける JavaScript の優位性を回復しました。ほとんどの開発者がモバイル上でアジャイルな Web スタイルの継続的配信モデルを採用することを妨げている主な要因の 1 つは、Apple によるコードのダウンロードの禁止です。反復モードでこの大幅な速度低下がなければ、比較テストははるかに困難になります。これが実際に意味するのは、開発者、特に初心者の学習が遅くなるということです。最近まで、Apple が JavaScript を Webview コード ダウンロード ルールの例外としたため、反復を高速化する唯一の方法は、まず Android から始めてハイブリッド アプリを開発することでした。最初のケースでは、アーリーアダプターのほとんどがプラットフォームから離れつつあることを意味します。残念ながら、2 番目のケースでは UX のトレードオフが大きすぎるため、ほとんどの開発者は、ユーザー アプリケーションの障害やローカルへの切り替えにより、その方法を採用しています。ただし、ios7 では、JavaScript を実行するための JavaScriptCore インターフェイスが追加され、最新の ios 開発者プログラム ライセンス条項では、コード ダウンロードの例外のルールが JavaScriptCore を含むように変更されました。

これはセキュリティの観点からは当然です。 Apple はランタイムを監査して更新できますが、サードパーティのランタイムにコードのダウンロードを許可すると、セキュリティ問題を効果的に監視できなくなります。 JavaScript は Apple の唯一のスクリプト オプションであり、コードをローカルにダウンロードすることを許可していないため、JavaScript は迅速に反復処理を行いたいユーザーにとっての唯一のオプションとして特権的な地位を取り戻しつつあります。 JavaScript の利用可能性は React や NativeScript などの取り組みを引き起こし、コードのダウンロード ポリシーに対する Apple の緩い管理は完全に宣伝されました。

オープンさが勝つのか?

ウェブ擁護者は時々、オープン性が常に勝つので、ウェブに基づくオープンスタンダードが最終的に勝つだろうと示唆することがあります。しかし、Linux は、委員会と連携した標準が存在しない、オープンで急速に進化するエコシステムの明らかな例です。 React、Facebook はオープンソース プロジェクトにおける開発者エコシステムを急速に構築しているようです。 React.js を中心とした委員会はすでに急速に成長しており、明らかに有利なスタートを切っています。しかし、Telerik の NativeScript チームは Google と協力しているため、Angualr 2.0 はシームレスに統合される必要があります。 Google は、Web 標準が非 DOM 環境に移行するかどうかに関係なく、非 DOM 環境をサポートするつもりです。 Microsoft と Google が将来のブラウザに実装する標準をサポートするには、長い時間がかかる可能性があります。しかし、両社は TypeScript に向けて協力しており、JavaScript を使用してそれほど複雑ではないアプリケーションを簡単に構築できるようにしています (型の不一致を見つける点では、コンパイラの方が人間よりも賢いことが証明されています)。

Apple は、新しい Swift 言語用に、特にインタラクティブなプレイグラウンドなど、非常に印象的なツールを多数構築しました。ただし、Facebook は、即時フィードバックと高頻度のオンザフライ コーディングに基づいて、React Native でより優れたコーディング エクスペリエンスを提供できた可能性があります。 Apple は今後もツールを反復していく予定で、開発者コミュニティはこれらの新しい JavaScript 環境ツールを追加しました。 Android は技術的にはオープンソースかもしれませんが、コミュニティ構築という点ではオープンではありません。 Google は独自に Android のプラットフォームとツールの強化に取り組んでいます。おそらく、勝つのはオープン開発者コミュニティであり、真にコミュニティベースのオープンソースは、オープンソース標準に基づいたオープンソースよりも高速に反復できます。この目的のために、「JavaScript を使用してネイティブ UX を構築する」環境と成功、そのようなプラットフォームは間違いなく失敗しません。アプリケーションは引き続き、プラットフォームのルック アンド フィールに基づいて、新しいプラットフォーム固有の API を使用して構築されます。

現時点では、Web 開発経験を必要とすることに加えて、ネイティブ プラットフォームの外観、操作感、パフォーマンスを備えたアプリを作成する、非常にオープンな JavaScript 開発者コミュニティが勝つように見えます。クローズド プラットフォームは過去に常に勝利を収めてきました。当時のアプリはクローズド エコシステムに合わせてカスタマイズする必要があったからです。今のところ、オープン Web 標準は依然として勢いを失いつつあります。モバイル ブラウザーのメーカーが、自社が作成するアプリでネイティブ アプリのエクスペリエンスを実現できる新しい標準に同意できれば、間違いなく勝利するでしょう。

何を使って作りましたか?

JavaScript がモバイル開発の将来を左右すると思いますか?それとも、Java、Objective-C、Swift が引き続きリーダーの地位を維持するのでしょうか?モノのインターネットに関しては、そのバックエンドは Node.js を超えるのでしょうか?アンケートに答えて、アプリの構築に何を使用しているかをお知らせください。


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。