過去50年間のプログラミング言語の進化

Bell Labs の Brian Kernighan と Dennis Ritchie による The C Programming Language という本は、C の開発と普及に決定的な役割を果たしました。1978 年にリリースされたこの本は、今でも広く読まれています。

Brian は、AWK および AMPL プログラミング言語の頭脳でもあります。 1972 年に、彼は B プログラミング言語で「hello」と「world」を使用して文字列でメモリ管理を記述しました。 彼が 1978 年に実装した Hello, World! は、世界初のコンピュータ アルゴリズムのオークションであるアルゴリズム オークションで販売されました。

ChangeLog の最近のポッドキャストで、Brian は過去 50 年間のコンピューティング言語とプログラミング言語の進化について話しました。

進化

Brian は、1964 年にミニコンピュータ PDP-7 を作成した Ken Thompson に敬意を表して始めました。Ken は 1969 年に最初の Unix システムを作成しました。UNIX オペレーティング システムは、すべてのオペレーティング システムのベースです。

「1965 年に、私は Fortran を使用し、パンチ カードを使用しました」と Brian は言います。 「私が 1966 年に MIT で過ごした夏は、彼らがタイムシェアリングをしていたので、啓示でした。 中央のコンピューターがあり、さまざまな種類のリモート施設からアクセスし、その中には電話システムを使用しているものもありました。 つまり、事実上、それは一種のクラウド コンピューティングのようなものでした。」 中央のコンピューターは IBM 7094 でした。その後、コンピューターは数百万ドルの費用がかかり、空調の効いた巨大な部屋に置かれ、骨の折れるほど遅くなりました。 メモリは 32​​ ~ 36k あたりでした。

今日、コンピュータはより小さく、より安く、より速く、より良く、指数関数的に進化している、と Brian は言いました。 「私たちは皆、これらの強力なコンピューターを持っており、誰もが非常に強力なコンピューターを持ち歩いています。 そして、それは他のすべての強力なコンピューターに接続されています」と彼は言いました。 さらに、これらのコンピューターのメモリと帯域幅は無限であり、これまでにない速度を実現しています。

Cの関連性

C の関連性について尋ねられたとき、Brain は「おそらく役に立たない」と考えました。 しかし、繰り返しになりますが、それはアプリケーションに依存するだろうと彼は付け加えました. 彼にとって、C は学生が学校で学ぶ最初のプログラミング言語であってはなりません。 Python は表現力があり、使いやすく、ほとんどのユースケースで効率的であるため、代わりに Python に投票しました。 ただし、C はまだバックエンドにあります。 「多くの場合、Python は非常にうまく機能します。なぜなら、Python の関数やモジュールと考えられるものは、外部関数インターフェイスを介した単なる C コードの集まりにすぎないからです」と Brian 氏は言います。

C の主な課題はトレードオフです。 「制約のない方法でメモリにアクセスする必要があるオペレーティング システムを作成するなどのことを行うには、鋭いツールが必要です。 そして残念なことに、それは私のような普通の人間が書くプログラムに変換され、そこでは制約のない方法で間違ったメモリにアクセスし、さまざまな方法で事態が悪化します. それには多くの問題があります」と彼は言いました。

Brian は、C のバージョンを更新するという Linux Kernel の提案についても言及しました。開発者が 2000 万行の C コードを扱うことになることを考えると、Brian にとって、これは大きな課題のように思えました。 「何かを壊さずにそれを行うことができますか? 言いにくい」と語った。

その後、Brian は Go について話し、この言語はクロールや並行プロセスの実行に最適であると述べました。 Python よりも高速に実行され、より表現力豊かでした。 さらに、Go は文化的に C と互換性がありました。Go の慎重な進化のおかげで、最初から後方互換性が保たれています。 つまり、何年も前に書かれた Go プログラムは、今日でも機能します。

C 以外では、AWK と Python が Brian の優先言語です。 「私はプログラミングを楽しんでいます。 楽しく続けています。 私が抱えている問題は、私が現在書いているプログラムのほとんどが非常に小さい傾向にあることです。 多くの場合、何かを行うための AWK ワンライナーであったり、ある形式のデータをクリーンアップして別のデータに変換するための Python プログラムであったりします。 私は大したことは何もしていません」と彼は付け加えました。

Brian は Web 3 を「もう 1 つのバズワード」と呼びました。 彼は、技術オリガルヒが存在しなかった時代にウェブを戻す分散型ネットのアイデアを高く評価しています。 しかし彼は、ブロックチェーンのようなメカニズムや、それを機能させるためのコンピューティングの環境への影響の必要性に疑問を呈しました.

Leave a Comment

Your email address will not be published. Required fields are marked *