当ブログは YAMDAS Project の更新履歴ページです。2019年よりはてなブログに移転しました。

Twitter はてなアンテナに追加 Feedlyに登録 RSS

未来のプログラミングについて再考(機械学習とソフトウェア2.0、配管工プログラマ、オープンソースでは十分でない?)

昨年のエントリだが、その後現在までマイク・ルキダス(Mike Loukides、O'Reilly Media のコンテンツ戦略担当副社長)の文章を追って、これを書いていた当時ワタシが理解していなかった文脈、そしてそれに対応するニュースや問題意識が見えてきたところもあるのでつらつらと書いておきたい。

こちらは2019年末に、マイク・ルキダスが O'Reilly Media のチーフ・データサイエンティストである Ben Lorica と共に書いたエントリだが、2020年3月に開催される O'Reilly Strata Data & AI Conference に向けた露払いである。

ワタシはタイトルだけ見て、「ソフトウェア2.0? 今さら〇〇2.0は古いだろー」と思ったのだが、これは Tesla で AI 部門長を務める機械学習の専門家 Andrej Karpathy が2017年11月に公開した Software 2.0 というエントリに由来していて、当時日本圏でも話題になっていたのだが、ワタシは恥ずかしながら知らなかった。

プログラミング言語で開発が行われる従来のソフトウェアが Software 1.0 なら、機械学習を付加した新しいソフト工学の体系が Software 2.0 であり、そこではソフトウェアはニューラルネットワークの重み付けとして記述され、プログラマの仕事は(コードを書くことではなく)データを集めることなどになっていくという見立てである。

我々は未だ「パンチカード」を使っているようなもので、プログラミングはもっと視覚的なものになるべきではというマイク・ルキダスの考えの背景にはこの Software 2.0 の文脈があったのは間違いない。

この「ソフトウェア2.0への道」と題したエントリでは、ソフトウェア2.0は実現に向かっているが、まだその第一歩を踏み出した段階に過ぎないというのが現状認識である。そして、AmazonGoogle といったプラットフォーム企業をはじめとして AI、特に機械学習周りを中心とした様々な取り組みを紹介している。

個人的には、Google が買収した AppSheet などノーコード開発ツールの話題もこの文脈で重要になるのではないかと考えている。そして、そういうのも Google といったプラットフォーム企業に押さえられてしまうんだなという感慨もあるのだが。

こちらは2020年年頭のマイク・ルキダスのエントリだが、我々はプログラマの役割を再考すべきではないかと問いかけている。

ここで彼が引き合いに出すのは、以前にも紹介した「配管工」のアナロジーである。つまり、一口にプログラミングといっても、フレームワークやプラットフォームやプログラミング言語自体を作り上げる高度に訓練されたプロフェッショナルと、ディープなバックグラウンドはないがプログラム作り経験が豊富な人たちである「配管工」に分裂しているとうのだ。

ディープなコンピュータサイエンスの素養はないが優れたプログラミングスキルを有する「配管工」がプロフェッショナルのマーケットに参入する架け橋が必要だし、そうした取り組みは存在するが、一方で「なんでオレがクイックソートのプログラミングの仕方なんて学ばなきゃならないの? 何かソートしたけりゃライブラリ関数を呼ぶよ」と「配管工」プログラマが考えるのも確かなのを認めないといけない。

次にマイク・ルキダスが引き合いに出すのは Google の研究者たちによる論文 Hidden Technical Debt in Machine Learning Systems機械学習システムにおける隠れた技術的負債)で、機械学習というのはアプリケーションの比較的小さな部分に過ぎず、データパイプラインの構築やアプリのサーバインフラへの接続や監視機能の提供といった機能のほうが重要で、この地味な「配管工」向けの接続機能の実装がまずいとサービスの性能に関わってくる。これこそ半世紀の歴史がある既存のプログラミング言語ではなく、またそのパラダイムをビジュアル化しただけのビジュアルプログラミング言語でもない、「配管工」向けの視覚的なプログラミングツールがあるのではないかというのがマイク・ルキダスの見立てである。

