クロスプラットフォームのC ++コードを書くことはそれほど簡単ではありません
まったく逆です。クロスプラットフォーム作業を計画し、使用するプラットフォーム固有のAPIの抽象化を提供する場合、コードの大部分はすでにクロスプラットフォームです。Boost、Qt、NSPRなどの人気のあるライブラリを既に使用している場合は、すでにクロスプラットフォームビルドが機能していることに近いでしょう。
開発サイクルの後半に移植を行うときに最もよく発生する問題は、プログラムの一部にプラットフォーム固有のAPIに依存するコードの重要な部分があり、直接使用する必要がなく、おそらくまったく使用すべきではないことです。(優れた設計ではモジュールが強力に分離され、クラスのグループは自由に書き換えられた置換と交換できます。これが特定のモジュールに当てはまらない場合は、強力なコード臭です。)
簡単な解決方法は、多くの場合、「ユーティリティ」クラスを記述し、そこにプラットフォーム固有のものをすべて投げ込むことです。それは「簡単で痛みがない」わけではありませんが、あなたが思っているほど難しくはありません。
多くのディストリビューションパッケージを準備して、Linuxのすべての普及バージョン用に維持するには時間がかかります
これは残念な誤解です。複数のプラットフォーム用のビルドを維持するには追加の労力が必要になるのは事実ですが(専用の毎日のビルドサーバーを設定し、特定のディストリビューション用にパッケージ化する方法を学習する場合)、 ]。」まったく逆です。ほんの一握りのパッケージ(たとえば、Ubuntu、Fedora、および単一のLSB互換tarball)を維持するだけでよく、さまざまなLinuxコミュニティが残りの作業を引き受けます。特に、お使いのソフトウェアが人気がある場合、HOWTOはすべてのディストリビューションで発生し、必要なセットアップ手順を提供します。または、ソフトウェアを自由に配布できる場合(無料の製品でなくても実行できます)(ライセンスで許可されている場合)、より人気のあるディストリビューションには、ソフトウェアのコピーを保持する何らかの代替リポジトリがあります。
コミュニティは一般にこれについて非常に優れており、経験豊富なユーザーは、許可すればあなたのためにこのレッグワークの多くを喜んで行います。
私たちの推定では、Linux市場は全ユーザーの5〜15%程度であり、それらのユーザーはおそらく私たちの努力にお金を払いたくないでしょう。
別の不幸な、そして非常に誤った誤解。
Linuxユーザーがオペレーティングシステムを無料で入手したからといって、ソフトウェアにお金を払わないというわけではありません。ソフトウェアは非常に良好であり、そのための幅広い需要があれば、Linuxユーザは、多くの場合になりますより多くのあなたのWindowsユーザーがなるよりも、自分のお金で一部に喜んで。Humble Indie Bundlesを見てください。Linuxユーザーは、Windowsユーザーに比べて平均してユーザーあたり2倍以上の支払いをしています。
また、その分野にある既存のソフトウェアの種類によっては、製品が他のプラットフォーム(Linuxの製品を知らないとわからない)よりもLinuxユーザーの間で大きな需要がある可能性があります。あなたが思っているよりも大きな潜在的な市場があるかもしれません。