powered by TechFeed
表示モード
Ask the Professionals

【後編】「プログラミングしなくてもいい時代に、プログラミングがしたい」——古川陽介のAI時代の学びとコミュニティ論

リクルート/ニジボックスでソフトウェアエンジニアであり、Japan Node.js Association代表理事としてJSConf JPを主催する古川陽介氏が考える基盤技術への向き合い方とAI時代の学び方とは?

後編のテーマは、古川氏が考える技術思想とキャリアについて。npmを狙うサプライチェーン攻撃、「AIが書いたので分かりません」を許さない責任の所在——。Japan Node.js Association代表理事としてJSConf JPを主催する古川陽介氏が、基盤技術への向き合い方とAI時代の学び方を率直に語る。「プログラミングしなくてもいい時代に、僕はプログラミングがしたい」。その言葉の真意とは。(前編はこちらから)

AIが変えたのは「専門領域」より「エコシステム」——加速するサプライチェーン攻撃

― 古川さんはNode.jsやJavaScriptの専門家でいらっしゃいます。AIの登場が、ご自身の専門領域にどんな変化をもたらしていると感じていますか。Node.jsのランタイムやエコシステム、JavaScript/TypeScriptの書き方や設計思想の観点で教えてください。

古川: 目線によって結構変わると思いますが、目線によって色々変わると思います。いわゆるフロントエンドエンジニアでアプリケーションを作っている人はもうバンバン AI を使っていますよね。

開発のやり方の「ベストプラクティス」に相当するものがより高速に変化していくのを感じます。

僕のコミュニティとかにいる知り合いのフロントエンジニアの方々は激しい変化に強いので、便利なものが出たら即試して、フットワークを軽くしながらやっていくことに慣れていると思います。

なので変化はもちろんありますが、粛々と対応していくんじゃないですかね。

一方で、OSS開発という目線に伸ばすと、いろんなことが起きているなと感じます。たとえばNode.js全体のエコシステムでは、npmを狙った攻撃が非常な勢いで生まれています。これはもう無視できない事実です。いわゆるセキュリティの「サプライチェーン攻撃」——ライブラリの依存関係を悪用して、利用者の環境に不正なコードを紛れ込ませる攻撃——ですね。開発者そのものを狙った攻撃や、開発者の環境であるCI/CD環境を狙った攻撃が盛んに行われてきている。これがOSS開発そのものにも影響を与えています。

― 確かに問題になっています。

古川: これは、AIの発展によってそういう攻撃がより簡単になり、かつ、かなり低コストになってきていることも含めて起きていることだと思います。そういう意味での変化は非常に多くありました。今年は、それが1つのテーマかなとも思っています。去年あたりからそういうことを考えていて、今年のJSConf JPでも、そういった領域の方を中心に呼んでみたいなと思っています。

― AIによって逆に悪意ある攻撃がやりやすくなったのは確かですが、これまでの開発環境そのものも大きく変わっていくのでしょうか。

古川: いままでは、ちょっと牧歌的なところがあったと思うんですよ。たとえばプルリクエスト1つとっても、プルリクエストには開発の権限はないわけですよね。誰でもオープンに開かれた状態でパッチをリクエストとして送ることができて、「このパッチを取り込めないか」という判断が来る。それをマージするかしないか、アクセプトするかしないかで決めていました。

ただ、その中に何が含まれているかわからない、勝手に新しいライブラリが入れられている、という可能性もゼロじゃないと思ったときに、プルリクエストという仕組みは、いまの時代において本当に有効な手なのか、ということまで含めて考えなければいけなくなってきたと思っています。

GitHubのOSS文化はそこから来ていると思います。僕みたいにJSConfやNode.jsをやってきた人たちは、そこに憧れて入ってきているところが強いんですね。なので、これがどうなるのかは、注目しているところの1つです。

― ちなみにNode.js自体ではどう対応しているんですか。

古川: 一応プルリクエストに関してはまだ広く開かれたままですが、AIツールを使う時のガイドライン整備や新しくライブラリを使う時に複数の方からのレビューをマストにするなど、厳しくチェックするようになっています。

「AIが書いたのでわかりません」は通用しない——責任はすべて開発者にある

― ほかに何か対応していることは?

古川: もう1つ、AI開発ガイドラインというのも書いています。当たり前のことかもしれないんですけど、外部のコーディングで作ったにせよ、AIツールで作ったにせよ、何であれ、その開発の責任は作った人にある、ということが1つ。

たとえば「この行のこの書き方、どうしてこうしたんですか」という質問があったときに、「いや、AIが生成したのでわかりません」という形で返してきた場合は、それはもう「リジェクトします」と言っているのと同じです。つまり、AIはアシストするためのツールの1つに過ぎなくて、書いた責任は全部開発者にあるんだ、ということを理解してもらう。その上で、よくわからない生成をそのままプルリクエストに出す、ということがされた場合は、リジェクトする。

