Kyle Simpson:ほとんどの人が学ぶJavaScriptはもう覚えていない

2019/05/21 09:00

はじめに

私たちは、オープンファースト伝道者、Symmathecist兼JavaScript神学者、そしてYou Don’t Know JSブックシリーズの著者であるKyle Simpsonに話を聞きました。

Kyle Simpsonさんは、最も期待されているJSNation Conference 2019の講演者です。彼は6月5~6日にワークショップを開催し、6月7日に基調講演を行います。 Kyleさんは、Javascriptの生きる神と呼ばれ、オープンソースを広めた一人として知られています。今回のインタビューでは、JavaScriptに関する彼の知識をすべて共有します。数あるプログラミング言語でも最も議論されていることや面白いこと、JSに恋をしてしまった彼の「aspera ad astra(苦難を超え栄光へ)」の旅を聞いてみましょう。

インタビュー

Kyleさん、こんにちは! JS Nationインタビューへようこそ。さて、「あなたはJSを知らない」の本の著者ですが、あなたはあなたがJSを知っていると思いますか? 😉

JSを完璧に知っている人は世の中に誰もいないでしょう。自慢ではなく本当の話ですが、僕は、ほとんどの人が学ぶようなJSは覚えていないです。Javascriptを接する時、ただ丸覚えするだけでなく、常にいい方向に向かって学ぼうとする姿勢が大事だということを話したかったです。いったんJSで作りたいものが作れるようになれば、コード上で自分がやりたいことをより明確にするにはどうすればいいのかという、新しいレベルの学習になります。それこそ、より深く、より難しい学習のスタートです。

https://twitter.com/reverentgeek/status/1111614556294561792

JavaScriptで最も議論を起こすような/逆説的なものは何だと思いますか?

私はJSの型の扱い方がおそらく最も誤解されやすい(それのため議論を起こしている)ところだと思います。JSの「クラス」体系もそうですね。2番目ぐらいでしょうか。ほとんどの人がC ++やJavaのような言語から慣れ親しんだ静的型付けの観点から「型」をとらえているからだと思います。JSの型体システムは明白ではないので、おそらくJSの型システムは単純であるか(最善)存在しない(最悪)かです。僕はJSの型システムは実に素晴らしく強力で、よく設計されていると思います。完璧ではありませんが、型システムについては世間で十分に理解されておらず、十分に活用もされていません。

(TypeScriptやFlowなどの)JSで型を「修正」する必要はないと思います。それよりは、ちゃんと理解した上で、型をより明確に伝える必要があると思います。たとえば、最も一般的な考えとは真逆になりますが、==演算子は実際には===よりも強力で実用的です。本当は、優先的に==を使い、===は最後の選択肢にするべきです。僕の主張を理解するためには、まず型そのものと、どのように変換されるかを理解する必要があります。ただ「JSの型はやっかい」と思わないでほしいです。素晴らしく、潜在能力高いところを最大限活用しないと、あなたのプログラムは苦しむはずです。

https://twitter.com/RubenJ/status/520555340640059392

JavaScript言語で最も魅力的なのは何ですか?

私はおそらくJSの「マルチパラダイム」アプローチに最も興味を持っています。確かに他の言語でも同じようなことをしていますが、まったく違うパラダイムを同時に持っているので、JSが一番マルチパラダイム的な言語なのではと。10日間の実験から始まった言語が、今や世界で最も広く使用されている言語に成長したことには本当に感心しています。そのコアな所は10日目に全部決められ、今も使われていますね。Brendan Eichの飛びぬけた才能のおかげだと思います。世の中には「JS嫌い」の方がたくさんいて、その中のほとんどは、「他の言語だったらよかったのにな」と不満を言っています。

しかし、JSはまさにそれがどこにあるかを知るために必要なものです。他のどの言語も成功しなかったでしょう。それは、他の言語ではできない、JSの柔軟さ(別名「マルチパラダイム」)があるからです。それは明らかに証明されています。私はプログラムを完全に順番に、完全にオブジェクト指向にも、あるいは完全にFPパターンのみで書く必要はありません。それぞれの単体プログラムにあったパラダイムを選んでコードを書けばいいので、ミックスアンドマッチさせるのに最適な言語なのです。私が考えている限り、JSほどユニバーサルな言語は他にありません(または今後もありません)。JSが「リンガフランカ(共通語)」とも呼べるのは、共通のブリッジ言語としてあらゆる言語を組み合わせることのできる強力な言語であるからです。僕にとって本当に魅力的なところです。

「あなたはJSを知らない」は、JavaScript開発者のための聖書のようなものです。生きているJavascriptの神として、どのように思っていますか?

