すべてのユーザーがWindowsを使用しています。LinuxまたはMacを使用するものもありますが、使用する場合は、Mono、Wine、Parallels、デュアルブートなどを使用できます。
私の開発チーム(自分も含む)は、JavaでのSwingアプリケーションの作成と、C#でのWindowsフォームの作成の両方で幅広い経験を持っています。「広範囲」とは、両方のランタイムで3つ以上のアプリケーションを開発して出荷したことを意味します。アプリケーションはテクニカル分析アプリケーションであるため、データベースの相互作用は穏やかですが、カスタムUIとデータセットのサイズは重いです。
どちらをサポートするかが重荷になっているため、これからどちらのプラットフォームに焦点を当てるかについて本当に決定したいところです(Swingで半年間作業していると、面倒すぎます)再びWindowsフォームに慣れるために(そしてその逆))、私たちはチームの全員がすべてのアプリケーションで作業できるようにしたいと考えています。
- Windowsフォームは一般に、認識可能なWindowsアプリケーションを作成するために必要な作業が少なくなります。Javaのスキニングとカスタムコントロールの量は、長年にわたってそれを解決していません。同時に、Swingアプリケーションを使用できないお客様はいません。
- Javaは以前、ライブラリと自動ビルドツールの点ではるかに豊富なエコシステムを備えていましたが、急速に変化しています(Javaは低下しておらず、.NETが追いついているだけです)。
- マルチプラットフォームが好まれているまれなケースでは、Javaは.NETに勝るものはありません。Monoはすばらしいですが、それでもJavaよりも多くの作業が必要です。
.NETを選択すると、WPFに焦点を当て始めることができますが、F#の使用も開始できます。Javaを選択すれば、RCPに焦点を当て始めることができますが、Scalaの使用も開始できます。
誰かが同様の決定をしなければならなかったのですか?もしそうなら、それは何でしたか、そしてあなたに最も影響を与えたものは何ですか?私が見逃している最大の懸念はありますか?
(注意:Programmers.SEには同様の質問が既にいくつかありますが、それらは非建設的であるか、別の角度からです。)