旧態依然としたやり方ではありますが、「いきなり全部作って全部投げてマージする」ということは、Node.jsの世界ではやろうとはしていません。これはnpmの話でもあります。

「プログラミングしなくてもいい時代に、僕はプログラミングがしたい」——コミュニティ運営の哲学

― Japan Node.js Associationの代表理事として、AI時代のコミュニティ運営における変化や課題をどう捉えていますか。AIが高度な生成を担うようになった環境で、人がコミュニティに集まり知識を共有する意義はどう変わったと思いますか。勉強会の設計にも変化はありますか。

古川: 基本的に、今年もJSConf JPは開催する予定です。それで言うと、Japan Node.js Associationとしては、「コミュニティ運営自体は変わっていない」というスタンスを取ろうとしています。AIアシストでAIからどんどんアウトプットが出てくるとはいえ、我々が元々大事にしてきたのは、プログラミング言語そのものの技術や、それを中心としたエコシステムなので。

ここで、ちょっと脇道に逸れる話をします。記事にできるかが怪しいのですが、結婚をテーマにした某サービスで「結婚しなくても幸せになれるこの時代に、私は、あなたと結婚したいのです」というキャッチコピーがありました。

すごく素敵な言葉だなと思ったのを覚えています。

― いいですね。覚えています。

古川: 僕もいいキャッチコピーだなと思っていて。で、これと同じことが、AI時代のカンファレンス運営やプログラミングにも言えるかなと思っているんです。「自分がプログラミングしなくてもいい時代に、僕はプログラミングがしたいんです」。そういうカンファレンスがあるし、僕はそういうカンファレンスを運営していきたいと思っている、というのが僕のスタンスです。プログラミングが好きで、技術が好き。これ自体は継続してやり続けられるといいなと思っています。

― コミュニティ参加者やエンジニアの意識の変化についてはいかがですか。

古川: AI時代に変わったことで言うと、最近起きていると感じることは、「AIから知見を学んで、それを元にアウトプットして発表する人」が増えていることです。

もちろんこの傾向はある程度しょうがないと思います。僕も調査にAIを使いますし、内容についてもある程度生成してもらって考えることもあります。

ただし、AIで生成したものを理解せずに、推敲もせずにそのまま発表するようなことが起きるのは厳しいなと思ったりします。

そういった事が実際起きたわけではないんですが、これから起きる可能性も否定できないので。

― そうですね。

古川:ただ、ここに関しては正直、カンファレンスの方向性次第かなと思っています。初学者向けのカンファレンスにおいて、「AIで生成されたことを理解曖昧なままで」発表したとしても、初学者向けであれば受け入れていったほうが良いと思います。

JSConf JPは、そんなにものすごく広くはないんですよ。僕のカンファレンスは「どんな人でも話せる間口の広いカンファレンスを目指して」います。しかし、 JSConf.jp は初学者向けのカンファレンスではないですね。僕自身が一般受けするものよりも、コアな技術が好きなんですよね。

一般受けかマニアックかで言うと、マニアックなもの、初学者向けか上級者向けかで言うと上級者向けのものが僕は好きだったりします。僕のオーガナイザーとしての意見は僕のカンファレンスに一定以上の影響を受けてると思います。少し上級者によったテーマが多くなってしまっているように感じていますが、そういう背景からですね。

なので、JSConf.jpの中で、AIを使って生成したものを理解も推敲もせずに発表することは違った空気感になってしまうのでおすすめしません。

― 古川さんは尖ったカンファレンスのほうが合っていると思います。

古川:そういう意味で、AIでジェネレートされただけの記事のようなものを共有すること自体は、僕としてはあんまり良くないかなと思っています。一方で、初心者向けのカンファレンスをやっている人たちのところには、一定そういう人たちがいてもいいんじゃないかとも思います。

― JSConf JPでは、具体的にどんな話をするんですか。

古川: JavaScriptそのものの仕様の話だったり、JavaScriptをパースしたときに出てくる抽象構文木(AST:ソースコードを木構造で表現したもの)の話だったり。もっとマス向けでいくなら、Viteをどう使うか、ReactやNext.jsで……という話をしてもいいと思いますが、Next.js一つとっても、Next.jsのキャッシュの仕組みのような、コアな話のほうに寄っていく。

基盤技術への関心は下がったのか——「知っていて損はない」

― AIがコードを書く時代になって、僕らが学んできたプログラミング言語のような領域のレイヤーが変わってきました。昔なら基盤技術と呼ばれなかったものが基盤技術みたいな扱いになって、学ぼうとしなくても上のコードは書ける、という感じになりつつあるのかなとも思います。そういう技術への関心は、いま高まっているのか、低まっているのか、肌感としてどうでしょう。

