問題タブ [compatibility]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
api - API の開発: 新機能と後方互換性のバランス
現在、製品の開発者向け API機能に取り組んでいます。
最初のバージョンがリリースされ、現時点では少数のユーザーしか使用していません。2 番目のバージョンの開発を開始して以来、API をよりエレガントで明確にするために、いくつかの部分が作り直され、いくつかの部分が削除されました。
ただし、2 番目のバージョンの展開は、古いバージョンのユーザーにとっては苦痛になる可能性があります。当社のマーケティング部門は、API 製品を大幅に強化し、機能を追加することを計画しています。
1)
新しい興味深い機能を追加するために「古いバージョン」に制約されないようにするには、どのようにシステムを構築すればよいでしょうか?変更された API
それとも、仕様に大幅な変更がないように、公開リリース前にかなり長い期間、サンドボックスで API 製品をテストする必要がありますか?
java - Java32ビットと64ビットの互換性
32ビットJDKに対してビルドおよびコンパイルされて32ビットバイトコードに変換されたJavaコードは、64ビットJVMで機能しますか?または、64ビットJVMには64ビットバイトコードが必要ですか?
もう少し詳しく説明すると、32ビットJVMを実行しているSolaris環境で動作していたコードがありますが、JDKとWeblogicServerを64ビットにアップグレードした後に問題が発生します。
windows-xp - XP ボックスで NT 4.0 用の Target Designer を実行できますか?
Windows XP システムで Microsoft Windows NT Embedded 4.0 Target Designerを実行しようとしていますが、ビルドしようとするとエラーが発生します。これをやったことがありますか?もしそうなら、それを機能させるための秘訣はありますか?
Microsoft からこれまでに見つけた最良の手がかりは、開発システムのハードウェア要件ドキュメントに「Windows NT 4.0 Service Pack 4 以降」が含まれていることですが、XP が NT 4.0 に対して有効な「以降」と見なされるかどうかはわかりません。 .
Windows NT 4.0 または Windows 2000 互換モードで Target Designer を実行してイメージをビルドしようとすると、レジストリのビルド中またはコンポーネント パラメータの追加中に次のエラーが発生します。
XPで通常どおり実行すると、レジストリの構築/ネットワークのバインド中に発生するエラーは次のとおりです。
visual-studio-2008 - Visual Studio 2010には、Visual Studio 2008のアドインとの下位互換性がありますか?
Visual Studio 2008には、失いたくない本当にすばらしいアドインがいくつかありますが、VisualStudio2010ではMEFが使用されると聞いています。踊っているバナナに別れを告げることができるということですか?
linux - 64 ビット OS で開発する利点はありますか?
私はそれを正しく理解しているかどうかわかりません.64ビットOSは、同じシステム上で32ビットOSよりも速くコードを実行/コンパイルしますか?
私は 64 ビット OS を使用していますが、レガシー ソフトウェアやプロプライエタリ ソフトウェアとの互換性の問題のみが発生するようです。(Ubuntu 9.04 Jaunty amd64 を実行しています)
assembly - 市販のアプリケーションが Intel プロセッサと AMD プロセッサの両方で動作するのはなぜですか?
私が理解していないことの 1 つは、Intel CPU 用にコンパイルされたコードが AMD CPU でどのように機能するかということです。
私の基本的な理解は、たとえばCコードをコンパイルすると、コンパイラはソースコードを特定のプロセッサ用の命令を持つ機械語に変換するということです。そのため、アプリケーションで使用するプラットフォームに合わせてコンパイラでコンパイルする必要があります。AMD 対 Intel 用のコンパイラが必要で、特定のプロセッサ用のソフトウェアを購入する必要がないのはなぜですか?
私は、AMD プロセッサと Intel プロセッサが古い x86 命令である程度の互換性を共有していることを知っています。私が知りたいのは、彼らがそれをどのように行うのかということです? つまり、AMD や Intel がお互いに電話をかけ合って企業秘密を話し合っているわけではないのに、どうすれば互換性のある命令セットを作成できるのでしょうか?
すべての互換性はまだ 386 命令セットに基づいており、「IF AMD CPU なら、これを ELSE IF INTEL なら」などのステートメントがたくさんありますか?
linux - Linuxでのj2EE/Flexの開発プラットフォーム?
職場では、すべてのラップトップに対してビスタを実行しています。あまり好きではありません。ライセンス(およびお金)の問題があるため、XPはオプションではありません。仕事が終わったので、上司とチームは何でも大丈夫です。
だから私は自分の開発プレートフォームをLinuxに切り替えたいと思っています(私はどちらを気にしません)。
問題:AdobeFlexで何かを構築しています。そして、私はカップルフレックス/リナックスのためにたくさんの悪いことを読んだ。
私の質問:Eclipseとflexbuilderプラグインを使用して、LinuxでFlex /J2EEアプリケーションを大きな制約なしに開発できますか?(または少なくともeclipse + flexSDKコンパイラ)
アドバイスありがとうございます。
c++ - Boost を使用した下位互換性のある ABI を持つライブラリの作成
特定の C++ ライブラリ (またはそれ以上のフレームワーク) に取り組んでいます。API の互換性だけでなく ABI も維持しながら、以前のバージョンとの下位互換性を持たせたいと考えています (Qt の素晴らしい仕事のように)。
私は Boost の多くの機能を使用していますが、ユーザーにまったく同じ (場合によっては古い) バージョンの Boost を強制的に使用させない限り、下位互換性が不可能になっているように思えます。
Boostのユーザーバージョンとの干渉を防ぐために、名前空間の周りに「プレフィックス」を作成/名前を変更する方法はありますか(Boostの1/2を書き換えずに)?
たとえば、私の libXYZ は Boost 1.33 を使用しており、 class がありboost::foo
ます。バージョン 1.35 ではバージョンboost::foo
アップと新しいメンバーの追加が行われたため、boost::foo
1.33 および 1.35 からは ABI に対応していません。そのため、libXYZ のユーザーは Boost 1.33 を使用するか、Boost 1.35 で libXYZ を再コンパイルする必要があります (XYZ がコンパイルしない方法で API が壊れている可能性があります)。
注:動的リンクが静的リンクに似ている ELF を使用する UNIX/Linux OS について話しているため、シンボルが干渉するため、2 つの異なるバージョンのライブラリとリンクすることはできません。
私が考える適切な解決策の 1 つは、Boost を他のプライベート名前空間に配置することです。そのため、libXYZ は::XYZ::boost::foo
の代わりに使用し::boost::foo
ます。これにより、ユーザーが使用する可能性のある他のバージョンの Boost との衝突を防ぐことができます。
そのため、libXYZ は引き続き Boost 1.33 で動作し、静的または動的に他の名前空間にリンクされます。
- Boost API を外部に公開しません。
- 公開された API の安定したプライベート バージョンを保持します。
Boostでそのようなことを行う方法はありますか?
編集:最後に、ソース内のすべてのブースト シンボルの名前をカスタム シンボルに変更するスクリプトを作成することにしました。
根拠: コンパイラの可視性のサポートとは無関係に、ビルド プロセスを簡素化します。また、可視性は動的ライブラリでのみ機能し、静的では機能しないため、ライブラリの種類ごとに個別のビルドと依存関係が必要です。
スクリプトはhttp://art-blog.no-ip.info/files/rename.pyで入手できます。
編集 2: Boost BCP の最新バージョンは名前空間の名前変更をサポートしています。
windows-vista - WinXP App Vistaと互換性を持たせるのにどのくらい時間がかかりましたか?
「あなたが尋ねている質問は主観的であるように思われ、閉じられる可能性があります。」
はい、これは主観的な質問です。
答えはありません。
自分だけなのかと思っただけです。
それで...それは苦痛でしたか?
コメントを聞きたいだけです。
ジャグ
PSもちろん、それはすべてアプリのサイズ、それが書かれた言語、良いまたは悪いプログラミングの習慣などに依存します...
sql-server-2005 - SQL 2005 と 2008 の間の既知および「未知」の非互換性?
いつものように、アプリケーションを最新の sql バージョンに移行するのに問題はないと思います...
しかし...
しかし...
しかし...
念のために言っておきますが、厄介な非互換性の問題に遭遇した人はいますか?
(たとえば、2000 年から 2005 年に移行した後、SQL 6.5 サーバーにリンクしていたサーバーの 1 つが機能しなくなったことを覚えています)