ユーティリティ開発に関する世界観です。
実際のところ、プログラミングとは、プログラムを開発する際に必要となるユーティリティを作り、その後でもう一度元のプログラムに戻って開発を継続することです。
たとえば、ANSI Common Lisp (スタンダードテキスト)という書籍でも、そのようなことが述べられています。
たとえば、ゲームを開発するのであっても、最初からゲームのすべてを開発するわけではなく、ゲームを開発する上で、なんらかの小さなユーティリティが必要になったら、そのユーティリティを開発し、そのユーティリティが完成した段階で本筋のゲームの開発に戻り、ほかの部分からそのユーティリティを利用するようにするのです。
なので、プログラミングを行うということは、決して一枚岩ではないということ、なんらかの必要な処理が生まれたら、それをユーティリティとして構築するための方法を、考えて記述する時間と手間を惜しまないことを目指していきましょう。
2023.05.16
また、ユーティリティというわけではありませんが、ANSI Common Lisp (スタンダードテキスト)によれば、Lispはボトムアップな開発のできる非常に優れた言語です。
Lispでは、関数やマクロを自由にユーザーが定義できます。Lispの大部分は、ユーザーによって定義された関数やマクロとまったく同じ方法で作られているため、言語を文字通り「改変」することが可能となります。
つまり、Lispという言語は自ら作ることができるのです。
また、Common Lispは非常に優れた言語です。Common LispにはCLOSというオブジェクト指向のシステムがありますが、これはまったくほかのオブジェクト指向言語に劣らず、メソッドの前後に処理を追加する補助メソッドを使うことで、デコレータのようなこと(あるいはアスペクト指向のジョインポイントカットで行えるようなこと)すら可能です。Lispは究極の言語であり、ユーティリティを作る上でも大きな力となります。
2023.05.16
LispやCommon Lisp入門を参照のこと。