さて、これは LWN.net で知った、デジタル・オーディオ・ワークステーションDAW)の Ardour の原作者である Paul Davis のフォーラムへの書き込みだが、ここまでの話につながる問題意識があるように思うのだ。

タイトルは「オープンソースはユーザが本当に望むものから脇にそれてないか?」という問いかけだが、彼が Ardour の開発に携わりだした頃、GPL 以外のライセンスは考えられなかったし、GPL がユーザにしかるべき自由を担保していると考えていたが、その考えが揺らいでいるという。

それはフォーラムであるユーザが、ソースコードをビルドすることなしに Ardour を拡張できるよう要望したことがきっかけである。Paul Davis は冗談だろ? とその要望を何度も却下したのだが、そのユーザも別の DAW である Reaperソースコードにアクセスしなくてもユーザ主導の拡張ができる反例として引き合いに出して折れない。

そうするうちに Paul Davis も、ほとんど誰も全体を理解できない技術インフラに立ち向かわせることでユーザに本当に自由を与えていると言えるのか、C++ のコードを書けばソフトウェアに貢献できるといっても、実際は開発者を遠ざけているのではないかと考えるようになった。

実は Ardour も、プログラムをビルドする必要なく高度な機能を書くことができる Lua API を提供している。が、Reaper などのプロプライエタリな競合にはビルドなしの拡張に関して劣る。2020年のコンピュータユーザは、リチャード・ストールマンが「フリーソフトウェア」を始めたときとは背景が異なる。当時「いじる自由(freedom to tinker)」とは、ソースコードを読み、手を入れて再ビルドする自由と同義だった。今もそれはフリーソフトウェアのコンセプトの重要な一面だが、多くのユーザはソースコードに関わるところから始めることを望んではいない。ユーザがアプリケーションを容易にカスタマイズできることこそ、大半のユーザが最重要視していることなのだ。

Paul Davis が提起する問題に対し、ソースコードに実際に触り貢献する人間が少数派だったのは今に始まった話ではないし、GPL などの自由なソフトウェアのライセンスが今も重要なのは変わりないという反論はあるだろう。Paul Davis も、フリーソフトウェアのコンセプトが今も重要であることは繰り返し書いている。一方で、アプリケーションを改良するのに、普通のユーザにコア開発者と同じように苦労しろと言えるのかという Paul Davis の問題意識も分かる。

この問題についても、プログラマと呼ばれる人種が、高度なプロフェッショナルと「配管工」に二極分化しているというマイク・ルキダスが書く話を補助線にすると見えてくるものがあるだろう。ここでも「配管工」のためのプログラミングパラダイムの必要性が浮かび上がるとワタシは思うのだ。

オライリー的には、上でも挙げた3月の O'Reilly Strata Data & AI Conference カンファレンスに加え、今月末の O’Reilly Software Architecture カンファレンスにそのあたりのヒントがありますよ、といったところだろうか。

ここまでの話とは直接は関係ないが、もうすぐオライリーから出る本では Lean AI がタイトルだけで売れそうな気がする。

Lean AI: How Innovative Startups Use Artificial Intelligence to Grow

Lean AI: How Innovative Startups Use Artificial Intelligence to Grow

  • 作者:Lomit Patel
  • 出版社/メーカー: Oreilly & Associates Inc
  • 発売日: 2020/03/17
  • メディア: ハードカバー

Lean AI: How Innovative Startups Use Artificial Intelligence to Grow (English Edition)

Lean AI: How Innovative Startups Use Artificial Intelligence to Grow (English Edition)

  • 作者:Lomit Patel
  • 出版社/メーカー: O'Reilly Media
  • 発売日: 2020/01/30
  • メディア: Kindle

[YAMDAS Projectトップページ]


クリエイティブ・コモンズ・ライセンス
YAMDAS現更新履歴のテキストは、クリエイティブ・コモンズ 表示 - 非営利 - 継承 4.0 国際 ライセンスの下に提供されています。

Copyright (c) 2003-2020 yomoyomo (E-mail: ymgrtq at yamdas dot org)