Author: h.mohri
この記事は、DAVID MILLINGTONによるWhy create mobile apps in C++の抄訳です。 |
モバイル開発には、Swift、Objective C、Java、Kotlin、Delphi、C#、C++など、さまざまな言語が使用されています。 C++
を選択する理由は何ですか?
表現力、簡潔さ、パフォーマンスの3つの軸に沿った言語を考えてみましょう:
エクスプレッシブ
な言語を使用することでコードを強力なコンセプトで簡単に記述する。
それは便利な方法でデータを操作するのは簡単です。この場合のデータとはアプリが使用する変数であり、強力な方法で操作する(non-trivial)ことを意味し、そのデータを変化させるのか、それとも単に操作するのかということです。コンサイス
な言語で、素早く表現する。タイプレス。実装するキーストロークが少なくて済むようなクリアで読みやすく理解しやすい、画面上のスペースが少ないことです。- 高速にコードコンパイルできる
パフォーマンス
とその言語のデザインメイクは最適化されたコードを簡単に記述することができる
C++
は言語の中で異常な位置を占めています。それは強力です:コードはエクスプレッシブ
、コンサイス
、パフォーマンス
を同時に実現できます。珍しいです。他の言語ではエクスプレッシブでコンサイスのないものやパフォーマンスがないもの、パフォーマンスは良いがローレベルでアンエクスプレッシブで複雑なビヘイビアを記述するためには多くのコードが必要になるなどの問題がありました。
最後に、C++
で書かれた多数の有用なライブラリがあります。JSONから高速フーリエ変換や線形代数、画像処理、データ認識からグラフィックスまでの計算など、アプリの基本からそれを行うためのC++コードがあります。
したがって、C++は開発者が速く実行でき、良好なデータ操作を可能にし画面上で簡潔なものを求めている場合の選択肢です。また、サードパーティ製のライブラリを使用する場合にも使用されます。ゲームに使用されるC++:パフォーマンスが必要でコード量が多くやたくさんの共通ライブラリをプルしています。主要なデスクトップアプリケーションにも使用されています。:パフォーマンス
、多くのコード、通常利用しないデータ(エクスプローラはファイルやCOMオブジェクトで面白いことを行います。Wordはテキスト、レイアウト、参照などを操作)
モバイルアプリにとって重要なのは何ですか?
モバイルアプリの開発には、ティピカルなデスクトップやサーバーアプリの開発とはいくつかの重要な違いがあります:
- エネルギーの使用は重要。 アプリ利用者はバッテリー食いのアプリをアンインストールします。
- パフォーマンスは重要。最近のトップエンドなスマホとタブレットにはまともなCPUが搭載してますが、モバイル電源ではまだ制限されています(必要以上に多くのサイクルを費やしたくない)それに世界中の膨大な数のスマホは、より低い仕様のハードウェアを使用しています。
- 非常に異なるUI
UIは必ずしも言語と結びついたものではありません。(C++Builderは、クロスプラットフォームUI用の優れたUIツールがあり、C++
を使用するベネフィットを失うことはありません)。
その他、深く検討できる2つ価値、両方のポイントは同じことでもあります:同じ動作でCPUサイクルを少なくする方が良いでしょう。ユーザーにとってよりベターです。なぜなら、彼らのアプリはより高速処理しているからです。 エネルギーを低消費できるデバイスの方が優れています。 モバイルデバイスには、常に最適化されたコードが必要です。
では言語の選択する意味は?つまり、ネイティブに最適化し実行される言語が欲しいということです。もちろん、最適化されたコードを簡単に記述できる言語が必要なことを意味します。エクスプレッシブ
とコンサイス
に戻ります:強力なコンセプトをターゲットデバイス上で高速に動作する小さなクリアコードで記述できます。
それはC++
です。
関連情報