

プログラマー/テクニカルライター
クジラ飛行机(くじらひこうづくえ)
1976年生まれ。愛知県豊橋市出身。ソフト企画「くじらはんど」代表。2001年に日本語プログラミング言語「ひまわり」を手がけ、2004年には「未踏ユース」プロジェクトに採択され、後継となる「なでしこ」を開発。本業の傍ら、50冊以上の技術書を執筆しており、近年は『生成AI・ChatGPTでPythonプログラミング』(ソシム)『Pythonでまなぶ ローカルLLMの訓練と使いこなし』(ソシム)などAI関連の著書も多数。
「AIには、もう勝てないですね」――日本語プログラミング言語「なでしこ」の開発者・クジラ飛行机さんは、そう言って笑います。
2004年のβ版公開から20年あまり。なでしこは事務作業の自動化から、中学校の技術の授業(教育図書の2021年度『技術』の教科書に掲載)への活用まで、日本語で読み書きできる国産のプログラミング言語として、幅広く使われてきました。
一方で、クジラ飛行机さんは、生成AIやローカルLLMの解説書を毎年のように執筆しており、自身の開発も「今はほとんどAI任せ」と語る、最先端のAI実践者でもあります。
自然言語で――それこそ日本語で――指示すれば、AIがどんな言語のコードでも書いてくれるようになってきた。そんな時代に、なぜ今なお「日本語で書けるプログラミング言語」をアップデートし続けるのでしょうか。
「むしろ『まさに来た』という感じなんです」。そう語るクジラ飛行机さんに、AI時代における日本語プログラミング言語の価値をどう考えているのか、お聞きしました。
非エンジニアにもコードを読んでもらうために
――まずは改めて、「なでしこ」の成り立ちについて教えてください。
クジラ飛行机:2000年代の初め頃、僕がシステムエンジニアとして勤めていた不動産会社ではまだ紙ベースの業務が多く、自動化すべき作業が山のようにありました。しかも当時は、社員に支給されたパソコンが非常に不安定で、あちこちで「フリーズした、動かない!」と呼ばれては対応するような状況でした。
そこで、昼間は営業のサポートをしつつ、夜には業務を効率化するためのツールをつくっていたんです。ただ、当時はPerlやVisual Basic、Delphiなど、目的に応じて色々な言語を使い分けていたため、それぞれの実行環境やライブラリを別々のパソコンに用意するのが非常に手間でした。
それで、USBメモリに入れて持ち運べて、どのパソコンでもすぐに動かせる業務ツールが欲しかった。そのための、コンパクトなスクリプト言語と実行環境が欲しかった。
それが発端です(編注:2001年の誕生当初に手がけたのは、『ひまわり』という言語。2004年に、後継の言語として『なでしこ』にプロジェクトが引き継がれる)。

