15年前にJavaがまだ初期段階にあり、これらの種類のアプリの作成に使用する準備ができていなかった15年前に、デスクトップアプリからシステムを構築しました。C ++にコアが必要であることを知っていて、Mac、Windows、UNIX(pre-Linux日々)。
優れたクロスプラットフォームUI環境を探したときに、XVTを含むものがいくつかありました。XVTのトレーニングを経験しましたが、実際のアプリの作成を開始したときに、プラットフォーム(Mac以降)でクリーンでネイティブなルックアンドフィールを作成することができないことに気付きました。そこで私はその考えをあきらめて、ポータブルコアの上にネイティブMac(PowerPlant)UIを構築しました。
数年後、Windows(MFCのUI)に移行しました。2回目にUIを構築する方が速く、MacとWindowsのUIを短時間並行して維持し、その後Windowsに移行しました。コアはその後、さまざまな種類のUNIXおよびLinuxに移行し、サーバーベースの計算を実行できるようになりました。コアは適切に移植され、64ビット対応にしたときにいくつかの調整が行われました。
Macを使用するようになりましたが、Macに戻れることを願っていますが、アプリのサイズと複雑さのため、これは難しい選択です。このアプリの多くがデスクトップアプリであることに意味はあります。これはCAD環境のようなものです。しかし、プラットフォーム固有のC / C ++言語でUIを再度構築する(そしてMFCベースのUIを維持し続ける)のではなく、スタック全体をJavaで書き直して、複数のプラットフォームで実行できるようにする傾向があります。
Java以外のコアを実行する理由がまだある可能性があります。たとえば、C ++の場合と同じです。しかし、それが本当に必要かどうかを確認するために、初期のパフォーマンステストを実行したいと思います。そして、UIを注意深く調べて、それをWebアプリとして構築し、Webサービスを介してコアに接続できるかどうかを確認して、さまざまなクライアント(デスクトップアプリ、モバイルアプリ、Webアプリなど)を用意できるようにしました。 CまたはC ++で作品が必要な場合、それをJavaのレイヤーの下に書くことができますか?またはウェブサービスとして?
別の考慮事項-アプリはどのくらいの期間存在しますか?それはどれほど複雑になりますか?これについて何か考えがある場合は、使用しているUIライブラリの寿命の可能性と、長期にわたって人々にライブラリの保守を手伝ってもらう能力を検討してください。これは今考えるのは難しいかもしれませんが、考える価値があります。
-アレックス