2009-03-14 6 views

答えて

3

はい、特に複数のプラットフォーム用にコードを配布する予定がある場合は、

たとえあなたがプラットフォーム開発をクロスしていなくても、将来的な防御の一形態です。今日、複数の(多様な)プラットフォーム上で稼働している場合、ベンダーXのQシリーズボックスの7.8.3クリーンインストール(パッチレベル1452)に特化して調整された、ピンセットされたものより将来のプラットフォームで動作する可能性が高くなります) 何もありません。

2

異なるコンパイラと異なるOSでバグを見つけて単純に防ぐのに利点があるようです。異なるCPUがエンディアンの問題を早期に解決できます。あなたはそのレベルでネイティブにしたい場合は、GUIレベルで痛みがあります。

+0

私はLinux、OpenBSD、Darwinで日常的にコンパイルします。私はまた、インテル、AMD64、およびSparc64で日常的にコンパイルします。顧客基盤がすべて1つのプラットフォーム上にあっても、発見されたバグや想定されていない仮定がまだ価値があります。 – dwc

1

短答:はい。

2つのシステムを正確に同じようにすることはほとんど不可能です。そのため、あなたはそうであってもいなくても、「異なるプラットフォーム」で動作することになります。特に、システムAがBのようなことをしないとすればどうなるでしょうか?あなたの問題の頭は、あなたのコードが作る主要な仮定を見つける可能性が非常に高いです。

これは、システムAで作業している基本コードの良い塊を取得してから、1日(または1週間または...)かかるようにして、システムBで動作させると言います。非常に教育的。

ソースレベルのCデバッガを100種類以上のU * NXに移植したところ、私の教育は80年代に戻ってきました。ギャック!

0

プラットフォームによっては、本当に恐ろしい開発ツールがあります。かつて私はIBで働いていましたが、Sunの猛烈なツールセットを使用するのではなく、PeoleはVC++でコードを開発してからSolarisに移植しました。

1

2つ以上のプラットフォームでアプリケーションを開発する利点はありますか?

これがプロダクションソフトウェアの場合、明白な理由はより大きなクライアントベースの誘惑です。クライアントが複数のプラットフォームをサポートしていることを聞いた瞬間に、製品の魅力が拡大します。ほとんどの企業では、単一のOSまたは単一のバージョンのOSを使用しないことに注意してください。 Windows、別のMac、そしてより小さなバージョンのLinuxを使ってセクションを見つけるのはかなり一般的です。

また、単一プラットフォームの製品をカスタマイズすることは、マルチプラットフォームで実行するよりもはるかに面倒であることが分かります。あなたが知る前でさえ、衰退の法則がキックを起こします。

もちろん、クライアントの独自のハードウェア用に既存の製品のカスタマイズ作業を行っている場合、これはほとんど意味がありません。しかし、それでもクライアントがレパートリーに持つハードウェアの全範囲に注目してください。いつ彼がそれを求めるかもしれません。

同じプラットフォームでも別のコンパイラを使用すると利点がありますか?

はい、もう一度。コンパイラごとに異なる拡張機能が実装されています。特定のコンパイラの特定のバージョンに依存していないことを確認してください。

さらに、コンパイラ自体にバグがあるかもしれません。複数のコンパイラを使用すると、これらを整理できます。

私は、2つの異なるコンパイラを使用して(クロスプラットフォーム)製品のビットを見てきました.1つは浮動小数点操作が非常に高い精度を必要とするモジュールで使用されていました。 (他の誰かが聞いたことがあるうちに...)

1

私はもともとWin32という大きなC++プログラムをLinuxに移植しました。それほど難しいことではありませんでした。当時のMS C++コンパイラは様々な形で非準拠であったため、コンパイラの非互換性を主に扱っていました。私はその問題が(C++ 0xの機能が徐々に現れるまで)ほとんどなくなったと思います。シンプルなプラットフォーム抽象化ライブラリを作成して、プラットフォーム固有のコードを1か所に集約します。それは、あなたが新しいプラットフォームで模倣するのが難しいOSのサービスにどれだけ依存しているかによって異なります。

移植性を根底から構築する必要はありません。そのため、「移植」は、最も重要なプラットフォームで初期リリース後にワンショットで実行できるアクティビティとして記述されることがよくあります。あなたは最初からそれを連続して行う必要はありません。純粋に経済的な理由から、決して恩返しできない仕事を避けることができれば、明らかにすべきです。後で、本当に必要なときに移植するコストはそれほど悪くないことが分かります。

1

ほとんどの場合、アプリケーションが(個のソフトウェア)用に書かれている既存のプラットフォームがあります。しかし、あなたが独立した言語を提供することを決めた場合、より多くの開発者(両方のプラットフォーム)に対応してください。

彼らは異なるプラットフォーム上で実行する場合にも中小企業のための製品(標準ソフトウェア)はよりよく販売することができます!あなたは両方の市場へのアクセスを得ることができます、WIN & LINUX! (およびMacOSxなど...)

大企業は、主に製品ベンダーがサポート/認定しているハードウェアを購入し、特定の製品を展開するだけです。

1

複数のプラットフォームで同時に開発する場合、異なるツールを使用できるという利点があります。たとえば、私は一度メモリを上書きしていました(私はnullバイトのために+1が必要ないと私はまだ誓っています)。私はWindows上でコードを実行して、Rational Purifyを使って約1分で上書きを見つけました...それはLinux上で私を追跡している週でした(valgrindがそれを見つけたかもしれません...しかし、私はそれは当時)。

同じプラットフォームまたは異なるプラットフォームの異なるコンパイラは、それぞれのコンパイラが異なることを報告する必要があります。あるコンパイラからのエラーについてのレポートは不安定ですが、他のコンパイラでは非常に明確になります。

開発中に複数のデータベースのようなものを使用すると、特定のデータベースに縛られる可能性が非常に低くなります。理由があればデータベースを交換することができます。たとえば、SQL Serverを使用する既存のインフラストラクチャにOracleを使用するものを統合したい場合、OracleまたはSQL Serverの一部を他のシステムに移動することができれば、それは本当に吸うことができます(3つの異なる場所彼らの金融システムのためのデータベース... ick)。

一般に、2つまたは3つのものを常に開発するということは、間違いを見つける確率が高いことを意味し、システムの柔軟性がより高いというオッズが優れています。

一方、すべての時間と労力を要するため、即時に不要な費用と見なされます。

関連する問題