まず、僕はJSの専門家でもありませんし、僕が「神」と呼ばれるに値するとは思わないです。私がJSコミュニティへの特権を頂いたことには本当感謝しています。私がこの本を書き始めたころは、2,500部売れたら成功だろうなと言っていましたが、今では、10万部以上の売れた大ヒット作になりました。夢でも思わなかった成功です。

理解するのはまだ難しいです。多くの読者に愛されたのは、一人一人の読者の皆様やプログラマーコミュニティがなぜ、どのように機能するのかを理解する必要があると信頼している僕の心が伝わったからなのではと思います。本を書くときは、いつも彼らの隣に座り、ゆっくり会話をするように書きたいと思います。僕が学び、僕が情熱を持っていることをちゃんと伝えたいです。多くの人々の心に響いたのは、もしかすると、JSを本当に知ってほしい僕の気持ちが伝わったかもしれませんね。

彼らとの唯一の違いは、僕は答えを見つけるまで質問し続けたことです。本という形で、質問と答えを書いて行こうと決めたのです。そうすると、きっと他の人は同じ苦労をしなくて済むでしょう。それが作家の喜びです。その計画は成功し、たくさんの人に愛されています。

https://twitter.com/NatashaMrtn/status/661692277346054144

JSとどのように「恋に落ちましたか」?はじめは先生やメンターから学びましたか?それとも独学ですか?

間違いなく独学です。正式なコンピューター工学を勉強しましたが、工学分野としてのプログラミングを学びました。僕が勉強したCSプログラムでは、JSのような言語を見下ろしていたので、今の僕のJSへの愛着とは直接関係はないです。多くの人は、学ぶほどJSを嫌いになることが多いのですが、僕は正反対でした。

最初は、それほど好きではありませんでした。しかし、理解を深めることにつれ、JSの事が好きになってきました。一目惚れではないですね。恋に落ちてしまった一番の理由なのですが、どんなに複雑な課題でも、JSはより違う解決策を持ち、いつも問題を解決に導いてくくれたからです。僕をより強く、より無敵にしてもらった、今までに出会った中で最も柔軟なツールです。他の言語でソフトウェアを書くことを考えると、どこから始めたらいいか全くわからなくなります。柔軟なJSが他のフィールドに広がっていくほど、その中でどのように機能していくのかが楽しみになってきます。

今では、自分の携帯電話をはじめ時計、冷蔵庫、テレビ、ケーブルボックス、さらには僕の家の電球まで制御するアプリをJSで書くことができます。まさに幼年期の夢の実現ですね。なんでもほしいものは作れるのです。JSを愛しない理由なんてありません!

あなたは自分自身をオープンウェブの伝道者、JavaScriptの神学者、Open-First Developer、そしてSymmathecistとして説明します。本当のあなたのことを教えてください。

“Open-First”と“ Symmathecist”は、コミュニティにおける僕の主体性を最も完全に体現しています。「Open-First」と言うのは、最高のソフトウェアは、ただ人に魅せるためのソフトウェアではなく、一緒に築き上げていくソフトウェアであると信じているからです。いつも、僕が書く行はいつも最悪だと考えていて、改善するには、できるだけ早く他の人と協力し、より良いコードになるように直していく道しかないと思います。それこそ、コミュニティとしての「オープンソース」の精神は、そこからであり、僕がこれからも実現していきたい哲学でもあります。

「Symmathesy」は、僕にとっては少し新しい言葉ですが、コンセプト自体は、僕かずっと前から信じていることです。ただ、どのようにすれば明確に表現できるかがわかりませんでした。Jessica Kerrによる素晴らしい講演を通じて、この考え方を理解することができました。Symmathesyとは、「一緒に学ぶ」ことを意味します。僕の「getify」は、自分の役割を「外出して物事(アイデア、サービスなど)を入手して人々に提供する」と表現するために何年も前に作り上げたものでした。開発当時は、これが僕を「人を教える」位置に導くとは思っていなかったです。

しかし僕にとっては、教えることと学ぶことは同じ事に向かっての両面的なものです。なので僕が教える時も、本当は「一緒に学ぶ」ことをしているのだと考えています。他の方たちもそのように考えてほしいですね。つまり、オープンファーストも、Symmathesyも、一緒によりよい道を目指し、一緒に成長するという意味で同じ考え方なのです。

今手掛けているJavaScript関係の本はありますか?

次は、コードを読みやすくすることに関することを書きたいです。これは、ここ数年間僕が書き、コーディングし、教えていたほぼすべてのこととつながっています。しかしその前に引きずっていたYDKJS第2版と、僕の最新作の第2版、「Functional-Light JavaScript」の作業に入らないといけません。そうだ。FPに関して最近思っていた内容をいくつか含めて、FLJSの続編を書きたいと思います。たとえば、JS型をより効果的に使用する方法や、FPパターンにReactスタイルのフックを使用するなどです!書きたいことは山ほどありますが、時間があまりないですね!

