全1542文字
PR
4/1朝まで
どなたでも有料記事が読み放題「無料開放デー」開催中!

 自分が最近どんな記事を書いているかを振り返る機会があった。そこで分かったのは、プログラミング言語のPythonに関する記事がとても多いということだ。

 私はネットワーク技術者向けのメディア「日経NETWORK」にもPythonの記事を書いている。2019年10月号では「Pythonで学ぶサイバー攻撃の手口」という特集を執筆した。この特集で使ったのが、ネットワークのパケットを簡単に組み立てたり送ったりできる「Scapy(スケイピー)」というライブラリーである。ネットワークのパケットをプログラミングで一から組み立てるのは面倒だ。一方Scapyを使えば、目的とするパケットを驚くほど簡単に組み立ててネットワークに送れる。

 最近執筆した特集「Pythonで楽々ネットワーク管理」では、ネットワーク機器にリモートログインして操作できる「Netmiko(ネットミコ)」というライブラリーを利用した。ScapyやNetmikoを使って感じるのが、「面倒な処理のはずなのに、こんな簡単にできていいのだろうか」という戸惑いだ。

Railsでは実力がつかないとの主張

 数年前、「Webアプリケーションの開発にフレームワークのRuby on Rails(以下、Rails)を使っていると実力がつかない」というブログ記事が公開されて賛否両論を巻き起こした。

 Railsでは、一から開発すると手間がかかる機能が既に提供されている。こうした機能の利用に慣れてしまうと、プログラミングの実力が身に付かないという趣旨だったと記憶している。しかし実際にやると分かるが、Railsを使ったWebアプリケーションの開発はそれほど簡単ではない。データベース設計、会員登録と認証の仕組みなど、考慮しなければならない事項がたくさんある。Railsはそれらのサポートはしてくれるが、本質的な難しさがなくなるわけではない。

 一方、Pythonでライブラリーを使うのは本当に簡単だ。前述したScapyやNetmikoしかり、機械学習で使われる「scikit-learn(サイキットラーン)」しかり。やりたいことを指定してライブラリーを呼び出すだけである。「Railsばかり使っていると実力がつかない」のなら、「Pythonばかり使っているとバカになる」というレベルだ。

 「バカになる」はネガティブな表現だが、この場合の「バカになる」は「ライブラリーを使えるだけで、作れるようにならない」という意味だ。実際には、利用したいライブラリーは既に提供されている。わざわざ再実装する意味はない。バカになるデメリットは事実上ないのだ。

 一方、バカに徹するメリットは大きい。実装が面倒な部分をライブラリーが引き受けてくれるおかげで、人間は「やりたいこと」に集中できる。

 実際に自分のやりたいことを実現しようとすると、自分でロジックを記述しなければならないケースも出てくる。そのうち「こんなライブラリーがあれば便利なのに」と考えるようになるかもしれない。そこで初めてライブラリーの開発に取り組めばいい。

 長期的に見れば、プログラミングは徐々に要らなくなる技術だ。現状では、コンピューターにしてもらいたいことと、コンピューターが実際にできることの間にギャップがある。だからプログラミングによってギャップを埋める必要がある。コンピューターがもっと賢くなって、人間がしてもらいたいことを理解できるようになれば、プログラミングの出番は減っていくはずだ。

 そうした意味で、複雑なプログラミングが不要な環境、すなわち「Pythonよりももっとバカになれる開発環境」は、正しい進化の方向だと考えている。そうした開発環境が今後どんどん登場することを期待している。

大森 敏行(おおもり・としゆき)
大森 敏行(おおもり・としゆき) 1991年日経BP入社。主にソフトウエア開発やネットワーク技術に関する記事を執筆。日経バイト、日経コンピュータ、日経エレクトロニクスなどを経て、現在は日経クロステック副編集長。