Dijkstra自身がEWD1308でこの件について触れている箇所がある
1968年、Communications of the ACMは彼の文章を“The goto statement considered harmful”という題で掲載し、その後その文章は残念ながら題名しか見ていない著者たちにしばしば引用され、彼の名声の礎であり、“X considered harmful”という題名形式の原型にもなった
もともと彼は“A case against the goto statement”という題で論文を投稿したが、出版を早めるために編集者がこれを「編集者への手紙」に変更し、その際に自分の判断で新しい題名を付けた。その編集者がNiklaus Wirthだった
[1] Transcription - https://www.cs.utexas.edu/%7EEWD/transcriptions/EWD13xx/EWD1...
PDF - https://www.cs.utexas.edu/%7EEWD/ewd13xx/EWD1308.PDF
2件のコメント
ケント・ベックもニクラウス・ヴィルト教授についての回顧を残していますね。
https://tidyfirst.substack.com/p/niklaus-wirth-1934-2024
ジョー・アームストロング教授もニクラウス・ヴィルト教授から影響を受けたというのですから、本当にすごい人物だったようです。
Hacker Newsの意見
言語設計への貢献だけでなく、Niklaus Wirthは屈指のしゃれの一つも残した
姓は本来「Virt」に近く発音されるが、アメリカではみんな「Worth」と呼んでいたため、「ヨーロッパでは名前で呼ばれ、アメリカでは値で呼ばれる」と冗談を言っていた
そのときの聴衆の反応映像があればぜひ見てみたい
https://en.wikiquote.org/wiki/Niklaus_Wirth
https://lists.racket-lang.org/users/archive/2014-July/063519...
「by value」が、名前と姓を合わせた Nickles Worth のように聞こえる発音になるという意味だからだ
数多くの業績に加えて、Wirthは Joe Armstrong にとって英雄であり、Armstrong流の単純さに大きな影響を与えた
Joeは、Wirthが「重なり合うウィンドウはタイル式ウィンドウより優れているかもしれないが、実装の複雑さというコストを正当化するほどには優れていない」と言ったことをよく引用していた
ETHで開かれた80歳の誕生日シンポジウムで、任意のFPGA開発ボードとUSB周辺機器の上で動く自作CPUにOberonを新たに移植して見せたのも印象的で、いつかそんな80歳になりたい
コンパイラ最適化に対する立場も似ていて、最適化パスは コンパイラ自身のコンパイル時間 を改善するときにだけ追加すべきだと考えていた
Oberonも意図的に 協調的マルチタスキング のみをサポートしていた
https://www.youtube.com/watch?v=EXY78gPMvl0
最初は「worthwhile」と書いたが、しゃれが画面から飛び出してくるほどだった
Wirthの言語だけでなく、アルゴリズム + データ構造 = プログラム や段階的詳細化のような仕事も好きだ
Pascalは多くの人と同じく私の初期の言語の一つで、今でもDelphiやFree Pascalの形で好きだ
RIP, guruji
guruではなくgurujiに直したのは、ヒンディー語でjiが敬称の接尾辞だからで、もちろんguru自体もすでに敬意を含む言葉だ
私は彼の昔の学生だ
彼は、キーボードを叩いて何でも動かしてしまう十代だった私を、コーディングする前に考える 熟練プログラマ に変えてくれた一人だった
大学で会う前から、Amiga界隈にはWirth系言語を使うプログラマが多く、私もOberonでプログラミングしていたので、彼がとても惜しまれる
学部生は皆彼を畏敬していたが、彼は学部の講義を特別楽しんでいるようには見えなかった
ただし他の教授と違って、その責任をTAに丸投げしようとはせず、大学院生とは良い関係を築いているようだった
コンパイラ構成の授業ではもっと熱が入っているように見えたが、学生たちがすでに少し経験を積んでおり、当時Oberonの設計を繰り返し改良している最中だったからだと思う
口頭試験でPascalの dangling ELSE 問題を解いてみろと言われ、私は言語文法を精緻化して曖昧さを解消すると答えた
彼は、おそらく動きはするが複雑すぎると言い、どこでそんな考えを得たのかと尋ねたので、結局彼の教科書と競合関係に近い “Dragon Book” で見たと白状した
後になって、彼が求めていた答えはModula-2やOberonのように言語を変えて明示的なENDを要求することだったのだと気づいた
私的な場では話していて楽しい人で、コンピュータ関連の逸話も非常に豊富だった
公の場ではやや独断的に見えたが、私的な場では「異端」にもずっと寛容だった
あるときPerlの話になった際、良いことは言わないだろうと思っていたのに、意外にも パターンマッチング/テキスト処理言語 には有効なニッチがあると見ており、その系譜の前身としてSNOBOLに言及した
Workbench 2.1が入った Amiga 500 をちょうど復元したところで、彼の記憶をしのびたい
PC側はTurbo Pascalに慣らされていたからだ
begin
本当に悲しい知らせだ
Twitterより良い情報源があるのか気になる
修正: https://lists.inf.ethz.ch/pipermail/oberon/2024/016856.html
Wirthは単純さ、正確さ、人間が理解できるソフトウェアにおける、残っていた最後の偉大な使徒であり、今やHoareとMooreだけが残り、MooreもGreenArraysの実権を若い世代に譲ったように見える
若い人たちは、彼の仕事が学問的にだけでなく実務的にもどんな意味を持っていたのか知らないかもしれないので、いくつか書き残しておく
今日私たちが知る統合開発環境はTurbo Pascalで生まれ、初期のMacintoshソフトウェアの大半はPascalで書かれており、MacPaintもその一例だ
Goの元の設計者3人のうち1人であるRobert GriesemerはWirthの学生で、Oberon拡張で博士号を取得しており、Wirthの言語群はNewsqueakの設計にも非常に明確な影響を与えている
TeXもPascalで書かれている
end;
end.
ただ、その大半は注目されず、人目を引く複雑で壊れやすい巨大ソフトウェアの雑音の中に、静かな歌が埋もれているだけだ
その歌は消えたことがなく、周波数を合わせればいいだけだ
https://twitter.com/odersky/status/1742618391553171866
彼は現在UC Irvineの教授で、後にTraceMonkeyとなった追跡木に関するAndreas Galの論文も指導した
Niklaus Wirthは、Dijkstraの論文の題名をGoto Statement Considered Harmfulに変えた人物でもある
https://en.wikipedia.org/wiki/Considered_harmful#cite_ref-6
1968年、Communications of the ACMは彼の文章を“The goto statement considered harmful”という題で掲載し、その後その文章は残念ながら題名しか見ていない著者たちにしばしば引用され、彼の名声の礎であり、“X considered harmful”という題名形式の原型にもなった
もともと彼は“A case against the goto statement”という題で論文を投稿したが、出版を早めるために編集者がこれを「編集者への手紙」に変更し、その際に自分の判断で新しい題名を付けた。その編集者がNiklaus Wirthだった
[1] Transcription - https://www.cs.utexas.edu/%7EEWD/transcriptions/EWD13xx/EWD1...
PDF - https://www.cs.utexas.edu/%7EEWD/ewd13xx/EWD1308.PDF
Wirth教授は子どものころの私に大きな刺激を与えてくれた人だ
当時はPascalに関する彼の本がどれほど優雅で単純かを十分には理解していなかったが、熱心に読み、Oberon言語とLilithワークステーションの開発も興味深く追っていた
13歳のとき、彼が遠くない場所、おそらくJohns Hopkinsだったと思うが、そこで講演を行い、父が連れて行ってくれた
本当に素晴らしい体験で、リンク先の写真[1]からも分かるように、彼はとても親切で励ましを惜しまない人だった
[1]: https://mastodon.online/@raph/111693863925852135
悲しい日だ。
彼はコンピューティング界の巨人であり、実際に受けた以上の注目を受けるに値した。
彼の言語がソフトウェア開発でより広く使われていたなら、多くのことはもっと良くなっていただろう。
C64/128でBasicを少しいじったあと、私が最初に学んだ「本物の」プログラミング言語は Pascal だった。
学校のApple IIにあったUCSD Pascalと、IBM PCのTurbo Pascal 3.0で学んだ。そのPCはまだATのような高級機ですらなく、内蔵の琥珀色CRTが付いたポータブルPCだった。
Amiga 500を買ったとき、Amigaでは Modula-2 が非常に人気で、M2Amigaシステムは実際に最も堅牢な開発環境だった。
Modula-2は構造的で堅牢なプログラムを作りやすくし、モジュールという概念は時代を先取りしていた。
Cの世界がその後も長いあいだヘッダーファイルを再コンパイルし続けていたのとは対照的だ。
今日のGoはModula-2から多くを受け継いでおり、だから私はGoにすぐ惹かれた。
Robert GriesemerがWirthの学生だったのも偶然ではない。
90年代になってもMS-DOSが使われていたあいだ、PCではTurbo Pascalがみんなの主力言語だった。
強力でありながら、専業のソフトウェア開発者でない人にも手が届き、Modula-2の拡張も多く取り入れ、オブジェクトシステムも優れていた。
バージョン6と7で頂点に達し、純粋な文字ベースUIの圧倒的な速さゆえに、今でも私のお気に入りの開発環境かもしれない。
Turbo Pascalは、優れた開発環境と、力強さと単純さのあいだで見事な折衷を実現した言語を結び付けていた。
残念ながら、彼の後期の仕事であるOberonについてはぼんやりとしか知らない。
386でOberonシステムをネイティブ起動して少し触ってみたが、PCがDOS時代だった当時におけるその効率性と完全なGUIは驚異的だった。
もっと注目を集めなかったのが惜しい。
80年代末に遅すぎないうちに勢いを得ていれば大きく成功していたかもしれないが、90年代初頭にはWindowsが登場した。
純粋主義的な観点では、彼が真の フルスタック開発者 という肩書を得たときが頂点だった。
Oberonと言語やOSを設計しただけでなく、それを動かすCPUまで設計したからだ。
非常に印象的で、教育的価値も大きかった。
END.
WirthはEuler、PL360、ALGOL W、Pascal、Modula、Modula-2、Oberon、Oberon-2、Oberon-07の主任設計者だった。
Lilithワークステーション向けのMedos-2、Ceresワークステーション向けのOberonオペレーティングシステム、Lolaデジタルハードウェア設計・シミュレーションシステムの設計と実装にも中核的に関わった。
1984年には、これらの言語の開発によりACM Turing Awardを受賞した。
Pascal/Oberonの影響を受けた学びやすいハードウェア記述言語で、Cに着想を得たVerilogやAdaに着想を得たVHDLとは対照的だ。
Wirthのソフトウェアスタック全体も気に入っている。
Lolaで実装されたRISC-5はRISC-Vと混同してはいけないもので、その上にOberon言語とOberon環境がある。
記憶が正しければ、LolaはVerilogを生成できたし、学生がFPGAボードから出発して自分のCPU、コンパイラ、OSを作れるようにするという発想だったはずだ。
彼の気の利いた言葉も好きだ。
「私はプログラマーである教授であり、教授であるプログラマーだ」といった趣旨のことを言っていたと思う。
そういうプログラマー兼教授がもっと必要であり、システム系の人たちにとって明らかなインスピレーションだ。
MODULA-2はその後まもなく姿を消したが、Pascalはいまでも入門プログラミングの授業で使われている。
プログラミングとの最初の出会いがこれらの言語だったことをとてもうれしく思うし、Wirthは私の心の中でとても特別な位置を占めている。
彼の設計は本当に時代を先取りしていた。
Modulaもずっと学びたいと思っていたが、その代わりにDelphiを身につけた。
最初の会社を Delphi ベースで立ち上げ、DelphiはTurbo Pascalを基盤にしていた。
Wirthは大きなインスピレーションであり、彼の死は決して小さな損失ではない。
彼の仕事がこれからも何世代もの新しいプログラマーにインスピレーションを与え続けることを願う。
彼の言葉の一つはこうだ。「ヨーロッパ人はたいてい私の名前を正しく『Ni-klows Wirt』と発音するが、アメリカ人は例外なく『Nick-les Worth』にしてしまう。つまりヨーロッパ人は私を名前で呼び、アメリカ人は価値で呼ぶのだ」
リアルタイムシステム監視用言語に モジュール性 を持ち込むことをテーマに学士論文を書き、とりわけMODULA-2をはじめとする彼の仕事から大きな刺激を受けた。
https://news.ycombinator.com/item?id=38858993
コンピューティングの歴史にとって悲しい日であり、多くの人にシステムプログラミングへのより良いアプローチを示した 偉大な言語設計者 を失った。
その人生に乾杯したいし、どこかの コーディング・ヴァルハラ にいてくれることを願う。
死は人生の一部だ。
人生がアルツハイマーや認知症、あるいは単に動きが遅くなって衰弱していく形で崩れていくとき、あるいは早すぎる終わり方をしたとき、または無駄にされたときのほうがずっと悲しい。
彼はもうすぐ90歳になる年齢で、長く、影響力があり、充実した人生を送った。
そういう人生は称えられるべきだ。