Google Cloud Platform

プログラマーの日に寄せて : Google 社員に聞いた「初めて作った自慢できるプログラムは?」

※ この投稿は米国時間 9 月 13 日、Google Cloud Blogs and Social の Managing Editor である Sharon Maher によって、プログラマーの日を祝うために投稿されたもの(投稿はこちら)の抄訳です。

携帯電話やインターネットなどのテクノロジーは私たちの生活に革命を起こしました。これらは皆、プログラマーのおかげです。彼らにお礼を言いましょう。1 年のちょうど 256 日目に当たるプログラマーの日(今年は 9 月 13 日)は、趣味のプログラマーから IT イノベーターまで、あらゆるプログラマーたちに感謝する日です。

プログラマーの日は、Google で働く社員にとっても特別な意味を持っています。この日を祝うため、今年はそんな Googler たちに対して、自分で書いた最初の自慢できるプログラムのことを尋ねました。答えはさまざまでしたが、特に注目すべきは彼らの両親の我慢強さです。

意外なことではありませんが、多くの Googler の出発点は自分でゲームを作ることでした。その一人である Jen Tong は、90 年代半ばにテキスト アドベンチャー ゲームを書きました。「それは QBASIC で書いた 2 万行のスパゲッティ コードでした。IF と GOTO さえあればどんなプログラムでも書けることがわかっていたので、ループとサブルーチンを使いなさいという父のアドバイスを無視しました」。しかし、彼女の努力は予想外の効果を生みました。「あまりひどい代物だったので、友だちの何人かは自分のコードを投げ出したんです」

Firebase の Developer Advocate である Todd Kerpelman は、Apple IIe の BASIC で最初のプログラムを書いています。「何でもありましたよ。カクカクしたドラゴン、カクカクした剣、天井から落ちてくるカクカクしたブロックを避けなければならない罠の部屋。コードの 30 % は間違いなく GOTO 文でしたね」

k_-81RneJdqv2_WSM0WT5nEeHu5ovGWCZRZVBcpuEXieIFk1yzGxJD33ONci3mNsFty60S4WeUBCd82ysziOLTB3ZP1cYNsjtuzb3Knnv7tgIj6kPYhpUBoJ3kavaoAonTicDzpEh2z4.PNG
アーティストが描いた恐ろしいドラゴン! でも、怒った蛙かも(真相は藪の中)

Product Management の Director を 務める Jonathan Rochelle も、BASIC でゲームを書いた一人です。「伸びてくる棒を撃ち落とす宇宙船のインタラクティブなグラフィック ゲームでした。Atari 800 でジョイスティックを使うものでしたが、楽しいのは最初の 30 秒だけでしたね」。必ずしも技術的に高度なゲームだったわけではありませんが、それが秘める可能性に彼らは夢中になったのです。

Product Manager の Eric Anderson が作った “一人称ドライビング ゲーム” は、基本的に真四角の車と地平線だけで構成されていましたが、彼には可能性が見えていました。「車に向かってくる障害物(多くの真四角)を作るのに膨大な時間を費やしました。でも、動いたときには体が震えましたねえ。可能性ですよ。車は左から右に動くようになり、スピード(障害物が横から飛んでくる速さ)も調節できるようになりました。それから色が付いて、車にタイヤが付いて、障害物に形ができて。とどまるところを知らなかったですね」

プログラマーたちが自分の成果を見るために努力を惜しまないこともわかりました。Global Field Marketing の Program Manager である Sowmya Ramakrishnan は、15 歳のときに、数値をソートする C++ コードを書きました。「当時はラップトップはまだなくて、学校の実験室で週に 1 時間だけコンピュータに触ることができました。3 人で 1 台のコンピュータをシェアしていたので、実験の時間が来る前に、メモ帳にコードを書いていました。紙ですね。そして実験の時間になると、Borland のエディタでコードを打ち込んでいました。ソートされた数がモノクロ画面に次々に表示されるのを見たときは、めちゃくちゃ興奮しましたよ」

Site Reliability Engineering の Technical Program Manager である Eric Ness は、中古の基板を買って修理しながら 8080 ベースの S-100 マイクロコンピュータを組み立てた経験があります。「その頃、ほとんどの学生はコンピュータ センターに行かなければ端末を使えなかったんですが、ダイヤルアップ回線は自分で持っていたんです。コンピュータの授業で出される課題はアパートの快適な自室でやりたいと思っていたので、8080 のアセンブリ言語で端末エミュレータを書きました。VT-100 をそこそこエミューレートできていて、データをプリンタにエコーすることもできました。このプログラムのおかげで、大学の最終学年ではずいぶん時間を節約できましたよ」

若いプログラマーの中には、芽生えたばかりのスキルを両親のために使った人もいます。Product Roadmap Program Manager の Douglas Dollars は、LC III の AppleScript を使って、母親のためにアプリケーション ランチャーを書きました。「Apple のユーザビリティは、ジグソー パズルと写真に直接アクセスできる 6 個の大きなアイコンの敵じゃなかったですよ」

プログラマーたちは時に、彼らの両親が心配するほど夢中になってしまうこともあったようです。GCP Americas West の Head of Solutions である Brad Svee は、こう振り返ります。「3 年生のときに、伯父が使っていた Macintosh SE をもらいました。伯父は QuickBASIC プログラムの書き方を教えてくれて、『きみのコンピュータでアドベンチャー ゲームを書こう』という本を参考に自分でゲームを書いてみなさいと言いました。私はその本を読んでアドベンチャー ゲームを書きましたが、ゲーム フローをかなり変えました。サンプル コードの一部は普通の BASIC から QB に翻訳しなければなりませんでしたしね。最後に作ったゲームは壮大ですばらしいものだったので、めちゃくちゃ自慢に思っていたんですけど……、短命に終わりました。そのゲームは何とかやりくりして 20 MB ハードディスクのかなりの部分を上書きしていたんですが、OS コンポーネントを壊し、母の TurboTax ファイルを上書きしちゃいましてね。母は大騒ぎして、あとで 1,000 ドル以上のお金を使ってファイルを復元し、コンピュータも動くようになったんですけど、私がプログラミングのために使えるマシンは Commodore-64 に逆戻りしてしまいました」

Developer Programs Engineer の Bill Prin は、建設的な目的のためにコンピュータを使っているということを母親に納得してもらうため、賢い方法を考え出しました。「QBasic でのゲームの作り方を勉強したかったんですけど、母は私がただゲームをしているだけだと思っていたので、家族のコンピュータを使えるのは 1 日に 1 時間だけに制限されていました。そこで私は、さまざまな色とサイズの “I Love You, Mom!” で画面を埋め尽くすプログラムを書いて、制限を撤廃させることに成功しました。でも、Linux をインストールしようとして母の論文原稿を削除しちゃったんで、すぐに特権は剥奪されてしまいましたが」

Google エンジニアの面白い話はこちらから読むことができます。協力してくれたすべての人々に感謝します。皆さん、来年のプログラマーの日にまたお会いましょう。

- By Sharon Maher, Managing Editor, Google Cloud Blogs and Social