2010-11-20 4 views
6

**この人物は、炎の戦争を始めるためのものではありません。 **言語コアの一部として新しい機能が追加された場合、既存のライブラリが消滅しますか?

言語で以前になかった同じ機能が言語の一部として提供されているときに、既存のライブラリが何らかの機能を実装することを理解しようとしていますか?例えば、まもなくC++はstd :: threadを言語標準の一部として使用するので、POSIXやBoost Librariesはどうなりますか?

私はまた、他のプログラミング言語のユーザーがこの点に関してどのような経験をしているのか理解したいと思います。

+0

POSIXスレッドはC++ライブラリに置き換えられません。これらはネイティブシステムコールです。他の言語やライブラリはUnix上でスレッドサポートを構築するためにそれらに依存しますが、Cプログラマはそれらを使い続けるでしょうし、C++コードでそれらを使って低レベルのシステム機能(特殊なNUMAシステムコール)にアクセスしたり、 。 –

答えて

2

C++ std :: threadは、ブーストスレッドに基づいて大きな部分にあります。だから、スレッドを後押しすることは決して実際には消えないでしょう。彼らは標準のC++ライブラリの中で生き続けます。 さらに、多くのプラットフォームでは、ブーストスレッドはposixスレッドをバックエンドとして使用するので、決して消えません。

+0

他の人に触発されているだけで同じことを意味するわけではありません。実際には、おそらく、std :: threadとboost :: threadの両方を含むプログラムのかなりの部分があるでしょう。しかし、ある時点で、boost :: threadのいずれかがcannedになるか、またはそれらを並列に保つことを決めます(下位互換性のために)。 – Tom

+0

... std :: threadへのアクセス権を持たないユーザーを無期限にサポートすると思います。どのブーストスレッドが本当に消えないのかは分かりません。 – Tom

9

新しいテクノロジの採用は一度も発生しません。コンパイラが新しい標準ライブラリのバージョンを実装している間に遅れがあり、そのコンパイラが開発者に到達している間にもう一度遅れが生じます。

私の最後の2つのジョブでは、10年以上経過しているVisual C++ 6とのやりとりが頻繁に行われています。改善されたモデルの場合は、作業コードから新しいモデルに移行することに大きな躊躇があります。

古いライブラリが死んでも、突然の大量絶滅ではなく徐々に陳腐化するプロセスを経ています。

ライブラリによっては、今後の標準では単に現在の関数のスナップショットがキャプチャされ、親ライブラリはC++ 1x、C++ 2xなどのインキュベータとして進化し続ける可能性があります。

-3

このようなことはまだ起こっていません。これまでC++には実装が1つしかありません。

+0

実際、ここでの実装は間違った言葉です。つまり、C++標準と草案のバージョンは1つだけです。 – milan

+0

元の投稿を編集してその情報を修正できます。 – jwueller

+1

nah、それは私がもっと意識的にタイプするように教えてくれるでしょう:) – milan

4

ライブラリの作成者は、ライブラリが言語内でのやり方と多少異なるため、ライブラリを維持し続けている場合があります。この違いによって、独特の利点が得られるか、根本的に簡単になります。どのような場合でも、それを見続けるのに十分なユーザーの願望がある場合、または著者が頑固である場合、それは維持され続けるでしょう。最終的には、利点が十分に大きくない場合、人々は言語で自然に来るものを使用します。

関連する問題