質問するログイン新規登録

回答編集履歴

1

Nimya

2018/04/22 18:56

投稿

SAM-tak
SAM-tak

スコア199

answer CHANGED
@@ -59,4 +59,13 @@
59
59
 
60
60
  というほぼ最小最速の同じアセンブリ(擬似コードです)に変換されうる現代の最適化コンパイラでは、Cの高級アセンブラ性というのはさして重要ではなくなっているのですが、C++は非常に巨大な言語になってしまっているので、Cでよく批判されるポインター・ポインタ演算子・アドレス演算子・配列変数周りの混乱した言語仕様をより安全で理解しやすいもの変えるとしても、それを他の言語機能を壊さずに実現するのは至難の業になっています。そのため最新のC++仕様でもC由来の評判の悪い言語仕様はそのままになっているわけです。
61
61
 
62
- C/C++の反省点を反映したJava/C#/Goのような、より整理された後発言語が存在することで相対的に、C/C++は難しい、といわれるのでしょう。
62
+ C/C++の反省点を反映したJava/C#/Goのような、より整理された後発言語が存在することで相対的に、C/C++は難しい、といわれるのでしょう。
63
+
64
+ ### NimやRustじゃだめなのか?
65
+
66
+ 全然あり、C++の後継として非常に期待してます。が、現状でC++を置き換えられていないのは
67
+
68
+ * 既存の速度重視のソフトウェア、OS、デバイスドライバはみなC/C++で書かれている(採用するには新規プロジェクトを立ち上げるしか無い)
69
+ * まだ平均的な速度でC++に勝てていない
70
+
71
+ の二点が大きいのではないでしょうか。Nim/Rustの言語仕様に問題があるわけではなく。