――既存の言語でツールをつくるのではなく、なぜあえて「日本語プログラミング言語」をつくろうと考えたのですか。
クジラ飛行机:まず、自分1人でこなせる業務量には限界があったからです。
アルバイトの方にもツールづくりを手伝ってほしかったんですね。プログラミング未経験のアルバイトの方がゼロからコードを書くのは難しくても、日本語で書かれていれば、処理の一部を書き換えて使うくらいはできるのではないか? と考えました。
それと同時に、これまでにないユニークな言語をつくりたいという思いもありました。
「ひまわり・なでしこ」の前に、僕は文字列で楽曲制作できる「テキスト音楽『サクラ』」というツールを開発したことがあります。こちらは「cde」という音階表記ではなく、「ドレミ」で音楽を打ち込めるようにしたところ、非常にウケが良かったんです。
「サクラ」と同じように、プログラミングも日本語で書けたら面白いんじゃないか、と。実用性と面白さ、その両方を満たすものとして日本語プログラミング言語に行き着きました。
――言語の設計思想において、特にこだわった部分はどこでしょうか。
クジラ飛行机:「日本語として意味がわかる」という点そのものです。プログラミングに詳しくない人が読んでも、何をしているのかが直感的に伝わることを最優先にしています。
例えば、なでしこは、「AからBへファイルコピー」といったように、「てにをは」の助詞を使って引数を指定します。一般的なプログラミング言語だと、関数に渡す引数の順番を厳密に覚えていなければなりませんが、なでしこなら語順が変わっても助詞さえ合っていれば正しく動作します。「BへAからファイルコピー」でもよいのです。
こうしたわかりやすさを一貫するべく、言語の仕様を決める時に何かで迷ったときは、常に「初めての人でも読みやすいかどうか」を基準に選ぶようにしてきました。
――その後、「なでしこ3」ではWebブラウザ上で動作するように、アーキテクチャを大きく変えられています。どのような背景があったのでしょうか。
クジラ飛行机:「ひまわり」があるタイミングで拡張性に限界を迎え、「なでしこ」として新たにつくり直す過程で、僕はウノウ(※)という企業に転職しました。そこで大勢の優秀なプログラマーたちと一緒に開発を行ったり、なでしこをOSSとして公開し、いろいろな人から意見をもらったりする経験を経て、言語開発そのものの奥深さにすっかりハマってしまったんです。
より良い形を求めて、「葵」という別の日本語言語をつくってみたり、内部の仕組みをJavaやFlashのActionScript、C#など、各種言語で何度もつくり直して試行錯誤を繰り返していました。
その後、デスクトップアプリよりもWebアプリが主流になる時代がやってきました。皆に使ってもらうためにはWebブラウザ上で動くことが必須条件になり、JavaScriptをベースに「なでしこ3」として言語をつくり直しました。
同時に「なでしこ貯蔵庫(プログラム貯蔵庫)」という、書いたプログラムをブラウザ上で実行し、URL一つで簡単にシェアできるプラットフォームも用意しました。
カメ作成
「blue」にカメペン色設定
10回:
4回:
100だけカメ進
90だけカメ右回転
36だけカメ右回転
▲なでしこ標準のタートルグラフィックス機能「plugin_turtle」を使って、幾何学模様を描くコード例。「100だけカメ進」「90だけカメ右回転」で正方形を描き、それを36度ずつ回転させて10個重ねている。命令が日本語の文としてそのまま読める。貯蔵庫にて実行
クジラ飛行机:というのも、いくら言語をつくっても、それだけではなかなか使ってもらえません。せっかくつくったツールやゲームを、スマートフォンですぐに友達や家族に見せられる「発表の場」があることが、プログラミングを続ける大きなモチベーションになると考えたからです。
このように、時代に合わせてアーキテクチャや構文の細かい部分は何度も変化してきましたが、「シンプルで読みやすい」という根本の方針は変わっていません。
(※)ウノウ:ウノウ株式会社。山田進太郎氏(現株式会社メルカリ代表取締役CEO)が2001年に創業し、写真共有サービス「フォト蔵」やソーシャルゲームなどの開発・運営を行っていたインターネット企業。2010年に米Zynga社に買収された。クジラ飛行机さんは同社にエンジニアとして在籍していた。
もう、AIには勝てない。ほぼLLMで書ける。だからこそ……
――近年、生成AIが劇的な進化を遂げています。2023年、クジラ飛行机さんは「AIは人間を補助する道具であり、最終的には人間が正しく導かなければならない」という趣旨の言葉もnoteで語られていましたが、現在のご認識はいかがでしょうか?
クジラ飛行机:もう、AIには勝てないですね。
正直なところ、去年までは「まだ自分の方が早く正確にコードを書ける」と考えていました。
しかし、AIの進化スピードは凄まじく、コーディング能力において勝てないことを認めざるを得なくなりました。僕も、ここしばらくはほとんど自分でコードを書いていません。やはり、「バイブコーディング」で開発を進めています。
――もはや英語でも日本語でも、任意の自然言語で指示を出し、任意のプログラミング言語でコードを書かせられる時代になりました。そのような環境下で、あえて「日本語プログラミング言語」を使う意味は薄れてしまわないのか、という点についてここからはお伺いしていきたいと考えています。
クジラ飛行机:実際、ChatGPTが登場してからの1、2年は、なでしこ公式サイトへのアクセスが減りましたね。
――そもそも、なでしこに限らず、AIがコーディングを代替していく時代において、人間がプログラミングを学ぶこと自体の価値についてはどうお考えですか。
クジラ飛行机:今後、仕事としてコーディングだけを行う人はほとんどいなくなるでしょう。
ただ、プログラミングを学ぶ価値自体は決してなくならないと思っています。
例えば、AIを使ってとりあえず動くモックをつくるのは簡単になりました。しかし、そこからユーザーが使いやすい本物のプロダクトへと洗練させていく道のりは非常に長く、そこには高度な「問題解決能力」が求められます。
自分でプログラムをつくっていると、例えば「半角のところを全角で書いていたから動かなかった」といった些細なミスで必ずつまずきます。
そこで「コンピュータは思い通りに動かない」という感触を掴み、原因を切り分けて解決していく。そうした試行錯誤の過程こそが、問題解決能力を最も手っ取り早く鍛えてくれます。それが、プログラミングを学ぶ大きな意義ではないかと思うのです。
――問題解決能力を鍛える訓練になる、と。
クジラ飛行机:ええ。
プログラミングは学校で習う数学のように、「教養」になっていくのだと思います。実際、IT企業の経営陣には、すでに開発から離れていても、プログラミングで学んだ論理的な思考法を経営の意思決定に活かしている人が少なくありません。
そうした教養としてのプログラミングを身につける上で、あるいはAIを活用する上で、むしろ、なでしこが生きてくるのでは? と考えています。
――どういうことでしょうか。
クジラ飛行机:一時、マレーシアに移住していて感じたのですが、母国語というのはやはり偉大なんですよ。
昔から刷り込まれているので、長文の英語の中に少し日本語があるだけでもパッと目が行くし、内容のわかりやすさが全然違います。
この可読性は、プログラミングにおいても同様だと感じます。AIが出力したコードが日本語で記述されていれば、母語が日本語である人にとっては、ロジックの流れや条件分岐の意図が圧倒的に読みやすいのです。
つまり、入り口がやさしいぶん、なおさら教育や入門の用途でなでしこがお役に立てるのではないかと思っています。もともと「アルバイトの人でもコードを読んで直せるように」とつくった言語ですから。実際、これまで、なでしこを触ってからメジャーな言語へ巣立っていく人も多くいました。
プログラミングの基礎的な思考力を育む必要性が高まっているならば、教育の領域において、なでしこが提供できる価値は失われていないのではないかと感じています。

