-
-
スピーカー 1
グレースホッパーですかね。 そうですね。最初のソフトエンジニア、グレースホッパーについてちょっと喋っていきますか。
スピーカー 2
グレースホッパー、何した人っていうと一番伝わりやすいんですかね。 これ、さっきの関連人物辞典を見れば一発じゃねって思ったけど、これ
何順?ああ、アルファベット順か。
スピーカー 2
54人じゃねえんだなあと思って。
ムムムってなってたけど、アルファベット順なら得意だからいけるはず。 ただスペルわかんないですからね。
ホッパー、ヴィンセント、フォスターが先に見つかったけど、グレースホッパーの夫らしいですね。
関連人物だから当人が載ってないのか、もしかして。 いや、でもドナルド・クルースとか載ってるから。
クムースは取り上げられてなかったから、まあでも出てきましたか。 ああ、そっか出てきてないか。
クムースは小レベルでは出てきてはないですね。 そう、なんか出てきそう出てきてない人多いですよね。リスコフとか出てくるかなと思ったけど。
スピーカー 1
ちょろっとね、名前はリスコフの名前があってか、リスコフの痴漢原則というところで名前が出ているって感じですね。
うん、これはまあ母子取り上げざるを得ない。 そうそうそう。
スピーカー 1
ケント・ベックもいるけどな、まあグレースホッパー。 うん、コボルのあれですかね、言語使用の策定みたいなとこにアドバイザーで勤めたり、みたいなとこが出てきたりとか。
コボルの母と呼ばれてますね。 うん、なのでその辺が多分一番、皆さんにまだ馴染みのあるというか、いうところが近いって感じですかね。
スピーカー 2
うん、あとバグっていうのを広めた人とも言われてるかな、バグという呼び方。
虫が入っていたことに由来するとかしないとかって言われる感じですね。 そう、諸説ありそうなやつ。
まあそんなグレースホッパーさんですよと。どうでした、議員さん的に第4章、グレースホッパー最初のソフトウェアエンジニアは読んでて。
スピーカー 1
読んでてやっぱあれですね、パンチカードの話とか出てきて、もうそういう時代なのねみたいなことを思いながら、どうやって頑張って計算機に本当に計算させるのかをすごい戦ってるなみたいなのが
感じられて、もはや今の自分からはこう、多すぎてわからんけど、わからんけどなんかすごいぞこの人って、なんかいろんなどうやったらそのうまいことを
計算させることができるのか、めちゃくちゃ考えてた人なんだっていうのがなんか一番思ったところですかね。
スピーカー 2
なんか全然当たり前なんですけど、今の感覚と全く違いますよね、そのプログラミングというか。
コンピューターを使うっていうこと自体が全然違いますよね。
スピーカー 1
そう、コンピューターに入力をしてから、そのなんか24時間体制でオペレーター機械を動かしとかって書いてあって、24時間体制でみたいな、
何を言ってるんだみたいな気持ちになるぐらいには、多分全然、全然感覚が本当に違うんだろうなっていう感じを受けますね。
スピーカー 2
うーん。
スピーカー 1
コンピューター で、またテープがね、読み込んだはいいけどうまく動かねえとかいうのが出てきたりとかあるわけですよね、物理的なものだったりするわけだから。
スピーカー 2
どこだっけ、ここじゃなかった気するけど、テープの信頼性が著しく低いみたいな話もありましたね。
スピーカー 1
コンピューター そうそうそう。
スピーカー 2
メディア側が壊れるっていう。
スピーカー 1
コンピューター ねえ、我々が言うと多分HDDとかSSDが書き込めなくなるとか読み取れなくなるとかっていうレベルだと思うけど。
スピーカー 2
あとあれじゃないですか、CDに傷つきまくって音飛びするみたいな。いやーその話通じなくなるんだろうな。
スピーカー 1
コンピューター そう、いやそれももはやって感じがあるから。
コンピューター うーん、まあなんなら手元じゃなくて、ネットワークの向こう側にものが動いてるっていう時代ですからね。
本当ですね。
スピーカー 1
コンピューター 手元が壊れても導入用もなるからなーって思うと、だからやっぱそういう感覚とは全然違うんだよなーって思っていて。
コンピューター だからまあどことってもやっぱ面白いんだよなと思って、なんかそのコメントを書くという規律を導入したよとか、そのコーディングシートにそういうようなルール作ったよとかって言ってて。
コンピューター 今コメント書くって当たり前だけど、そうか。
コンピューター ってか今より分かりにくいんだからもっとコメント書かないとダメじゃん。
コンピューター でもまあそういうことをこう閃いたというか、そういうことをやってやるってやっちゃったっていうところがすごいなーってやっぱ思ったりしますね。
スピーカー 2
いやだって第4章の扉が本当に読んでて鳥肌立つぐらいやばくて、我々が標準的な用語、
カッコ、アドレス、バイナリ、ビット、アセンブラ、コンパイラ、ブレイクポイント、キャラクターコード、デバッグ、エディット、みたいなめちゃくちゃ単語並んでるんですけど、カッコとGを使えるのも彼女の功績であるって書いてあって、そんなことあるかっていうぐらい一人でやってますよね。
スピーカー 1
そうすよね。
スピーカー 2
ああそっか。我々が使用する多くの技術、カッコ、コメント、サブルーチ、マルチプロセッシング、規律ある方法論、デバッグ、コンパイラ、オープンソース、ユーザーグループ、経営情報システムなどは、彼女が発明したか発明に貢献したものだ。
スピーカー 1
偉大すぎる。偉大すぎるよ。
スピーカー 2
いやだってコメントとマルチプロセッシングって同じ人から出てきてると思わない?思わないんですけど、やっぱり歴史のこういう本読むと、それがなかった世界からそれが生まれつつあっていよいよ生まれましたみたいなちょっとグラデーション上に変化してるところを目の当たりにできるから、
全然関係なさそうなのに、ちゃんと繋がってるみたいな感動というか発見があって、面白いですよね。
スピーカー 1
面白いですよね。
今から振り返ったら、我々アトジエバイアスいっぱい知ってるから、いくらでも言えるし、
いやほら当時はまだ草分けだったから、広大なフロンティアがあって発見する余地がたくさんあっていいなとか思うけど、
当時そこにいたら絶対自分が発見できるかって言ったら、たぶんそんなことはないんだろうなっていうことを思ったりとかして、やっぱりすげえなって思っちゃうんだよな。
あとこうしたらいいんじゃねえよ、ちゃんとやりきって成果も出して浸透させてっていうのをやってる人たちなんだなっていう気がして、
スピーカー 2
でグレソッパなんか特にそんな感じですよね、なんかこの人割と政治とかマネジメントにも強いみたいな感がちゃんとしていて、
政治強いというかなんかもう成果でぶん殴るみたいな感じはあるんですけど。
スピーカー 2
いやーすごいよなぁ。
あと読んでてあったのが、ミスがとにかく起きるんでそれをどうにかしたいなって思って、
スピーカー 1
ホッパーは機械自身に出力を確認させるという規律を導入したって書いてあって、チームは人間よりも高速に出力を検証できる命令列を書いたって書いてあって、
これテスト駆動開発の先駆けであるっていうふうに注釈で書いてあって、
スピーカー 1
なんかこうあったらいいな本当にちゃんとやっぱ作って導入して実行できるだけのなんていうか力を持ってるって、
なんかもうグレソッパーが今いたらどんなことやってたんだろうってちょっと思っちゃうぐらいにはいろいろ、
スピーカー 2
いろんなことやってるんだなってやっぱ思っちゃいますね。 確かに。
スピーカー 1
何やってるんですかね今はね。 AIでなんかあれもできるじゃんこれもできるじゃんとか言ってそうだなって思ったりとか。
うん。 あとはあれですねルーチンみたいなものを発明したっていうところもあって、
コードの断片をスニペットとして用意しておいて、それを再利用できるようにしたよって書いてあって。
本当にライブラリですよね。 そうそうそう。だから今の感覚からすると普通じゃんって思うけど、
そうかそうやってやっとくといいのかみたいなことをどんどんどんどん発明してるんですよね。
スピーカー 2
でそのルーチンというか再利用可能なスニペットである必要があって、そうすると再利用できるためには、再利用するためには再利用できる必要があるっていう話があって。
だから、従ってチームはライブラリではレジスタをゼロにするという規約を採用した。
こうすることでルーチンをプログラムにコピーするときに、ライブラリの再配置可能なアドレスにプログラムのレジスタを加算するだけで良くなったっていうふうに書いてあって。
すごい、本当に後じえなんですけど、まあそりゃそうだよねって感じなんですけど、それまでは多分あれですよね、職人の手元によく使うチートシートというか、スニペット書き置きみたいなのはあったけど、
それをちゃんとみんなで共有しようぜ。で、そのためにはちゃんとレジスタ初期化しとく。だからどこからどのタイミングで読まれても副作用が残ってない状態にするっていうの大事だよねっていうのをちゃんと言って、それによって超効率上げてるみたいなやつですよね。
スピーカー 1
そうですそうですそうです。すごいね、すごいね、なんかこう、何ですかね、やっぱ問題発見の能力と問題解決の能力がすごい高いんだろうなって気がしますよね、こういうのを見ると。
スピーカー 2
そうですよね。
スピーカー 1
周りを見ながら、なんか同じことやってるな、繰り返しやってるなとか、その間違いがたくさん起きてるなって思った時に、じゃあこの問題を解決するためには、まずその問題はどっから来ているんだっけとか、これは誰の問題なのかとか、どういう、この問題を解こうと思った時にどういう問題がまた問題が増えてしまうのかみたいなところとか、
そういうようなことがすごく捉える能力が高そうだなっていうのを感じますね。
で、グレーズオッパーの話だけをやりすぎるとあれなんで、コボルに最後ちらっと触れておきますか。
スピーカー 1
そうですね。
スピーカー 2
コボルはコモンビジネスオリエンテッドランゲージですね。
知らなかった。
スピーカー 2
交通事務所利用言語、僕はですね、コボルによる構造化プログラミングっていう本を読んでるんでね、知ってました。
スピーカー 1
すごいすごい。そんな、なんか銀行に転職するんですかみたいな。
スピーカー 2
銀行に転職する人向けのもうちょい新しい本あるんじゃないかな。
スピーカー 1
まあそうだろうね。わざわざそれ読まんでもって確かに。
スピーカー 2
構造化プログラミングの話を知りたいなって思って、ってなると構造化プログラミングが当たり前になりすぎてない時代の、まだ確立されてないっていうか浸透されてない概念を説明してる本が欲しかったんですよ。
っていう。
スピーカー 1
だからといって、そんなコボルになるのかと思いながらそれぐらいの時代になるんだっていう気持ちはありますね。
そうですね、コボル以外の本もありましたけど、あと構造化ベーシックも一緒に買いました。
すごい、もうこの本を読むための前田が整ってる人みたいな。
スピーカー 2
いやでも構造化ベーシックね、新しいんですよ多分。
新しいのか古いのか全然わかんないんだよ、伸びてこないんだよそれ。
スピーカー 2
もうちょいオリジナルのベーシックを知りたいんだよなって思って。
まあいいや、コボルの話でしたね。
スピーカー 1
そうですね。
スピーカー 2
コボルはなんかこの本で改めて、さっきの共通事務処理用言語って話もそうですけど、すごいですよね。
誰でもっていうのは、いつ何時も時の場合によって意味が全く違う言葉として有名なんですけど、誰でも使える言語必要だみたいなコンセプトがあり。
スピーカー 1
そうなんですよね、ここではプログラマーが使うっていうよりはもうちょっと対象が広く想定してるって感じがありますよね。
スピーカー 2
あれでもすごいんですよね、さっき言ったコメントとかコンパイラーの話もそうでしたけど、とにかく人間が扱いやすいようにしようみたいな話があって、
それと同時に使えるプログラマーを探してくるのはもう限界がとっくに来てるから育てるしかねえって腹をくくっていて、
っていう流れでコボル的な言語を作っていこうよっていう議論の中で決定した項目が、特定の機会に依存せずに移植可能であることっていうのは、
さっき言ってた共通事務所利用言語の共通の部分に入ってると思うんですけど、新人のプログラマーの教育が容易であることっていうのも入れてあるんですよね。
動作がわかりやすい、大した通りに動くっていう意味で直感的な言語表現シンタックスみたいな考えた時に、ある派閥は数学的な記号はビジネス分野であっても使うべきだと考えていたが、
もう一方の派閥は掛け算や足し算のような基本的な演算子も英語で書くべきだと主張したっていう日本の中で書かれていて、ホッパ様校舎だと、数学みたいな見た目を外してとにかく英語でやるぞみたいなこと言ってるわけですよね。
スピーカー 1
そうですね、そうですね。
スピーカー 2
すごくないですか、だってこんなん。
スピーカー 1
たぶんホッパから見たら別に数学的な書き方とかで見てもきっとわかっていたはずだろうから、これぐらいだったらいいんじゃないとかっていうことを足し算とかプラスとかアスタリスクでかけるとかスラッシュ割るとか、
たぶんそういうことでもいいんじゃないって思うんだろうけども、でも実際に教育をするとか、この中の制約条件みたいなところのルールの中には英語を最大限に使用するとか、プログラミングの機能よりも使いやすさを優先することとかって、
すごいいろんな制約条件も加えて言語を設計するっていうところに、一貫性だったりとかなんでここはこうなってるんですかみたいな、そういうことは聞かれなくてもいいような、本当に文章を読むように使えるみたいなところをすごい意識してたんだろうなっていうのを強く感じますよね。
スピーカー 2
あともう一個めちゃくちゃすごいのが、マーケティング要素、マーケティング的な視点も含めて英語にしようみたいなふうに言ってますよね。どこだっけ。なので汎用的なビジネス言語こぼる。
スピーカー 1
ただ一方で現代の我々はこぼるを書きたいかって言われると多分そんなにモチベーションはなく、ボボおじさんもすごくこぼるはすごい情緒だし、あんまり書きたくないなっていうようなことを言ってますね。
スピーカー 2
あんまり書きたくないななんて優しい言葉で書いてないです。こぼるはひどい言語だってボールドで書いてあるし、あらゆる点においてこの言語は忌まわしいまで言ってる。
スピーカー 1
そうですね、後事例というか、構成から見た時にはそういうふうに見られてるけど、やろうとしたことは別に、なるほどねってすごく感心するものだよねっていうふうな感じですね。
でもその後にちゃんと書いてあったの。こぼるがこれほどまでに普通したのは技術的に優れていたからではなく企業の政治力が大きかったからだと思う。
スピーカー 2
実際ホッパーはプログラマーが言語に影響を与えることを意識的かつ明確に拒み、ユーザーやマネージャーたちを優先していた。こぼるにはそれが反映されているって書いてあって。
言語レベルで汚いコードでも売れるものを作るってやばくないですか。
スピーカー 1
すごいですね、すごいですね。しかも4.13のところも、こぼる嫌いだけどこぼるは成功したっていうところで、2000年までに書かれたコードの80%がこぼるだと推定されているって。
どういうふうに推定したのかわからないけど、80%ってすごいですよね。
80%やばいですよね。インターネットに対して占める絶頂期のワールドプレスを超えてますよ多分。
スピーカー 1
多分そう超えてるはずなんで。
スピーカー 2
こんな凄さがわからない例えだったら。
スピーカー 1
まあだから世の中で動いているプログラムはほぼこぼるだって言ってもいいぐらいな感じだってことですもんね、この80%って考えると。
スピーカー 2
こぼる以外が異端ってことですもんね多分。
スピーカー 1
そうですね。ちょっと2000年以降からしかプログラム書いてないからわかんないんだよな。
スピーカー 2
そうなんだよな。
スピーカー 1
もちろん90年の終わりぐらいにはPerlとかJavaとかPHPとかいろいろRubyもそうだけど言語が出てきて、多分カーザー向けはインターネットによって変わってくるっていうところはあるんだろうけど、
実際多分多くを占めてたのは企業向けのデカいマシンで動いているようなものだったりするんで、そういうところでこぼるが多分たくさん動いてたんだろうなっていう気はしますけど、それにしても80%ってすごいなっていうのは思いますね。
すごいですよね。ビジネス的に大成功と言わざるを得ないですよね。
スピーカー 1
これで一行書くたびにいくらってお金が取れてたらどんな大金持ちになってたんだろう。そんなことになってたら全然採用されてないと思いますけど。