人生を変えるような知らせを受け取ったとき、どうしますか? どう反応し、どう受け止めるでしょうか? DJに聞いてみましょう。がんと診断されたと聞いたとき、彼がどのように見方を変えたのかを語ってくれます。
Jonathan: ではDJ、今週のExercismポッドキャストへようこそ。来てくれて本当にうれしいです。今はハーレム、よく言われる「ハーレム」にいますよね。間違っていたら訂正してください。これは発音できるはずなんですけどね。よし、もう一度やってみます。 DJ: いいですよ、3つの……ええと、ハーレム。Gは入っていませんよ。ハーレム、ハーレム。はい、ハーレム。 Jonathan: ハーヘルスラハ、チューリップを食べて育つ。困るのは、あの喉の奥から出すGで、そこが苦手なんです。 DJ: でもハーレムにGはありませんよ、Hです。 Jonathan: ええ、でもRが。はい、今回はそういう話なんです。でも今日の番組に来てくれて本当によかったです。Exercismにはもう何年か関わっていますよね。というか、何年くらい関わっているんですか? DJ: 最初のきっかけは……実はよく覚えていないんです。最初は、ああ、うるさく文句を言ってやろうと思ったんでした。Exercismとは最初のバージョンから関わっています。たしかクリスマスの頃だったと思います、ちょうど何か演習を探していたんです。見つけて登録したけど、そのときは使いませんでした。それからV2が出て、それはよく覚えています。でも、たぶん3年か4年だと思います。4年でしょうね、本気で、ああ、手伝おう、ここは違うと思うところを伝えようと思ったのは。でもそのあと自分で直しに行くんですけど。 Jonathan: そして自分で直したあと、と。はい。それで、テックの視点から言うと、当然Exercismのことですが、それはテックへの道のりの中でも後半のほうだったんですか? DJ: ええ、新しいプログラミング言語を学ぶために使ったわけではまったくありません。始まりは、とにかく忙しくしていたかったんです。掃除がとても落ち着くという人がいるのと同じですね。仕事でとても忙しかったので、もっと何かやろうと決めたんです。ほら、やることなんていくらでもありますから。それで演習を探していて、Codewarsをやって、HackerRankもやって、それからExercismを見つけたんです。Exercismのよかったのは、ほかでは見られない新しい演習があったことです。コードゴルフ、つまりできるだけ短くしろ、みたいなのはなくて、できるだけ速くしろ、みたいなのもなくて、ただ、自分がいいと思うやり方でこの演習を完成させられるか試してみる、というものでした。いいですね。しかも複数の言語でできるというおまけ付きでした。私の場合、大学でコンピューターサイエンスを学んだんですが、それは自分が何をしたいのかわからなかったからです。やりたいことは山ほどあって、両親はおもちゃ屋をやっていました。それに景気が悪くなっていて。だから何かしないと、と思ったんです。 Jonathan: それはだいたいいつ頃でしたか……その、金融危機はいつでしたっけ? 2008年? 2009年? じゃあその頃ですね。はい、わかりました。 DJ: 金融危機はいつでしたっけ? アメリカの危機? 2008年、2009年。じゃあその頃ですね。そのとおりです。今31歳で、大学に入ったのは17歳のときでした。だからそのくらいの時期です。それに、もうICT企業で働いていました。「電源を入れ直してみましたか?」ってやつですね。いや、いや。 Jonathan: いや、いや。はい、はい、壊れただけです、電源を入れればいいんです。 DJ: ええ、企業で働く人なら誰でも知っていることですが、オフィスの人のパソコンでいちばんよくある問題は、電源が挿さっていないことなんです。そんなわけで、ICT企業、つまりIT企業で働いていました。そこでも少しプログラミングをしましたが、こう考えたんです。どうせ勉強するなら、自分で生活を支えないといけないし、両親のおもちゃ屋は世界的不況でうまくいっていなかったから、すでにやり方を知っていることをやったほうがいい、と。それでコンピューターサイエンスに申し込むことにしたんです。 Jonathan: それが今につながってくるわけですね。はい。当時はオランダにいたんですか? はい、はい。デルフト工科大学でした。なるほど。 DJ: ええ、ええ、デルフト工科大学でした。17歳で、始めたときはコンピューターサイエンスが本当に好きでした。それで7か月ほど続けました。それから、辞めたわけではないのですが、がんになりました。だから大学をやめました。戻ってきたとき、大学はとても厳しくて。カリキュラムが変わっていて、2年次と3年次のいくつかの科目に受け入れてくれなかったんです。理由は「飲みすぎだ」と言われて。私は、いや、実際は死にかけていたんですけど、どうもありがとうございます、と答えました。それで働くことにしたんです。だから本当にやりたいプロジェクトだけをやりました。それがJavaのような言語との出会いでした。Cも少し、Haskell、Prolog、科目ごとにいろいろな題材がありました。でも仕事ではC#を使っていました。 Jonathan: 彼女が…… DJ: それに、もっと若い頃、ゲーム開発者になろうとしていたときにRubyを知りました。それがそのための言語だと思っていたからです。実際は違うんですけど、当時はそうでした。 Jonathan: そもそも、幼い頃からどうやってテックに興味を持つようになったんですか? ご両親のおもちゃ屋さんがあって、そのあと不況があって、という流れはわかるのですが、その前にも「テックって面白い」と思った瞬間があったんですか? DJ: ええ、12歳のときですね。でも実は、もっと幼い頃から始まっていたんです。まだWindows 95もなかった頃で、MS-DOSでした。母は、両親がやっていた印刷会社の帳簿をつけていました。おもちゃ屋の前に印刷会社をやっていたんです。母はXactで帳簿をつけていて、それはとても一般的な会計ソフトです。MS-DOSで動いていて、見た目はハッカーがやっているやつ、ほら、緑の画面、マトリックスの画面みたいなんです。それから少しして、白、白い色になりました。とにかく面白そうに見えたんです。私はそれをいじり回すのが好きで、母の仕事を完全に台無しにしていました。母はそれが大嫌いでした。それから父は、若い頃、街で数少ないCDライターを持っている人のひとりでした。父は、最初期の…… Jonathan: マトリックスの画面、あの文字が流れ落ちるやつですね。 DJ: ……そういう機械を持っている人のひとりだったんです。父は人のためにデータをコピーして、焼いてあげていました。だから父はコンピューターが好きでした。家にいくつかおもちゃはありましたが、それだけでした。ゲーミングPCは持っていませんでしたし、テレビのある環境で育ったわけでもありません。スカウトに入って、競技ヨットもやっていました。でも12歳のとき、ついにコンピューターを買ってもらったんです。すごく遅くて。少し年上の人ならわかると思いますが、あの手のコンピューターです。ターボボタンが付いていました。前にそれについて話しているのを聞いた覚えがあります。それを押すと、コンピューターは文字どおりブーンと音を立てて、速くなりました。 Jonathan: そして電気代がかなり上がったと。それで私はローラーコースタータイクーンをやりました。ああ。たくさん。どこまで進んだんですか? DJ: ええ、かなり上がりました。それでローラーコースタータイクーンをたくさんやりました。コンピューターがとても遅かったので、あるレベルがあって、たぶん拡張パックのどれかに入っていた『Takkun 2』だったと思いますが、『Arid Heights』という名前だったと思います。お金を使わずにクリアできる最初のレベルです。それをクリアするのに4か月かかりました。すごいですね。今の自分のコンピューターなら、たぶん1時間でできるでしょう。でもそれくらい遅かったんです。それなのに最高でした。素晴らしかった。今でもこのゲームが大好きです。 Jonathan: すごいですね。あれは名作のひとつですよね。 DJ: ええ、ええ。それでゲーム開発をやってみたくなりました。プログラミングが好きだからではなく、ただゲームを遊ぶのが好きだったからです。12歳から18歳になるまでの間に、RPG Makerをいじっていました。これはたしか日本のソフトですが、国際向け、主にアメリカ向けに翻訳されたプログラムで、これでRPGを作れるんです。とてもポイント&クリック的で、イベントシステム全体にUIがありますが、土台のプログラミング言語はRubyでした。スクリプト言語はRGSSで、たしかRuby Game Scripting System、そんな名前です。だから用意された画面、たとえばメニューなどを、スクリプトの中の座標を変えて動かせるんです。スクリプトが公開されているからです。それが最初にやったことでした。画面を動かして、とても達成感がありました。プロですね。私も見ましたよ。ええ、見ました。プログラミングは何も知りませんでした。ただ、数字を見て、それが画面上の座標だとわかって、それを変えて画面を動かしていた。それだけでしたが、最高でした。 Jonathan: プロですよ。というか、シニアですね。ええ、シニア。つまり、画面に起きていることと自分がやることのつながりがわりと直接的だったわけですね。ほとんど即座に。ほぼ瞬時に見えたと。 DJ: ほぼ瞬時に見えましたよね。これが、インタプリター型の言語のほうが初心者プログラマーの教育に向いていると一部の人が考える理由につながります。まさに即時のフィードバックがあるからです。そのあと、もっと複雑なシステムにも取り組みました。誰かが葉っぱが画面上でアニメーションするグラフィックを作ったので、私はその葉っぱが実際にアニメーションして画面を漂う小さなスクリプトを書きました。当時14歳くらいでしたが、人は私をインターネット上の名前で知っていました。とても洗練されていると思っていたその名前は、自分の名前のあとに商標マークを付けたものでした。人が私に話しかけようとするととても厄介で、みんな私のことを話題にしていたわけですが、それはよかったです。大きくなるにつれて、プログラミングはただ楽しいだけで、これを一生やろう、とまでは思わないことに気づきました。私は外科医になりたかったし、宇宙飛行士になりたかったし、薬の設計にも興味がありました。でも、巡り合わせ、偶然ですね。大学の前にそのICT企業で働いていた17歳の頃には、少しはプログラミングの知識がありましたが、プログラマーになろうという気持ちはありませんでした。ああ、シリコンバレーは最高だ、みたいな気持ちもありませんでした。ただ…… Jonathan: ……画面を漂っていた、と。それはあなたの一部だった、あるいはあなたという人間の一部だった、と。お金を稼ぐ手段のひとつだった、と。ええ。 DJ: お金を稼ぐ手段のひとつでした。ええ、仕事でした。本当に大学に入って講義を受けてから、自分はこれがとても得意だと気づいたんです。何人かの同級生は、私がすごく遅く来ても、彼らより高い成績を取るのをとても嫌がっていました。 Jonathan: その時点で大学で有能だったのは、それ以前に長い時間その題材を頭の中に置いていたことが一因だと思いますか? そういう要素もあったのか、それとも単に才能があったのか。相性がよくて、何が起きているかわかった、と。そこには…… DJ: 何が起きているかわかっていた、と。研究があるんです。論文の名前も研究者の名前も覚えていませんが。世界中の誰もがプログラマーになれるのかどうかを研究した人がいました。数年前に「みんなコードを書こう」という大きな動きがありましたよね。その研究では、基本的に2つのグループがあることがわかったんです。理解できる人と、できない人。そしてそれはそれでいい。研究者たちはその結論を研究するのが大事だと思ったというより、むしろそれが目的ではなかったのですが、それが結論でした。その結論を声に出すことが大事だと彼らは考えました。なぜなら、わからないからといって、あなたが愚かなわけではないからです。ただ、論理構造を理解できるという部分が必要だというだけです。だからこれは知識とは関係ありません。これまで何回見たことがあるか、言語についてどれだけ知っているか、という話ではないんです。純粋に、頭の中にイメージを作って「わかった」と思えるかどうかです。そしてできる人とできない人がいることがわかった。どちらのグループでも、時間をかけた分だけ習熟度に差はあります。多くのことに同じことが言えると思います。私は料理がとても好きですが、うまくなったのはたくさん時間をかけたからです。ええ。そう、試すからです。だからある程度は技術だと思います。私も知っています、とても親しい友人が料理に挑戦したのを。ええ。それ以上は言いません。これを聞いている本人は自分だとわかっているでしょうから。それはその人のせいではありません。生まれつきの部分もあれば、身につける部分もある。プログラミングも同じだと思います。以前に少しプログラミングをかじっていたことが役に立ったか? ええ、100パーセント。もちろんです。楽器を習おうとしているけれど、楽譜の読み方はもう知っている、というのに似ています。それは助けになります。それが世界を変えるほどの利益にはならないかもしれませんが、ええ、私には役に立ちました。でも多くは、すでにそれでお金を稼いでいたからでもありました。だから私は…… Jonathan: それ以上は言いません、と。100パーセント、100パーセント、100パーセント。つまり、大学にいる間、勉強しながら何かを作って稼いでもいたんですか? 二足のわらじを同時に履いていたわけですね。 DJ: ええ、そうでした。勉強と仕事を合わせて、週にだいたい60時間でした。それから遊びにも行っていました。 Jonathan: じゃあ1週間がどうにかして270時間になっていたわけですね。ええ、どうにかして。はい、はい。 DJ: どうにかして、ですね。ええ、どうにかして。はい、はい。それに私はほとんど寝なくても平気でした。二日酔いにもならないし、今でもなりません。ただ疲れるだけです。だから私にはよかった。オランダ語で「studeren is leren combineren」と言います。勉強とは、いろいろなものを組み合わせる技術だ、という意味です。そして私にとっては、特にそれがよく当てはまりました。 Jonathan: それで、がんのことについて面白いことを言っていましたね。大学にいて、それがあなたを襲った、と。ええ。まさに突然、こんなふうに。 DJ: ええ、ある日は衝撃でした。衝撃的でしたが、同時にとても穏やかな気持ちでもありました。がんと診断されるのは、多くの人にとってとても長いプロセスです。医者に行って「がんです」と言われる、というものではありません。そんなことは起きません。病院に行って、たくさんの検査を受けて、医者には常に懸念があって、一度経験すると、医者がどういう表情をするかを見分けられるようになりますが、本当にがんがあるとわかるまで教えてはくれません。だからこれはとても長いプロセスです。数週間でわかる人もいれば、ほとんどの人は数か月、年単位かかる人もいます。そしてこれが恐ろしいところでもあって、検査されなければ、それがあなたを殺すんです。手遅れになるからです。私の場合、ここで言う「粉ひき」の中に4か月いたあと、ようやく告げられました。ええ、あなたはリンパ腫です、あれこれ、云々。私たちにはわかりません。診断はつきましたが、予後はわかりません。だから、何の病気かはわかるけれど、どれくらい生きられるかはわからない。悪いことだとはわかっているけれど、どれくらい悪いかはわからない。それだけでした。 Jonathan: つまり、すべてを告げて、同時に何も告げていない、と。それで、わかった、次はどうする、と。 DJ: それで、わかった、次はどうする、と言いました。ええ。そしてその知らせを伝えた人たちは、私の返事があまり気に入りませんでした。真剣に受け止めていないと思ったからです。でも私は、あなたたちはどうすればいいかわからないと言っている、じゃあ次は何なのか、と言ったんです。と思います。私にとって本当に変わったのは、もちろん1年近くレースから外れたことを除けば、多くのことにノーと言うのをやめたことだけです。だから、がんの前は働いて勉強して遊びに行っていて、そのあとは、もっとやるようになりました。それで本当にもっとやったと。 Jonathan: それで本当にもっとやったんですね。ええ。多くの人は、さあ、ペースを落としてやめよう、となるはずです。 DJ: 貯金もやめました。使い始めたんです。意味がないですから。死ぬなら、誰かが、ああ、貯めたお金でいくらでもすごいことができたのに、と言うんだろうな、と。今となっては、それは賢明な決断ではなかったかもしれません。でもその瞬間は、前頭前皮質がそうしろと言ったのです。思春期の終わり頃だったし、勢いでいこう、と。それでたくさん旅をして、たくさん働いて、好きなことを勉強しました。コンピューターサイエンスですが、受けられる科目で、自分が取りたいものだけを。それから1年次のティーチングアシスタントのひとりが、カリフォルニアのスタンフォードに移りました。大きくて素晴らしい大学のひとつです。そして、夏のプロジェクトをやってくれないか、と言ってきました。この会社で働いている、スタートアップなんだ、と。それで、いいですよ、と答えました。Androidのプログラミングなんて一度も触ったことがないくせに、自信満々で。Androidの携帯は持っていましたし、Androidのプロジェクトでした。大学でJavaをやっただけ、それだけでした。でも、いいですよ、いいですよ、任せてください、やります、と言いました。何がもらえるんですか? 彼は、まあ3000ドル払う、夏の終わりまでに終わらせてほしい、と言いました。当時、私はRNMで誰かと同棲していて、その人が私の誕生日に浮気をしまして、私はテキサス出身の親友に電話しました。彼女は、ちょうど21歳になったばかりでしょ、こっちに来なよ、失うものなんて何もないよ、と言いました。そのとおりです。こっちにおいでよ、と。それで行きました。飛んでいって、テキサスにいる間に、あのティーチングアシスタントが、おい、テキサスにいるみたいだね、と言ってきました。 Jonathan: 失うものなんて何もないですよ。そのとおり。こっちにおいでよ。それが必要なんです。 DJ: こっちに飛ばしてあげるから、休暇を過ごしてから帰りの便を変更して、しばらくうちで働かないか、と。それでそうしました。こうして私のシリコンバレー物語が始まったんです。こうして私は、すでに職業としてお金を稼いではいましたが、それは目的のための手段という感じでしたが、カリフォルニアと仕事に引き込まれていきました。すでに自分の会社を持っていましたから。21で。 Jonathan: 21歳でオランダで自分の会社を立ち上げたんですか? 税務上の理由で自分の会社を作りました。なるほど。 DJ: 税務上の理由で会社を作りました。ICT企業で働いていましたが、プログラミングの仕事は従業員としてではなくやりたかったんです。従業員では多くのお金は稼げませんから。それに受けられる税制上の利点もまだたくさんありました。それで会社を作り、ICT企業の上司に、こういう会社としてプログラミングの仕事をしたい、と言いました。すると、いいよ、わかった、と言われました。その代わり給料も上げてやる、もう従業員ではないからな、と。それはいい、と。すでにそういう状態でした。だから合法的にアメリカの顧客を持てたんです。すでに…… Jonathan: つまり下請けに出して、それから…… DJ: そのとおり、自分自身を下請けに出していたんです。最高ですよ。それを4年間やって、行ったり来たりしていました。 Jonathan: ああ、下請けに出していたんですね。それで、あなたはオランダを拠点にしていた? ええ。それで飛んでいって、仕事をして、戻ってくる、と? ええ、こちらでも働いていました。 DJ: こちらでも働いていました。リモートで仕事をしていました。でも打ち合わせのために向こうに行って、向こうで仕事人生と経験を積み上げていました。それで大学から得たかったものが完全に置き換わったんです。だから通うのをやめました。これが終わったのは5年ほど前です。その頃からこちらで人を雇い始めました。会社を大きくして、もう私ひとりではありませんでした。大学時代の友人のひとりに、このプロジェクトを一緒にやらないか、と言いました。そのプロジェクトは、実はアメリカの顧客のひとつでした。彼は、いいよ、やろう、と言いました。もうひとりの親友は、実はアメリカの企業に雇われたので、彼女に会いに行くために向こうに飛ぶ理由がまだありました。それはよかったです。だから顧客を訪ね、新しい顧客を作り、家に飛んで帰って、それから仕事をしました。そして彼らはアメリカの給料を払ってくれました。すごい。知らない人もいるでしょうが、こちらの生活費はずっと安いんです。だから…… Jonathan: そうなんですか? つまり、カリフォルニアだったり、そういう地域にいたんですか? それで…… DJ: そういう地域にいたんですか? ええ、もうばかばかしいくらいです。オランダでは果物や野菜に恵まれていて、ここでたくさん育てていますし、ヨーロッパからもたくさん輸入しています。でも市場でいちごを半キロ、つまり500グラム買おうとすると、旬なら1ユーロから2ユーロの間です。いちばん高いスーパーでも、エコ系を除けば、旬でだいたい250です。旬を外れると4、5ユーロまで上がります。まあ、議論のために2ユーロとしましょう。同じ量のいちごが、パロアルトのMolly Stone'sでは11ドルくらいします。本当ですか? ええ。それは本当に……。これが値段の基準としてちょうどいいと思います。ワンルームとバスルームで家賃は月3000ドルでした。ばかげています。持続不可能です。だからこそ、あれだけの給料を払う必要があるんです。 Jonathan: 本当に。 DJ: それで、こちらに戻って同じ給料をもらっていた間は、それはよかったです。ええ、素晴らしかった。それから会社を卒業しました。でも、ああ、プログラミングをやりたい、プログラマーになりたい、とはっきり気づいた瞬間はありませんでした。ただ、自分は得意でお金を稼げる、ということでした。好きになったのはそのあとです。 Jonathan: そして今、あなたはこのテックの世界、テックの分野にいるわけですね。ひとつお聞きしたかったのは、ぜひ詳しく話してほしいのが、アクセシビリティという考え方全体です。私自身はそれが何を意味するのかあまりわからないまま来ています。それがあなたにとって大切なことだと知っているので、そこをもう少し詳しく話してください。 DJ: ええ、今は主に、携帯電話で使えるコンピュータープログラム、つまりアプリですね、それからウェブサイトやウェブアプリケーションを作っています。これは普通、デスクトップやノートパソコン、その他ブラウザが動く機器でブラウザを使って使います。アクセシビリティとは、作るものを包括的にする、つまり他の人にも使えるようにすることです。本質的にはプログラミングとは関係ありません。アクセシビリティと言うときは、たとえば車いすで入れる入口やトイレはあるか、という話をします。空間をよりアクセシブルにするとは、より包括的にして、もっと多くの人が使えるようにすることです。私は、たくさんとまでは言いませんが、人種差別や無知による嫌な経験を世界中でしてきました。この国も含めて。 Jonathan: そうですか。 DJ: そのほとんどは無知から来ていると強く信じています。でも、私の時計、スマートウォッチが肌に焼きつくところまでいきました。色素の多い肌向けに設計されていなかったからです。だから、斑点ができて、心拍数が検出されないか、焼けるとサポートに伝えたときの公式の回答は、色素が少ない内側に着けてみてください、でした。それが公式の回答でした。私のことは見えますが、他の人には見えません。私はドルチェ・デ・レチェのキャラメル色なんです。だから、とても暗い色でも、とても明るい色でもありません。ちょうど真ん中あたりです。でも、石けんディスペンサーが石けんを出さないとか、ドアが開かないとか、そういう問題もありました。 Jonathan: それが公式の答えだったと。それが公式の回答だった。 DJ: はい。それに、そういうことには腹が立ちましたが、すべてただの不便です。私の周りには、支援ツールが必要なほど視覚に障害のある人はいません。耳が聞こえない、あるいは聞こえにくい人もいません。でも、彼らが生活しようとするときに、自分たちの状態がどのように悪影響を及ぼすかは想像できます。だってそういうことですよね。だからこれを調べてみたとき、つまりある夜、Googleを開いて、Mozillaのアクセシビリティに関するページを読み始めたんです。そこにはかなり情報があります。わかったのは、私たちがウェブ開発者として、主にウェブですが、アプリ開発者としても、ものごとをより包括的にするためにできることの多くは複雑ではない、ということでした。複雑ではないというのは、数週間前に講演をして、完全にアクセシブルでないものと、それほどひどくないものの違いを、15分ほどの作業で見せたことです。だから、企業が、アクセシブルにするにはお金も時間もたくさんかかる、と言うのはただの言い訳です。おそらく無知で、それがいちばん前向きな見方ですが、同時にb****でもあります。 Jonathan: 言い訳ですね。 DJ: 本当にそうです。だから簡単だとわかってから、私はそれを広めるようになりました。 Jonathan: では、アプリやウェブブラウザでの例を挙げてもらえますか。たとえば、というだけで。 DJ: ああ、いちばん簡単な例を挙げます。マウスがあると決めつけることです。つまりホバー状態ですが、携帯電話にはそれがないんです。これはいちばんよく知られていることです。なぜなら、人は携帯でそのウェブサイトを使い、ツールチップを見たいのに、長押ししないと見られないからです。携帯でホバーを再現するのが長押しだからです。さて、タッチ機器もマウスもなく、キーボードを使っていると想像してください。標準的なウェブ要素、つまりHTMLを本来の使われ方で使うなら、AndroidやiOSアプリに適切な基礎部品を使うなら、あるいはReact Nativeのようなライブラリを使うなら、これは問題になりません。ここが大事なところです。私より賢い人たちがこれを延々と考えてきました。標準を使うことで誰にとってもより良くなる、という文書が山ほどあります。でも、キーボードでウェブサイトを操作できないなら、あなたのウェブサイトを使えない人が世の中にいるということです。悲しいことです。だって、人が使うためにものを作るのですから。だからこれは、もっと仕事をしろという話ではありません。あなたの仕事を世に出したい、少なくともそうあるべきだ、という話です。つまり…… Jonathan: つまり、何かにどう取り組むかについて、より賢くなることだ、と。必ずしも…… DJ: 教育の部分もあると思います。つまり、これが問題だと誰も教えてくれないから、問題だと知らない人がたくさんいるんです。そして、そういう人たちを責めるのはとても簡単です。アクセシブルにすべきだ、すべきだ、と言う。でも、それがとても広い言葉だから、知らないんです。たとえば、アクセシブルにしろ、と言われても…… Jonathan: とても広い言葉ですからね。アクセシブルにしろ、と言われても、じゃあ何を意味するの、となる。その文脈ではとても広いです。すごく広い。 DJ: その文脈ではとても広いです。すごく広い。信じられないほど広いんです。さらに悪いことに、ある人にとってアクセシブルにする方法が、別の人にとってアクセシブルにすることと両立しないこともあります。たとえば視覚に障害がある場合、視力が悪い、あるいは盲目なら、たいてい点字ディスプレイを使います。ページにあるものを点字に変換するもので、素晴らしいです。ではそれは…… Jonathan: それは、何かを作り出すんですか? わかった、すごくかっこいいと。点字で、ええ、ええ、文字どおり点字で。 DJ: 触覚なんです。はい、触覚です。ええ、本当にかっこいい。触れる点字ディスプレイで、内容を点字で表示します。文字どおり点字です、それだけです。あるいはスクリーンリーダーを使います。画面を音読するものです。両方使う人も多くいます。そういう人は…… DJ: その製品を使えなくなりますよね。でも、彼らが使えるようにする作業をすれば、アイコンを読み上げる、といったことを始められます。歯車のアイコン、設定だと思うものにラベルを付けるんです。これは設定です、と。すると、私たちが目で見ているものを、耳で聞くか触れて感じることでわかるようになります。ところが、ここで知っておくべきことがあります。音声コマンドでページを閲覧する人もいるんです。 Jonathan: 歯車のアイコンのように。つまりSiriのようなものが例ですか? ヘイSiri、設定を開いて、と。 DJ: ええ、Siriのように。ヘイSiri、設定を開いて。そのとおりです。そして、ページ上の視覚的な文字ラベルが、あなたが追加したアクセシビリティ用のラベルと一致しない場合、つまり同じテキストで始まらない場合、しかも最近のもっと新しいツールはそれを考慮していますが、そのボタンをクリックできなくなります。 Jonathan: では、その文脈で目が見えにくい人が移動する体験は、本当に厄介なものになるわけですね? ええ、そういう場合は…… DJ: ええ、そういう場合、支援技術を使う人は、私たちが期待するのとは違う使い方をする、ということはとても大事です。スクリーンリーダーを使っているからといって、その人が盲目とは限りません。私の従業員のひとりは、疲れているときに使います。そうすると集中が続くからです。同じように、音声コマンドを使う人の中には、手がないからではなく、子どもを育てているから、あるいは移動中だから、といった理由がたくさんあります。もともとの目的とは違う形で道具を使う理由はたくさんあるんです。でも、道具がこう動くということを知らないと、そのために開発するのはとても難しくなります。それで私は、いろいろなことに気づきます。ひとつは、大学ではこのテーマについて話す時間がほぼゼロだったことです。これはほとんどの人に当てはまります。私が話したほとんどの人は、学校でこれを習っていません。 Jonathan: つまり、正直に言うと、私はたぶんこのことについて話したことは……ええ、このテーマについて。まあ、なんとなく話題にはなっていますけど。でも、実際に具体的な例として、考えたこともなかった。ええ。それは、うちの妻が妊娠していて、あるいは今は赤ちゃんがいるのですが、ええ。両手を使えないんです。そのとおりです。だから話してください。 DJ: そのとおりです。スピーカーフォンは最高です。これを状況的障害と呼びます。障害にはいくつか種類があります。恒久的な障害、たとえば手を切断すれば手がない状態です。でも腕を捻挫したり、手を骨折したりすれば一時的です。そして状況的障害、つまり両手がふさがっている状態です。そのどれもが、もっとアクセシブルであってほしいと思うはずです。それはプログラミングだけでなく、この世のあらゆるものに言えます。でもプログラミングでは、私たちが影響を与えられるんです。だから2つめですが、まず1つめは、私たちはこれについて教育を受けていない、ということです。2つめは、これにお金をかける余裕のある大企業が、ひどいということです。一般的に、彼らはひどい。ええ、素晴らしいチームもあります。素晴らしいアクセシビリティの推進者もいます。自覚があるでしょう。ここ数年で大きく改善した大企業も確かにあります。でも一般的には、これはデフォルトでやることではありません。一方で、サイトが読み込まれるようにすることはやります。ええ。そしてそれは人が気にかけることです。 Jonathan: でも面白いのは、今はアクセシビリティのために何かを作ることに対してネガティブな見方があることです。一般的な認識では、それは追加でやらなければならないことだ、と。でも実際、それを逆にして、ずっと多くの人が使えるようにするんだ、と捉えれば、力学がまったく変わります。私はあなたがそう言ったところが好きです。話していると、そこに希望のようなものを感じるんです。つまり、そう、あなたの製品を他と差別化できるんです、実際により多くの人が使えるようにするのだから、と。 DJ: より多くの人が使えるようにする。それは……私、少し……それは少し感傷的すぎますか、それとも馬鹿げていますか? 前向きなのは、あなたにできる、ということだと思います。ええ。これは……ロケット科学者である必要はありません。それはいいことです。ネガティブなのは、私たちがこれについて話していること自体、つまり例外だということです。それは悲しいことです。本当に悲しい。でも私は、もっと多くの人が気づいて、そして気にかけるようにしたいと願い、そのために戦っています。ええ。そしてこれについて私がいちばんよく聞かれるのは、DJ、あなたには納得したけど、どうやって同僚を、そして上司を説得すればいいんですか、ということです。 Jonathan: なるほど。 DJ: 会社として、雇用主として、いくつか変えたことがあります。まず、アクセシビリティには料金を取らないようにしました。請求書にはしません。してはいけないことだからです。 Jonathan: つまり、それをスコープに組み込むわけですね。ふつうにアプリを作ります、それで、追加でアクセシビリティも欲しい、と。そういうことですか。 DJ: ええ、面白いですね。でも私たちはそうしません。アニメーションを後付けで入れないのと同じように、アクセシビリティも後付けでは入れません。デザインを後から足すのと同じで、あとから何かをデザインするのはとても難しくなるからです。だから今、新しく何かを作るときは、それはアクセシブルです。それは選択肢ではありません。 Jonathan: 選択肢ではない。つまりそれが仕様なんですね。はい。項目ではないし、そういう…… DJ: 項目ではありません。プロジェクトの一点でもありません。人が求めてきたときには、ときどき挙げます。アクセシブルにしてください、と言われたら、そこに書きます。 Jonathan: わかりますか、私でさえ、追加の一部だという前提を持っていました。あなたは持たないんですね。 DJ: 追加の一部だという前提を、あなたは持たない。ええ。ページに置くボタンはすべてボタンであるべきです。ページに置くリンクはすべてリンクであるべきです。何の話かわかる人には常識です。でも多くの人は、そうしていません。 Jonathan: ではそれは、ベストプラクティスの話にどうつながるんですか? すべてをリンクにしない、という意味で安く作ることもできますよね。ええ。そうでしょう? DJ: ええ、ええ、ええ、とても面白い指摘です。これは、どうやって上司を説得するか、という話につながります。今、プログラマーとして、人手はとても不足しています。求人もたくさんあります。今、すでにプログラミングの分野で働いたことのある人の大多数にとって、新しい仕事を見つけるのは難しくありません。ただし、私が知っているのは西洋の現状だけです。世界のほかの場所では難しいだろうと想像しますが、今の西洋ではそうではありません。あなたが気にかけるべきだと言っても上司が納得しないなら、辞めるべきです。 Jonathan: なるほど。 DJ: なぜなら、これをコストの争いにすると、あなたが負けるからです。相手が見るのは時間がかかる、ということだけです。でもベストプラクティスを使えば、つまりウェブを使い、ウェブ標準を使い、これについて知っていて、知るために時間を投資すれば、インタラクションが少ない、中程度のアプリケーションをアクセシブルにするのに、余計な時間はかかりません。 Jonathan: なるほど。つまり、ただその一部としてやっているから。 DJ: ええ、私より賢い人が考え出したものを使っていて、それがデフォルトでアクセシブルだからです。たとえば入力フィールド。入力するとき、名前を入力フィールドに入れますよね。input要素というHTML要素があります。input要素をデフォルトで使えば、キーボードが使えるだけでなく、音声コマンドでも入力できます。もし…… Jonathan: なるほど。 DJ: ……別の要素、たとえばdivを使って、input要素のように振る舞わせようとすると、他の人がすでに考えたことをすべて考慮できないでしょう。それが要点です。だから、特別なことをしようとせず、自分はあの人たちより賢いと思わなければ、たぶん標準を使うはずです。標準を使えば、すでに半分は達成しています。そして残りのためには…… Jonathan: それが私にとってはいちばん説得力のある論拠です。いちばん説得力のある論拠のひとつは、ものごとが使われるために設計されたとおりに使うだけでいい、ということですよね? DJ: ええ、そうすれば、会社に入ってくる新しい人があなたのコードを理解しやすくなります。始めたばかりの人にとってもわかりやすくなります。すでに世の中にある大量の文書を指し示せるからです。それは……車輪の再発明ではありません。車輪を再発明していない、それが要点です。そして私は、自分で何年もこれを学んだので、自分から気にかけると決めたので、多くのことは実は難しくないと知っています。 Jonathan: なるほど。 DJ: だから、それをやって、自分の日々の仕事の一部にすれば、むしろ誰にとっても簡単になります。それがすべてをより包括的にして、それによってまた一般的になり、さらに簡単になり……そしてもっと楽しくなり……ええ、そのとおりです。ワールドワイドウェブの発明者のひとりが…… Jonathan: ええ、そのとおりです。 DJ: 正確な引用は覚えていませんが、講演の中にあります。これをネットに載せるならリンクしてください。ええ、必ずショーノートに入れます。でも彼は、ウェブは誰もが、そしてすべての人が使うためのものだと言ったんです。 Jonathan: ええ、必ずショーノートに入れます。 DJ: つまり、ワールドワイドウェブの相互接続性の根底にあるのは、もっと多くの人がもっと多くの情報を使えるようにすることでした。始めたのは大学で、自分たちの研究の詳細を共有していました。もちろん、これを軍事利用できないかと考えた政府もあったでしょう。GPSがそうだったように。でも本質的には科学プロジェクトで、こんなに大きくなるとは思っていませんでした。でも、コンピューター同士をつないでデータを共有すれば、実際にもっと速く多くの仕事ができて、古くなってしまう本に書き留める必要のない大きなデータの図書館にアクセスできるとわかったとき…… Jonathan: ええ。アクセシブルであることはインターネットの礎だった、と言えますよね。 DJ: インターネットの柱のひとつ、と言えます。そのとおりです。それは爆発的に広がりました。そして私たちはそれを保ち続ける必要があります。包括的な製品を作る必要があります。これはウェブアプリケーションだけでなく、モバイルアプリケーションだけでなく、あらゆるものに当てはまります。だから親愛なるGoogle、Googleフォトのラベル付けシステムを設計するときに、追加のデータセットにサルを入れていないからといって、黒人にサルのタグを付け始めるのは、ただ不専門的です。社会的な側面は別として。年齢差別、能力差別、人種差別は別として、ただ不専門的なんです。製品を包括的にする方法を考えないのは。 Jonathan: ええ。 DJ: それが私の立場です。人がよく、あなたはこれにすごく熱心だと言うのは知っています。 Jonathan: なるほど。 DJ: でも面白いことに、私はこれで個人的に得をすることはありません。私自身が得をするわけではありません。私はほとんどあらゆる意味で健常者です。確かに少し変で、子どもの頃に落とされたこともありますが、それ以外は自分にこういうものは必要ありません。だから人に気にかけるべきだと思っているのではありません。私が作ったものを、他の人にも見たり聞いたり使ったりしてほしいからです。だからといって私が間違いを犯さないわけではありません。完全にアクセシブルでない、包括的でないコードもたくさん書きます。でも気づいたら、より良くしようとします。それは、ああ、これはいつかできたらいいね、というものではありません。誰かにそう言われたら、やらなければならないと感じることです。でなければ、その人は使えないのですから。 Jonathan: だって……ええ、考えるまでもないことですよね。そうです! DJ: そうです。本当に考えるまでもないことです。 Jonathan: でもいいことです。なぜなら、何か新しいもの、いや新しいというより、たとえばワールドワイドウェブが基盤としていたものを、もう一度前に出しているわけで、それが核となる価値だと思います。それは大事なことです。忘れたくないですよね。テックは実は多くの人にとって手の届かないものです。それにその知識も、理解しているのはまだ一部の人たちです。 DJ: 忘れてはいけません。多くのプログラミング言語が英語で、誰もが英語を話す前提になっていることを考えてみてください。そのとおりです。多くのプログラミング言語が特別なハードウェアを必要とすることも。たとえば……インターネット接続。ええ。それも高速なインターネット接続が、ますます必要になっています。これもまた、私が人によく言うことです。Macがあるか、Linuxがあるかでしかできないものを書く人がいます。でもWindowsを使っている人もたくさんいるんですよ、と。 Jonathan: 昔は、モーターの…1ドル56セント…想像してみてください。覚えていますよ。 DJ: なんという動機、想像してみてください。まあ、私はあの時代を覚えています。親が電話をかけたいのに、あなたがインターネットを使っている、という時代です。 Jonathan: あなたが…… DJ: そのとおり、そして親はかけられない。だからこれが今の世代の問題なのかどうかはわかりません。お金の多くが西洋にあることの問題なのかどうかもわかりません。私たちは一般的に高速インターネットにアクセスできるので、世界中のすべてがそうではないことを忘れがちです。でもこれは、考えるのがそれほど難しくないことでもあります。ええ。 Jonathan: そのとおり、そしてそれはできない。ええ、でも面白い話です。なぜならExercismは、できるだけ多くの人にコードを学ぶ機会を作ろうとしています。つまり、世界の人口のほとんど、それが増えているのは新興市場です。ええ、インド、南アメリカ、アフリカ。そしてそういう地域では、現時点でインターネット接続はずっと不安定です。だから私たちは、インターネットが対応できないから人々がアクセスできないプログラムを作っているのか、ということです。ええ、それはいつも考慮すべきことです。考えることはいろいろあります。 DJ: ええ、間違いなく。でもその点については、もちろん新興市場にも素晴らしいインターネット接続を持つ人はたくさんいます。そしてたとえば、私が最も多く旅したカリフォルニアには、カバレッジがないためにインターネット接続のない人がたくさんいます。とても興味深いです。でも常にオンラインであること、高速であること、速いデバイスであること、高価な機器であること、こうした要求は…… Jonathan: 接続。 DJ: すべてが恣意的というわけではありませんが、予算を決めるという簡単なこともたくさんできます。サイズの予算、つまりどれだけのデータを回線に流すか、と考えてみてください。オフラインモードへの対応、支援技術できちんと動くようにすること、始めるのは難しくありません。だから、より良くするのは実はとても簡単に始められます。それが理由のひとつでもあって、考えてみれば、私がExercismに留まっている理由のひとつです。意見は本当にさまざまでしたが、みんな同じことを望んでいました。それがとても面白いと思うんです。つまり、とても大きなメンテナーとコントリビューターのグループがあり、メンターもいて、みんな同じことを望んでいます。誰もがある程度は、私は他の人が新しい言語を身につけるのを手伝う、と言うんです。どれだけ上手かはあまり気にしないけれど、もっと上手くなるのを手伝う、と。 Jonathan: なるほど。 DJ: それが私を留まらせたのだと思います。素晴らしい。だから私は今もここにいるのでしょう。あと、Jeremyは私が文句を言うのを好んでくれます。そういうこともあります。 Jonathan: そういうこともあります。素晴らしい。アクセシビリティの話全体についてとても興味深かったです。締める前に、あと2つだけ聞きたいことがあります。ひとつめは、テック業界で自分が死んでも守るような、ひとつの考えや「この丘」という概念を掘り下げたいということです。これを話したいと思った理由は、ポジティブな視点で捉えたかったからです。旧来のテック業界には意見がたくさんあります。そうしたことについて良い会話をしたいと願っています。では、テック業界で自分が死んでも守る丘は何ですか? ポジティブに、これは絶対に主張したい、という形で。たぶんさっきの会話でも少し触れましたが、これが大事だ、これのために戦う、というものはありますか。 DJ: ええ、どうぞ。選ぶものが山ほどありますし、言うまでもなく世界のソフトウェアを包括的にする、が最も取りやすいでしょう。でも面白いことに、それが私がいちばん気にかけているものだとは思いません。特にここ数年、あまり心地よくないとされる行動をとる、声の大きい人がとてもたくさんいます。門番のようなことです。大学で学んでいないなら、何もわかっていない、とか。あるいは、バックエンドのほうがフロントエンドより複雑だ、という会話。これはまたExercismにつながります。でも私が願うのは、そうした会話が無意味だとわかることです。フロントエンドの人にとって、バックエンドは、やり方を知らなければ難しいだけです。 Jonathan: やったことがない人がレンガ職人になろうとするようなものです。ええ、でもバックエンドがどれだけ難しいか…… DJ: でも、やったことがないバックエンドの人にとってフロントエンドがどれだけ難しいか、わかりますか? 私がアクセシビリティの話題を出すと、彼らは、ああ、自分はバックエンドだから関係ない、と言います。組み込みシステム、チップ、ロケットのソフトウェアを書く人たちは、本当に優秀です。私たちが想像するよりずっと多くの制約の中でやっています。それからゲームプログラマーもいて、彼らは自分の分野で優秀で、新しい素晴らしいゲームのテクスチャをどうやってGPUに収めるかを考えています。まったく違うアプローチの仕方です。でもそれが面白さなんです。プログラミングとプログラミングについて話すことが面白いのは、違いがあるから、あなたが理解していないからです。そうするべきなんです。ああ、あなたはこうで、あなたはこうで、と否定的な形容詞や副詞や名詞を並べるのではなく。ええ。興味を持ってください。そこから学べるかもしれませんから。確かに、そういうことをする企業や個人やグループもいます。たくさんの分野の間に交差点があって、人は気づいていません。HTTP2は基本的に、TCPというネットワークプロトコルを、UDPの上で動かしています。これはオンラインRPGでよく使われていたもので、持続的な接続なしでより多くのデータを送る必要がありました。Reactは、ウェブと携帯電話の両方のためにリアクティブなアプリケーションを作れるフレームワークのひとつで、ゲーム由来のダブルレンダーという技法を使っています。逆もあります。今ウェブサイトにある支援のための拡張機能は、ゲームの世界にも導入されています。特にMicrosoftは、新しいゲームのいくつかで多くの取り組みをしていて、字幕や、メニューの音声読み上げ、それに難易度曲線など、選択肢を増やしています。つまり、プログラマーが知識を身につける方法、学び方、学ぶ速さは人それぞれだとわかっています。製品を使うときも同じです。それがインターフェースでも、券売機で切符を買うのでも、ゲームをするのでも、あまり関係ありません。そして、こうしたさまざまな分野、さまざまな役割の交差点こそが、すべてがより良くなる場所へと私たちを連れていくのです。文字どおり、すべてが良くなります。ここ数年で素晴らしい大きなものは交差点から生まれているのがわかりますから。ええ、そうした分野の間の。 Jonathan: なるほど。 DJ: 門番をする人はいるでしょう。でもそうすると自分自身の足を引っ張ることになります。だから私が思う、絶対に死んでも守る丘は、そうしないほうが自分のためになる、というものです。つまり、包括的であることだけでなく、他の言語、他の分野、他の役割に対して開かれていることです。自分のほうが難しい、自分のほうが複雑だ、自分のほうが優れている、自分のほうが何だ、と主張するのではなく。これが多くの革新にもつながります。誰かが標準に小さなものをひとつ加えようとして、新しいフレームワークを作るからです。前向きに考えれば、それは私たちにもっと知識を与えてくれます。 Jonathan: では、今日の最後の質問です。ええ。コミュニティに何でも、おすすめをひとつ挙げるとしたら何ですか? 食べ物でも、運動でも、何でも。今週コミュニティに贈るおすすめがひとつあるとしたら、何でしょう? DJ: ええ、おすすめをひとつ。面白いですね。私のおすすめは……オランダに来たら、オランダはアムステルダムより大きいと理解してください。すでにオランダに住んでいて、アムステルダムに住んでいるなら、環状線の外にも世界があると理解してください。自覚があるでしょう。それから地方出身なら、人に田舎者と呼ばれても怒らないでください。だってそうだから。 Jonathan: というわけで、今日のDJからのいいおすすめでした。DJ、時間をありがとうございました。私たちはそろそろ夕食に向かいますが、聞いてくださったみなさんも楽しんでいただけたらと思います。DJ、今週の急なお願いでの収録に来てくれて本当にありがとう。会えてよかったです。いい話ができました。DJが話したさまざまなリンクや講演のメモは、ショーノートにまとめて載せます。でもDJ、ありがとう。どういたしまして。来てくれて本当によかったですし、Exercismのためにしてくれていること、そしてあなたという人に感謝しています。本当にありがとう。では。
コミュニティのメンバーの話を聞いて、学び、刺激を受けましょう。