質問: 国際規格 ISOは、共通言語基盤(略称: CLI)を審査で合格にしました。 そのCLI仕様を取り入れたプログラミング言語のC# も、国際規格 ISOの審査で合格しています。
回答: 「マイクロソフトが用意したプラットフォームだから嫌われている」と思ってらっしゃるならそれは勘違いだと思います。 CLIが既存を置き換えるほどの「魅力」があるかどうかが問題です。 C#は後から出てきた.NET前提の言語ですよね。 AppleもCocoaを前提にObjective-Cを使ったり、SWIFTを新しく作ったりしています。 ですが、C++標準にCocoa対応をねじ込もうとはしていません。 (逆にAppleは囲い込み戦略でOEMしない方針のようですが・・・。) C++は古くからあったものです。C++の現行仕様はC++を使用する多くの企業・団体が一緒に育ててきたものです。 C++コミュニティの大半がCLIを必要と認めればC++の標準規格にCLIが組み込まれるでしょう。 という事で逆質問は失礼だとは思いましたが質問します。 ----------- 例えばGNUがCLIを使う「利点」はなんでしょうか? 既存のライブラリやフレームワーク、仮想マシンの置き換えを検討するほどの「CLIの魅力」はなんですか? リコンパイル前提であれば、GNUのプロジェクトでは現時点でほぼマルチプラットフォーム対応しています。 また、リコンパイルを不要にするのであればJava等ほかのマルチプラットフォーム言語もあります。AndroidアプリなどはJavaの独自改変版(ARTまたはDalvik)でARMでもx86でも動きます。 仮に「Xamarinを使えばGUIも含めて全てリコンパイルなしで移植できます」だとしても、現在ある他の開発環境やライブラリを全て置き換えるだけの魅力があるとは思えません。 もちろん複雑化しすぎたAPIを整理するという意味では魅力があるかもしれません。 でもLinuxやmacOS、UNIXなどWindows以外のOSには「それぞれの文化・事情」があり、リプレイス先としてCLIのリアルマシンが最適とはなりえないのです。 ----------- 現在、Linuxコミュニティで「Windowsとのアプリ互換」以外で、CLIを使っているプロジェクトの話はほぼ聞きません。 CLIが魅力的であれば利用例の話が出てきても不思議ではないと思うのですが・・・。