クジラ飛行机:また、エンジニアの実務面で言っても、AIが生成したコードは現状、人間がある程度チェックしなければなりません。
もしもその状況がこの先続くとしたら、プログラミング言語において一番重視されるのは何かというと、やはり可読性なのではないでしょうか?
そう考えると、日本人にとって最も可読性が高いのは、やはり母国語である日本語。日本語で書かれていれば、AIが書いた複雑な実装の中に誤りが含まれていても、気づきやすいはず。そうした意味で、なでしこのような日本語プログラミング言語が、この先真価を発揮するのではないかと期待しています。
それは、日本語だけに留まらないかもしれません。
以前に、中国のユーザーさんが、「英語以外でプログラムを書けるなんて面白い」というようなことを、なでしこ公式サイトの掲示板に書き込んでくれたことが何度かありました。
それを見て僕は思いました。「ひょっとすると、日本語だけでなく、中国語や韓国語など、各々の国の母国語で実装されたプログラミング言語が普及し、それを使ってシステムをつくり、保守する時代になるんじゃないか」と。
かなり大げさな話ではありますが、あながちあり得なくもないのでは、と思っています。
――日本語でも英語でも、あらゆる自然言語から、任意のプログラミング言語で、わりと複雑な実装まで出力できるようになりつつある。どんな言語を使っても良い時代がくるかもしれない。そうなったら、むしろ「プログラミング的思考を育むための学習や実務の保守で、最初から母国語で読める言語が台頭するのでは」……ということでしょうか。
クジラ飛行机:そうです(笑)。
実際、ChatGPT登場後は一時的になでしこ公式サイトのアクセス数が減ったとお話ししましたが、AIの時代の中でなでしこを再評価いただいたのか、近ごろは元の水準に戻っています。
恐らくは、教科書に掲載されたこともあり、利用者の多くは「やはりプログラミングを学ぶことは大切だ」と考えて教育目的で使われているのでしょう。
もちろん、僕と同じように日々の業務の自動化になでしこを使っている人も含まれるはずですが、正直、皆さんが今どんな用途で使ってくださっているのか、正確には把握しきれていません。ただ、もしもこの先、なでしこがより多くの人に、実務面でも当たり前のように使われていく時代が来たらうれしいし、期待しています。

