マルチプラットフォームのデスクトップアプリケーションを作成する方法は? マネージャーの見解

今日、ほとんどのアプリケーションの作成者は、1つのプラットフォームでリリースする余裕がなくなりました。 アーリーアダプターはポピーの下に、メインストリームはWin32の下に、そしてオタクやオープンソースの支持者はLinuxを好みます。 これらの対象者にはそれぞれ固有の特性があるため、ほとんどのプロジェクトにとって重要です。



この記事は、マルチプラットフォームのデスクトップアプリケーションを作成する価値があるかを把握するためのオープンな試みとして考案されました。 そのようなアプリケーションを作成した経験のある人を招待して意見を述べてください。



最初に、さまざまなプラットフォームを評価する基準を定義します。 まず第一に、これはユーザーの利便性です。 さまざまなプラットフォーム向けに作成されたアプリケーションの一般的な機能に気づいたと思います。 2番目は、プロジェクトの利益です。 私の仕事は、さまざまなツールで遊ぶのではなく、成功するビジネスを構築することです。



研究の範囲を指定しましょう。 私のアプリケーションは、インターネットからファイルをダウンロードする「ティーポット」ユーザー向けの小さなユーティリティです:最小限のGUI、機能の小さなセット、外部C ++ライブラリの使用。



さあ、始めましょう。 オプションは何ですか? Java、C#、C ++、Pythonについて説明します。 他の選択肢について教えていただければ嬉しいです。



Java

この言語/環境は、もともとマルチプラットフォームのものとして考えられていました。 Javaは多数のアプリケーションを作成しており、Eclipseのような大規模プロジェクトはこの特定のフレームワークを使用しています。



ユーザーの観点から見たJavaの大きなマイナス点は、フレームワークをインストールする必要があることです。 これは、Flashプレーヤーをインストールするよりも確かに難しく、多くの場合、苦痛になります。 インストーラーのサイズ(80 MB以上をダウンロードしました)と名前の絶え間ない混乱(JRE、J2SE、JDK、JVMなど)は、Javaアプリケーション開発者の手に渡りません。



学習曲線は、ウイルスの進歩をもたらすプロジェクトにとって重要です。 ユーザーの30%がJavaマシンをインストールできない場合(ダウンロードの遅延、不快なサイト、「後で」延期、...)-競合他社のハンディキャップは30%になります。 私のプロジェクトが失うわけにはいかないユーザーのこの大きなシェア。



使用していたすべてのアプリケーションは、「ネイティブ」Win32インターフェイスを使用していませんでした。 開発者が何によって導かれたのかわかりませんが、エンドユーザーの観点からは、これはあまり見栄えがよくありません。



アプリケーション例 :Eclipse、ZDE、Gnutella Limewireのクライアント。

長所 :マルチプラットフォーム、多数のフレーム、フレームワークの開発。

短所 :フレームワークをインストールする必要性、GUIの湾曲、パフォーマンスの低下。



C#

C#言語と.NETプラットフォームは、Microsoftの管理下にあり、マルチプラットフォームでは決して尊重されていません。 この言語は開発者に暖かく受け入れられ、Monoプロジェクト愛好家はLinux / Unix / Mac Os Xのフレームワークの類似物を作成しました。



同様に、Javaでは、C#のアプリケーションには大きなマイナス点があります-フレームワークをインストールする必要があります。 私自身は、このフレームワークを必要とするいくつかのアプリケーションのインストールを拒否しました。 上級ユーザーはさらに要求が厳しくなります。



残り-私の意見では、堅実なプラス。



アプリケーション例 :?

長所 :マルチプラットフォーム、多数のフレーム、良好なパフォーマンス、フレームワークの開発。

短所 :フレームワークをインストールする必要があります。



C ++

老人は私たちの時代に達し、気分がいいです。 LinuxおよびWindows用の多くのアプリケーションは、まだこの言語で書かれています。



C ++で書かれたプログラムは、配布サイズとシステムリソース(プロセッサ、メモリ)の経済的な使用という点で他の例です。 それにもかかわらず、開発者はC ++について多くの不満を持っています。 私の意見では、言語は「時代遅れ」であり、その人気はTIOBEインデックスによって証明されるように減少し続けます



プロジェクト開発の観点から見ると、RubyやPythonなどの動的インタープリタ言語と比較すると、この言語での開発はプロジェクトを変更する速度が遅く、コストが高くなる可能性があります。 アプリケーションのパフォーマンスを気にしないスタートアップにとって、これは大きなマイナスになる可能性があります。



:Firefox ,? ..

長所 :優れたパフォーマンス、多数のフレーム、多数のライブラリ。

短所 :低開発速度。



Python

MusicBrainz Picardを使用して、Pythonをデスクトップアプリケーションのプラットフォームとして見ました。 スクリプトの性質にもかかわらず、Pythonはユーザーが追加のコンポーネントをインストールすることなく、単一の.exeファイルに簡単にコンパイルできます。



小さなアプリケーションを開発する場合、Pythonのようなインタープリター言語は大きなプラスになります。 書きやすさと高速なアプリケーションの変更は、スタートアップにとって便利です。



さまざまな「ファッショナブルな」技術の大きな欠点は、それらの分布が低いことです。これは、有能な人材を見つける際の深刻な問題を意味します。 プログラマーを探している状況は非常に嘆かわしいものであり、私たちが狭い言語に私たちを制限すると、だれも見つけることができません。 一方、最も進歩的な開発者には、新しい言語に切り替える勇気があります。 「有望な」言語を選択すると、すぐに数百万人の中流農民が断ち切られ、有望な開発者を何人か選ぶことができます。



:MusicBrainz Picard、オリジナルのBitTorrent。

長所 :開発と変更の高速化、CおよびC ++ライブラリとの良好な統合。

短所 :フレーム数が少なく、生産性が低い。



結論

残念ながら、上記のプラットフォームには長所と短所があり、明確な解決策は見つかりませんでした。 今日それらのいずれかを選択すると、長所と短所がもたらされ、プロジェクトに与える影響は明日のみになります。



今のところ、C ++とPythonを選択しています。 1つ目は、既知の欠陥がある「信頼できる」ソリューションです。 2つ目は「危険」ですが、面白くて有望です。 あなたのフィードバックが最終的な選択に役立つことを願っています。 私の代わりにどのプラットフォームを選択しますか?



PS。 現在、このスタートアップ(C ++ / python / php)でプログラマを探しています。したがって、興味がある場合は履歴書を送信してください。



All Articles