魔術師をめざして

魔術師を目指して、相場・数学・プログラム言語を研究しています。

cの哲学

cは、安全でない言語だ。その主な原因は、
ポインタ操作にある。ポインタは、強力な機能で、魔術師も
使ったことがあり、その威力を実感した経験がある。
ポインタの誤操作によって、アクセスしてはいけない領域に
データを書き込んでしまう危険もあるのだ。
じゃ、ポインタ機能を無くせばいいんだ、と言う言語が
相次いだ。結果、現在、ポインタを使える言語は、
僅かしかない。
c言語には、「プログラマに可能なことは、制限せず、
プログラマを信じ、任せる」という哲学があるのだと読んだ。
ぼくの意見ではない。
Perlにも通じるものがある。これは、
両刃の刃だけど、魔術師好みの哲学だ。
だから、魔術師の言語は、Perl と cなのだ。
これでいいのだ。バカボンなのだ。

これに対し、Rustは、安全な言語とのことだ。
ポインタが使えるけど。不正な使用は、コンパイラが、
見つけてくれるそうだ。Rustで作ったプログラムは、
ポインタを使っていても安全だというのだ。
また、Rustには、gc(ガベージコレクタ)がない。
因みにgoにはある。
性能に、支障が有っては困るからね。
クリティカルな処理で、突然、gcが動いては困るのだ。
Rustでは、コンパイラが、メモリなどのリソース管理の
ソースを挿入してくれるそうなのだ。本当かいな。

その上、コンパイラは、gccに負けないほどの最適化を
行うとのことだ。さらには、モダンな機能を持ち、
ゼロコスト抽象化を行っているそうだ。
その意味は、自分で調べてくれ。
用語から、想像できるだろう。
コンパイラが助けてくれるとは言え、自分でメモリの
開放管理するのは面倒だ。前に言った、Rustが面倒と言うのは、
gbがないことや、余計なプロジェクト管理ツールがウザいんだ。
と言ってもね、cにもc++にも、、gcは無いんだ。