自動生成という言葉を聞いてどう思いますか?

「自動生成」という言葉を聞いて,これをお読みのあなたなら,どんな印象を持つだろうか? 最近本職で僕は「自動生成」という言葉をよく口にするし,積極的に自動生成を行うようにしている。ロジックを自動生成することも極々たまにあるが,ほとんどの場合はXMLファイルやクラスの雛形を設計書から生成してあげるだけである。自動生成しすぎは良くない。設計書の体形とアーキテクチャを合わせて,それに機械的な規律を持たせ,更にXML地獄から救ってあげる,これが今考えている自動生成の醍醐味である。 しかし,「自動生成」という言葉を聞いただけで,ロクに説明も受けずにいきなり否定的な意見を言う人が非常に多い。ホントに多い。素直に説明を聞いてくれる人は皆無と言っても良い。若い開発者に説明するとすんなりと受け入れるのだが,ちょっと年齢が上がってしまうと,もうダメである。 OSSを知らない現在管理的な役割の世代にとって,「自動生成=悪」なようだ。 その世代が自動生成と聞いて拒否反応を示す理由とは,一体なんだろうか?

  • 自由が利かない。

  • 開発が面倒。

  • ツールがないと保守不能。

  • ベンダー依存になってしまう。

  • ツール自体の難易度が高い。

  • 生成されるコードの質が低い。

  • プログラミングしたほうが早い。

  • 実行性能が悪い。 きっと,こんな感じなんだろう。 説明すら聞かずにいきなり否定する人は本来社会人的に論外なんだけど,残念ながら結構多い。きっと頭の中で,上記のような過去の嫌な思い出がよみがえってくるのだろう。もちろん,そんな過去の経験をちゃんと言葉にして理論的に伝えてくれれば,何の問題もない。しかし,大抵の場合は,否定するための根拠となる明確な理由が語られることはない。 Visual BasicなどのVisual Studio環境は,実は裏で自動生成をしまくっている。フォームを作れば.frmファイルが生成されるし,イベントハンドラの関数も当然自動生成だ。最新のVisual Studioでは,自動生成されるコードのテンプレートを開発者がいじれるようになっているため,より自動生成という機構が重要な位置を占める。つまり,Visual Studioは開発者に対する暗黙的なドメイン依存の標準化を推し進めることが高いレベルで可能になっている。 しかし,JavaのWebアプリケーション開発の世界は,そこまで成熟していない。だからと言って,どうせ標準化をいくら文書で語ったとしても,実装者が守ってくれる確率は低い。 Javaにおいて,できるだけVisual Studioな開発に近づけるためには,自らがドメイン依存の自動生成ツールを仕立てて,開発者が意識せずに標準化の恩恵を受けられるようにしなければならない。「プログラマにコードをできるだけ書かせない」ことを目的にするのではない。Visual Studioに代表されるように,「プログラマに正しいコードを書いてもらう」ことが目的な自動生成なら,そもそも上記の箇条書きにしたような拒否理由は当てはまらなくなるのではないだろうか。(ですよね?> アークランプさん♪) 打ち合わせや提案の場において,こういった意識改革を相手に対して最初にしないと自動生成の必要性をわかってもらえないのは,かなり辛いことだ。しかし,未成熟なJava開発の現場において,絶対に必要なことなのも確かなこと。普及活動というと言い過ぎかもしれないが,より事例を増やしてアピールしていくしかない。 このエントリを書いたのは,28000フィート上空の飛行機内の中。さっき窓からでっかい虹が見えた。ちょうど「プログラマに正しいコードを書いてもらう」という言葉を書いていたときだった。天は我を応援している,のかな。 多くの企業のIT担当の方々には,言葉だけで過敏反応してしまうのではなく,開発時や保守時に見据える成果物の品質と自動生成との関係について,Javaを採用するのなら冷静に判断してもらいたい。

このエントリーをはてなブックマークに追加

関連記事

40%キーボードに慣れるためにやったこと

Lunakey PicoでQMK Firmwareを動かしてみました

Googleアシスタント向け会話型アクションが1年後にシャットダウンされます

Google I/O 2022でのGoogleアシスタント関連のセッション

Remap Organizations feature has been released