質問

開発ツールでのアップグレードを検討している場合、後方互換性はどの程度重要ですか?ソースコードを大幅に変更する必要がある場合、Visual Studio 2010を引き続き購入しますか?新機能との後方互換性の観点から、あなたにとっての転換点はどこですか?

役に立ちましたか?

解決

開発者の観点からこれを尋ねましたが、開発するソフトウェアに関してはもっと興味深い質問になると思います。そこで、代わりにその質問に答えます。 :)

下位互換性のある(さらに重要なことに、将来互換性のある)ハードウェアとソフトウェアは、特にWindowsのようなプラットフォームを購入またはアップグレードするときに、ユーザーに安心感を与えます。 Windowsは、後方互換性に細心の注意を払っていることで知られています。 10年以上前に書かれたプログラムは、「よく書かれた」ものであれば、わずかな問題でWindows Vistaで実行できます。 (つまり、文書化されていないAPIを使用しないでください)。

一方、新しい機能を導入したりプラットフォームに革命を起こそうとするときは、後方互換性に厳密に注意を払うと手を縛られる可能性があります。 Appleは死にかけているOSを持っていることを知っていたので、最も大胆な動きの1つで、NeXTを購入し、NeXTSTEPを新しいMacOSにすることにしました。移行で人々を売った重要なものの1つは、下位互換性のあるレイヤーClassicです。 AppleがIntelチップに切り替えることを再び決定したとき、Rosettaと呼ばれるIntelでPowerPCアプリを実行するメカニズムは、Universal Binariesと一緒に、アプリケーションの損失を恐れることなく、PowerPCとIntelの間を自由に移動できるようにしました。

興味深いことの1つは、Intelへの移行によりClassic環境がなくなったことですが、Mac OS 9から移行するために過去5年間あったため誰も気にしません。したがって、最終的にレガシーシステムのサポートをやめることができます。新しいシステムに簡単に移行でき、ユーザーに十分な時間を与えることができます。

他のヒント

開発ツールで、以前のコードとの完全な下位互換性が提供されない場合、私はそれを購入しません。率直に言って、意味はありません。ソースコードを自分に合った実行可能コードにビルドするコンパイラが既にある場合は、それを使用します。なぜ標準ではなくツールメーカーにとって明らかに一致するものに準拠するようにコードを変更する必要がありますか?あるバージョンから別のバージョンへのソースコードの変更を強制する場合、次のバージョンとの互換性を確保するのはなぜですか?

ソースとの100%の後方互換性が必要です。これが完全な要件ではない唯一の状況は、互換性のないビットが拡張である場合です。つまり、Eclipseプラグインなど、ツールに固有のAPIの変更です。それでも、互換性が欲しいのですが、完全に期待することはできません。ただし、ベースアプリケーション/ツール開発用のAPIを提供し、互換性を維持するために煩わされることがない場合;さて、あなたは明らかにあなたのツールに真剣ではありません、そして私はそれらに真剣なお金を払うつもりはありません。

ホームプロジェクトの場合、後方互換性は本当に重要ではありません。オフィス/企業にとって、それは絶対に重要です。

サポートする必要がある環境と、互換性がある場合とされていない場合に使用されるサードパーティツールによって異なります。

たとえば、私が働いている場合、SQL Server BIツールはVS2008と互換性がないため、BIグループを除き、VS2005からVS2008に全員をアップグレードしました。更新されたら、VS2008にアップグレードしました。

VSを具体的に見るとき、VS2008は.NET 2.0、.NET 3.0、および.NET 3.5をターゲットにできることに注意してください。秘Theは、実際に.NET 2.0 SP1および.NET 3.0 SP1をターゲットにしていることを認識することです。そのため、IDEをアップグレードする際にコードを変更する必要はありません。

Genrealでは、他の多くのユーザーが自分の製品を構築するために絶えず使用するプラットフォームを開発しており、長期間アプリケーションを開発することを計画している場合は重要です。 PHP、Python、Eclipse、および後方互換性を重視する他のオープンソースプロジェクトをご覧ください。また、n層アーキテクチャで使用されるサービスまたはその他のオープンAPIを開発する場合にも重要です。サービスを変更すると、企業内のすべてのアプリケーションが常に中断する可能性があります。

今、シュリンクラップアプリケーションまたはビジネスアプリケーションを構築する場合、それほど重要ではありません。各バージョンがその前身とは別個であるためです。

ソフトウェアおよびハードウェアの分野では多くの変更が行われているため、ソリューションの設計中に新しい変更やより優れたツールを受け入れることをお勧めします。たとえば、90年代にはマルチコアプロセッサとハイエンドグラフィックスカードやネットワークカードがなかったため、当然、コンパイラとツールの最適化の目標は異なっていました。しかし同時に、古いフレームワークとアプリに対応するために、ツールのような ビジュアルスタジオ が最善を尽くしています。

より良い世界を楽しみにしているのであれば、この業界が超成熟するまで、絶え間ない変化を受け入れなければなりません。 (しかし、私たちの人生では起こらないかもしれません:))

「重要な変更」を定義します。慎重に作成された" search&置換"たとえ広範であったとしても。

ただし、それは I が行うことです。私が働いていた会社は、既存のコードへの変更を拒否します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top