Java(frameworks/ECO system etc))ですべての.net開発者をトレーニングする新しいプロジェクトを開始します。C#で記述された多くのコードがあり、これはすべてJavaで書き直す必要があるので無駄になります。私が目にする問題は、最初の1年程度(おそらく2年)は、ほとんどの時間を私たちが持っていたものを再現するのに費やすので、何も提供できないということです以前はJavaでした。
私たちのチームは世界中のさまざまなオフィスに分散しており、Java開発者(20から30))と.netを使用する10人の開発者がいるため、すべての開発者にコンポーネント/モジュールの再利用を開始できるように、同じ言語/プラットフォームなので、管理の観点を理解することができます。
昨日、私はScalaに出会いました。現在の製品(C#で記述されています)でこれを使用する方が良いのではないかと思っていました。少なくとも1年間で実用的な製品ができます。また、1年後には、Java=世界で使用できるモジュールがあり、製品の他の部分を移行しています。
Scalaは、Javaよりも良い選択でしょうか?
考慮すべきいくつかのポイント:
これらすべてを考慮して、賭けをヘッジして、混合Java/Scala戦略に進むことができます-つまり、JVMプラットフォーム、および最初はJavaに焦点を当てますが、使用するオプションを開いたままにしますScala開発者が快適であるか、またはそれが手。
管理の観点から、これには多くの利点があります:
欠点は、サポートする主要な言語がまだ2つあることです。しかし、おそらく実際には2つ以上(シェルスクリプト、ドメイン固有のXML形式、構成ファイル、ルールエンジン、HTML、Javascriptなど)を既に持っているので、それほど大したことではないと主張できます。
3番目のオプションを追加します。組織内の誰かがC#とJavaモジュールの相互運用性を確認しました。C#機能をどのように公開していますか?SOAPまたはRESTFul Webサービスはオプションですか?
2年間の書き直しは、組織にとって死刑になる可能性があります(Netscapeに質問してください)。ただし、既存のコードが相互にうまく機能する段階的な移行は、ビジネスへの影響が少ない可能性があります。
C#をScalaに書き換えるのは、Javaに書き換えるのと同じくらい難しいでしょう。どちらの言語が「優れている」かというと、その点は意味がないので、各言語には独自のプラス点とマイナス点があります。
私のコードベースがどれほど大きいかはわかりませんが、30人の開発者が2年間いると、単純な書き換えで巨大に見えます。ピックアップJava C#が簡単だとわかっている場合。C#に慣れるまでに1〜2日かかりました。
私のアドバイスは、管理を成功させ、あなたのスキルセットを拡大するためにあなたが支払われるという事実を楽しむことです。
簡単なオプションは、Java開発者にC#を学ぶことです。両方の言語は多くの点で非常に似ており、Java開発者がC#を選択しました。私は多くのJava C#を学んだ開発者と協力してきましたが、通常はスムーズな移行です。しばらくの間立ち往生する可能性がある領域の1つは、 WebFormsプログラミングモデル。Java開発者はMVCパラダイムに適応します。このようにすると、新機能の開発を開始する前に1年待つ必要がありません。Scalaに関しては、新しい言語を学ぼうとする30人の開発者全員にまったく新しい問題をもたらします。