メソッドを探してくれるメソッドと、メソッド自動生成の可能性

このようなメソッドを作ったと仮定する。

String.findMethod("ABC", "abc")             # => #

何かというと、"ABC".??? を呼び出した結果が"abc"になるようなメソッドを検索してくれるメソッドだ。
「こんな動きをするメソッドって、なんて名前だったっけ」というときに、書いて実行すればそのメソッドがわかるという、素晴らしく便利なものだ。
これを利用すれば、メソッド名が何一つわからなくてもプログラムが書ける。


こういうことができるのなら、元データと結果の法則性を調べてアルゴリズム化することもできるかもしれない。
しかし、この発想は基本的にうまくいかない。
"ABC"を入力したら"abc"を返す、と簡単に言うが、たとえば仕様書にそう書いてあったら、どう考えるだろう。
入力された文字を小文字にする。
まあ、それが普通の人間らしい発想だ。
んでも、例えば小文字が入力されたらどうなるべきなのか。
仕様書がこんなものだと、解釈のしかたも膨大な数になる。
ひょっとしたら"abc"を無条件で返すメソッドかもしれないし、初めの3文字を"abc"に置き換えるもので、"ABCD"を入力したら"abcD"になるのかもしれない。
入力・出力のパターンをたくさん作って、すべてに該当するアルゴリズムを・・・としていくと、最も効率よく書いたとしても、結局は自分でメソッドを書くのと同量の記述が必要になる。


業務システムを書いていると、いちいち細かい条件で細かい処理を書かなくてはいけないことが多くて、非常に面倒だと思うことがよくある。
なんとかして簡単にシステム構築ができないものか。
仕様書を完璧に書けるなら、そこからプログラムを自動生成すればいいじゃないか。
でも、結果として完璧に自動生成できる仕様書ってのは、完璧に仕様を満たしたプログラムと同じ規模になる。