LLMになでしこを学習してほしくて
――現在、なでしこ自体の開発においても、AIを積極的に活用されているのでしょうか。
クジラ飛行机:もう、ほとんどのバグ修正や細かなアップデートはAIが解決してくれています。これまで、ユーザーの方から寄せられるバグ報告や細かな要望に、自分1人ではどうしても手が回らない部分がありました。それが今では、AIに任せることで瞬時に解決できるようになりました。
おかげで、僕自身はむしろ言語設計などの「考えるのが楽しい部分」に集中し、実際のコードの実装やリファクタリングはAIに手伝ってもらうという体制に移行できています。
――リポジトリにある「AGENTS.md」というAIエージェント向けの指示書で、「開発者は日本人です。コメントやコミットメッセージは日本語で書いてください。」「親切な日本語でレビューしてください」と指定されているのが非常に印象的でした。
クジラ飛行机:あれは、GitHub上でAIから飛んでくるコードレビューが英語ばかりで読みにくかったので、「とにかく日本語にしてくれ」と指定したかったためです(笑)。
ただ、今後やりたいことを見据えると、AIに対しては「なでしこ」そのものをより深く理解してもらう必要があると感じ、そのための取り組みも進めています。
――具体的にはどのようなことでしょうか?
クジラ飛行机:なでしこは文法が非常にシンプルです。そのため、プロンプトでAIに少しの文法ルールを渡すだけで、正確にプログラムを生成してくれます。
ただ逆に言うと、事前の前提知識なしでデフォルトのAIにやらせると、わりとでたらめなコードを出力してしまうんです。現状のLLMは、デフォルトではまだなでしこを十分に学習してくれていないんですね。なので、世のAIにもっとなでしこを学習してほしいと考えました。
そこで、「なでしこハブ(nadesiko3hub)」というオープンなコードハブを構築しました。これは、「なでしこ貯蔵庫」にユーザーの皆さんが投稿してくれたプログラムのうち、オープンソースライセンスが設定されているものを自動的に収集し、LLMの学習用データセットとして提供する仕組みです。
このハブを通じて、フロンティアクラスのAIに、早くなでしこの文法を完全にマスターしてほしいという願望があります。そうして、より多くの人になでしこを使っていただきたいのです。
――お話を伺っていると、AIが普及したことで、なでしこの存在意義が揺らぐどころか、むしろチャンスになったと感じているのですね。
クジラ飛行机:本当に、チャンスが「まさに来た!」という感じです。
これまでずっとやりたかったけれど、手が回らずに実現できなかったアイデアが自分の中に山ほどあるので、AIの力を借りつつ、なでしこをさらに進化させていく予定です。だからこそ、「なでしこの存在意義が無くなるかも」という不安は感じていませんし、「AIにコーディングを奪われた」という喪失感も特にありません。
そして例えば、最新のコンパイラ基盤を利用してより高速に動作するようにしたり、機械学習などの最先端の技術を、なでしこからもっと簡単に扱えるようにしたり。単なる学習用の言語にとどまらず、「なでしこを覚えれば、AI時代の業務でも役に立つ」と言ってもらえるような言語にしていきたいです。
――では、これからAIにコーディングを任せることが当たり前になる時代において、人間が、あるいはエンジニアが「失ってはならないもの」は何だとお考えですか。
クジラ飛行机:成果物のクオリティを上げるために、新しい技術を学び続け、業務知識を自分の中に取り入れていく姿勢でしょうか。
AIに対して曖昧な指示を出せば、一般的な答えしか返ってきません。業務知識をアップデートし続けることで、初めてAIに対して「高度な指示」を出すことができ、質の高い成果物を生み出すことができます。
だからこそ、なでしこがプログラミングの世界へのわかりやすい入り口であると同時に、最先端の技術を楽しく学ぶ「実践の場」であり続けられるように、これからも開発を続けていきます。
――それにしても、「どんな自然言語を使っても、どんなプログラミング言語でも書ける」状況になってきたからこそ、逆説的に、日本語プログラミング言語であるなでしこに価値があるのでは、と思うようになったのですよね。それは、いつ頃から確信するようになったのでしょうか。
クジラ飛行机:いや〜、いつからでしょうね。だんだんと、という感じではありますが……なにせ、僕の中では最初からずっと「なでしこは最強だ」と思ってつくっていますからね(笑)。
▲直近の「なでしこ」のアップデートでは、「AIによるなでしこ3コード生成ガイド」やAI用JSON作成コマンドの追加といった生成AI連携を強化。さらに、構文解析器やコンパイラの責務分離といった内部基盤の刷新、TypeScript 7への対応、Oxlintの導入など、開発環境の整備も行っている。なおこちらのTシャツの柄は、鯨。
取材・執筆:田村 今人
編集:王 雨舟
撮影:赤松 洋太
ピックアップ関連記事
levtech.jp
levtech.jp
levtech.jp