古川: 新しい技術に集中して情報を見ていると、JavaScriptそのものに関心を寄せている記事は少なくなったな、という印象はあります。2024年あたりから今に至るまでは、TypeScriptがどうとか、ものすごく盛り上がっていたんですけど。去年から今年にかけて一番盛り上がっていたのは、言語レベルで言うとTypeScriptが5になったとか、BunがRustになったとか、そのレベルの話です。

一方、みんなが関心を寄せているのは、Claude Codeに新しい機能が出たとか、Claude CodeよりCodexのほうが性能がいいとか、そういう内容が増えたな、と思います。

ただ僕自身のスタンスはあまり変わっていません。たぶん、そのものが好きだからだと思うんですけど、学ぶことに意味がないとは思っていないですし、むしろ、ちゃんとコードを書くことには大きな意味があると思っています。

― それはなぜですか。

古川: AIが生成したJavaScriptのコードは、レビューできたほうができないよりもいい。ただ作るというだけなら、AIに任せて、人間は価値のあるところをレビューしたほうがいい。でも、じゃあそれだけやっていればいいかというと、裏側で動いている技術が何なのかに全く興味関心を払わないのは、ちょっとどうかなと思います。

自分が使っているもの、自分のアプリケーションが土台で動いているプログラミング言語がどう動いているのかということは学んで損はないんじゃないかと、僕は常に思っています。

AIツールも学びに活かすと非常に使いやすいものになります。

ちょっとしたアプリケーションはさくっと作れるこの時代、学び方はいろいろあります。最初から順に写経していって学ぶやり方もあるし、生成されたアプリケーションをいじってみたり、機能を追加してみたり、誰かが作ったものを見て学ぶ、というのもある。そこはAI時代にむしろやりやすくなったから、学びの幅は広がっているはずなんです。知見を広げるチャンスはもっとたくさんある。「興味がなくなった」と言われたらそれまでですが、「なくなっても良いことはないのでは」と思いますね。

AI時代の学び方——専門性を磨き、原典に当たる

― 最後に、AI時代に、これからのエンジニアはどう学び、成長すればいいと思いますか。技術の専門性とAI活用のバランスという観点で、古川さん自身がこれからの時代に持ち続けたいと思っているものも含めて聞かせてください。

古川: いろんな会社でも同じことが言われていると思うんですけど、AIを活用するにしても、専門性があるかないかによって、アウトプットの品質が大きく違う。これは皆さんが言われていることだと思います。なので、専門性そのものは、AI時代だろうとなんだろうと、あったほうがいいと思います、

その磨き方として、AIを使って磨くやり方ももちろんあるかもしれないですけど、こういう記事だったり、他の人がやっていることを学びながら磨く、というのがあります。そういう意味では、今回のメディア(AI Professionals)を使うのも1つの方法かなと思います。エキスパートの人って、大量の情報を処理したり、体系立てられた知識を持っていたりするので、他の人と一歩でも二歩でも差をつけたいと思うなら、何らかのやり方で専門性を磨き込んでいったほうがいいと思います。

メディアを読む方法や、本で体系的な知識をやる方法など、いくつかあると思うんですけど。この中で、全部AIでアシストされて作ってしまうと、上積みの部分しか持てなくなってしまう。だから原典に当たったりしながら、知識の幹の部分を増やせるような、ハードコアな学習の仕方も学んでもらえるといいのかなと思います。JSConf JPも含めて、そういう考えに触れに来る——専門性を磨くというのも1つですし、一緒にやったほうが楽しいでしょう、というのもあるので。ぜひ、と思います。

― 最後に。コミュニティの熱量は、AI時代の前と変わらなかったりしますか。

古川: そういう意味では変わっていないかなと思います。僕のコミュニティに来てくれる人たちは、元々そういう志向の強い人たちが多いからかもしれません。逆に、僕のコミュニティに来ていない人たちが、もっと他の関心に向かっているケースもあると思います。もちろん時代の流れでいくと、たとえば今だったら、「Claude Code」という名前のついたカンファレンスを誰かが出したら盛り上がるとは思いますけど。

ただ、人数もそんなに変わっていないし、呼んでくる人たちの豪華さが増えたり、予算が増えたりもしているので、基本的に盛り下がっていく傾向にはない。盛り上がっていると思います。

― コミュニティの熱量が下がっていないと聞いて、安心しました。読者の方がJSConf JPに足を運ぶきっかけになればと思います。ありがとうございました。
(終)


プロフィール
古川 陽介(ふるかわ ようすけ)
ソフトウェアエンジニア。リクルートに所属し、子会社のニジボックスへ出向、開発室長を務める。Node.jsのコミッターとして知られ、Japan Node.js Association 代表理事、Chrome Advisory Board メンバー、TechFeed公認エキスパート。JSConf JPをはじめとする技術カンファレンスの運営にも携わる。 X(旧Twitter):@yosuke_furukawa