https://twitter.com/YDKJS/status/680073467299889152

ご自身のKickstarterキャンペーンページで、人々と出版社の両方からの支援を受けたハイブリッド出版モデルを試していると述べました。このモデルはうまくいったと思いますか?

実験自体もやりがいありましたが、O'Reilly社に金銭的な面を含めサポートしていただいて本当に嬉しかったです。執筆から出版までのプロセスがもっとわかりやすくなれば、本を書きたい、作家になりたいと思う人が増えるはずです。最初エディターの方に「Github」アカウントを作り、フィードバックをアップデートするように話したときは、彼ら戸惑っていました。僕は、僕が開発や講演をする時いつも心がけている「オープンファースト」精神を、執筆活動にも生かしてみたかったのです。本を書いてみたい人には、とてもいい試みになったのではと思います。

ここ数年間、このやり方について僕に尋ねたり、ついにはライターになる人をたくさんみてきました。非常に喜ばしいことです。僕は今もオープンファースト方式で書いて(そして今は自己)出版を出していますし、これからもライターである限りは、同じことをしていくつもりです。他のやり方ではしないと思います。他の人も、同じことをやってほしいですね。

アムステルダムで最も美しい教会の一つで基調講演をされる予定ですね。JS神学者のKyleさんが教会で講演するということは、なにかの兆候ではありませんか?

まあ、おそらくそうでしょうね!今までの活動からJSの好きすぎさが明らかに出ていたので、ある方にもらった別名です。よく似合っていると思います。JavaScript(およびそのコードの読みやすさ)が「宗教」なら、その「宗教」を自分の生活にいかに適用するか、いかに世の中に広めるかを工夫し、努力し、一生を費やしてきたところが似ています。

 

アムステルダムJSNationカンファレンスでは何を話す予定ですか?

JavaScriptは、ここ数年で素晴らしい賭けであることがわかりました。気づいたかもしれませんが、長い間、JavaScriptは2つに分かれ、平行に進んできました。業界はその2つを分岐させています。これからはまったく異なる目的地に向かっていくでしょう。これらの変化がJSをはじめ我ら、そしてウェブ界にどのような影響を与えていくのか、じっくり探検していくべきです。


JSNationで予約する

この記事は、著者の許可を得て翻訳しています。なお、原文はこちらです。

新着ピック  






















新着ニュース

LINE「OpenChat」、トークルーム検索機能の再開を延期 「検索精度を上げるため」

バーチャルタレントがスナックのママに--“場所を選ばない接客”の働き方

リザーブドインスタンス(RI)を間違わずに購入したい! それなら AWS CLI を活用してみよう。 -オペ部だより- | DevelopersIO

ローソン、「深夜に店員ゼロ」を実験へ QRコードで入店、セルフレジで決済 遠隔監視で万引き防止

銘菓「ニコンようかん」、ネット販売終了 「裏の主力製品がなくなる」と惜しむ声

WindowsでAWS CDK(C#)の開発環境を整えてみた | DevelopersIO

TC Tokyo超早割チケットは8月末まで!トヨタの自動運転開発子会社TRI-ADのCEOが登壇決定 | TechCrunch Japan

たこ焼きロボからマイクロモビリティまで竹芝埠頭にロボ集結 | TechCrunch Japan

家事代行のベアーズ、マンションにスタッフ常駐の新サービス「MAUCHI」開始

対象店舗でビットコイン決済するとTポイントを付与--bitFlyerとTポイントが業務提携

野村不動産アーバンネット、不動産売買支援システム「Kimar」を導入

Application Load BalancerのリスナールールによるIP制限 | DevelopersIO

Application Load Balancerのリ...

DevelopersIO / 3時間前


最短2日で物件売却のすむたすが直販を開始--「すむたす直販」が担う中古流通比率の引き上げ

ローソン、深夜時間帯を“無人化”する実証実験--横浜で半年ほど実施

Amazon VPC設計時に気をつけたい基本の5のこと | DevelopersIO

ソニー、学校向けプログラミング学習キット「KOOVベーシックキット」を9月に発売

「Zaif」元運営のテックビューロ、仮想通貨交換業を廃業へ

なぜβ版でスタート? 独自プランは? IIJに聞く「eSIM」戦略

Github ActionsのワークフローへCircleCIのワークフロー流用を試してみた | DevelopersIO

ブランドリセール「RECLO」のアクティブソナー、中国企業などから約36億円を調達

もっと見る
ログイン
会員登録
Register
記事をPICKする

会員登録すると、もっと便利に利用できます。