IDE教育に不安を覚えること

少し前に、「IDE を使った教育は良いプログラマを育てられない」って本当?...という話題が盛り上がっていました。勿論 IDEを使うこと/使わないことは、教育の結果に決定的な影響を及ぼすわけがないのですが、確かに IDE に抱かれて育った子プログラマ達に不安を覚える気持ちは、わたしの中にあるな〜、と思いました。

んー、多分、DDD の Smart UI のせいかなー。恐怖体験が焼き付けられているんだ、きっと。


* * *


知らない人のために掻い摘んで説明すると、Smart UI は Domain-Driven Design という本に紹介された開発/モデリングアンチパターンです。

Smart UI は、まずは画面(フォームとかWebページとか)の見てくれを定義することから開始して、そのコントロールとかビューとかに直接コードをぺたぺた組み込んでいくスタイルです。勿論モデルなんて分析しないし作らない。そうして作った画面の間は RDBMS で連携させます。コの業界では非常によく目にする設計のスタイルです。画面駆動開発 といっても良いかも。

このスタイルのメリットの一つは、難しくて時間の掛かるモデリングを行わないでも良い為、低スキル技術者でも動くものが作れるし、開発自体も早いこと。もう一つは一律画面毎という乱暴なものとは言えアプリケーションが分割されるので、モジュール化のメリット(分業可能とか、修正の影響がモジュール無いに閉じるとか)をそこそこ受けられること。

デメリットは作られた物の品質がどうしよもなく低いこと。SmartUIはデスマーチを奏でるラッパの音です。


* * *


私たちは DDD の Smart UI アンチパターン でしかプログラムを作れない、底辺を地で行く酷いプログラマを目にします。くわばらくわばら、巻き込まれたら地獄です。その恐怖が「IDE で子供を育てること」への悪印象のでっかい要因じゃないかしら(すくなくともわたしに限ってはそう)。

「結局簡単にできる」=「簡単なことしかできない自分に不安にならずに済む環境」への忌嫌の気持ちというか、そう言う環境で人生を綴ってしまった成れの果てのあまりの酷さの形が 常態化した SmartUI アンチパターン なので、その象徴である IDE がなおさら不安を駆り立てるというか。


そこまで壮大なモノでなくても、コマンドラインでの学習は 駄目な生徒の足きりとして働いてくれるんじゃないかという期待も持ってしまったりとか、それは C を未だに初学に押す気持ちにも通じるかな?とか、「簡単にできる」ということが教育においてどうメリットがあるかとかどう使おうかとかそういうのはすっぱり棚上げして、兎に角ひたすら「簡単にできない」という環境に放り込んで揉ませることで、安心感を得たいと思ってしまうのですな。