2010年06月03日
GCCの開発にC++の使用を許可
gcc-in-cxx ブランチが 2009 年 6 月より動きが無く、GCC での C++ の使用はこのまま無かったことになりそうだなと思っていたところ、以下のようなニュースが飛び込んできました。
GCC開発者ら、GCCの開発にC++を導入することを決定、利用する機能を制限して複雑さを軽減 2010年06月02日 12:30
GCC begins move to C++
(via http://tabesugi.net/memo/cur/cur.html#021905)
GCC開発者ら、GCCの開発にC++を導入することを決定、利用する機能を制限して複雑さを軽減 2010年06月02日 12:30
GCC begins move to C++
(via http://tabesugi.net/memo/cur/cur.html#021905)
これはあくまでも「許可する」(検討し始める)というレベルであり、GCC のコードベースを C++ にする(ことを目指す)という話では無いそうです。
LLVM の Clang は最初から C++ で記述されていますし、保守的とされる組み込みソフトウェア開発でも、C++ の採用は一般的になりつつあります。既に C++ は十分普及したと言えるでしょう。
(一般的なアプリケーションプログラマの方からすれば、いまさらと思われるかもしれませんが、組み込みソフトウェア開発は PC 上でのソフトウェア開発に比べて、CPU・コンパイラ・OS・デバッガなどの、開発環境やプラットフォームがはるかに多種多様なため、枯れている C での開発が無難という事情がありました。)
そのような現状を考えると、C++ を選択肢の一つに採用することは、自然な流れに思えます。
とはいえ GCC のように、巨大で、広範な環境で使用されるソフトウェアへの C++ の採用には、多くの困難が予想されます。
Mozilla プロジェクトも、「例外/RTTI/namespace は原則禁止、template は限られたものだけの使用に限る」など、かなり制限が強い「C++ Portability Guide(翻訳)」を策定しています。
C++ Portability Guide(原文)
言うまでもありませんが、コンパイラは、全ての基本となるソフトウェアです。GCC は、ウェブブラウザ Mozilla よりも厳しい基準が求められるであろうことは想像に難くありません。
これから GCC の辿る道は、全ての C++ プロジェクト(これから採用を考え始めるものも含めて)の参考になると思います。
今後の動向に注目していきたいところです。
LLVM の Clang は最初から C++ で記述されていますし、保守的とされる組み込みソフトウェア開発でも、C++ の採用は一般的になりつつあります。既に C++ は十分普及したと言えるでしょう。
(一般的なアプリケーションプログラマの方からすれば、いまさらと思われるかもしれませんが、組み込みソフトウェア開発は PC 上でのソフトウェア開発に比べて、CPU・コンパイラ・OS・デバッガなどの、開発環境やプラットフォームがはるかに多種多様なため、枯れている C での開発が無難という事情がありました。)
そのような現状を考えると、C++ を選択肢の一つに採用することは、自然な流れに思えます。
とはいえ GCC のように、巨大で、広範な環境で使用されるソフトウェアへの C++ の採用には、多くの困難が予想されます。
Mozilla プロジェクトも、「例外/RTTI/namespace は原則禁止、template は限られたものだけの使用に限る」など、かなり制限が強い「C++ Portability Guide(翻訳)」を策定しています。
C++ Portability Guide(原文)
言うまでもありませんが、コンパイラは、全ての基本となるソフトウェアです。GCC は、ウェブブラウザ Mozilla よりも厳しい基準が求められるであろうことは想像に難くありません。
これから GCC の辿る道は、全ての C++ プロジェクト(これから採用を考え始めるものも含めて)の参考になると思います。
今後の動向に注目していきたいところです。