水平思考

私は今までにいくつかのプログラミング言語を使ってきた。大別してもそう少くは無い種類のプログラミング言語が世間には存在するわけで、それこそ千差万別である。用途が限定された言語(領域特化言語)もあればなんでも出来る汎用言語もあるし、単なるおもちゃでしかない言語(Toy言語)もある。
最近では汎用言語の中でフレームワークを構築して特定用途の問題を解決しようとするアプローチが主流になってきているような気がする。ただ、普段から汎用言語を使っていると、自分の考えをそのままコードとして表現できてしまうので、結局のところ、自分のスタイルの中でしか言語を利用しないようになる。時には領域特化言語に触れてその考え方を導入してみるのも良いのではないかと思う。
例えば、C++の準標準ライブラリであるboostではlambdaを表現する仕組みが実現されているが、最初からC++しか使ったことのない人がこのような抽象化が可能であるということに思い至るだろうか?言語として実現可能な力を持っていてもlambdaを知らないと実現しようとは思わないだろう。「知らないものは捜さない」というやつだ。
で、既に休刊になった雑誌「Cマガジン」の連載記事である「千言万語」に於いて毎回様々な言語を紹介しているのを読み返すと大変面白いことを再発見した。これをまとめて一冊の本にしたら間違いなく売れると思う。華々しい最新技術の使い方を表層的になぞるよりもよっぽど深い概念が詰っている。Cマガジンの公式ページに意見/質問を記入するフォームがあったので早速書いておいた。こういうのって「たのみこむ」とかのサイトで数を募ってからの方が実現しやすいかなぁ?
Document ID: 275c4b58898fc7ac71bec52660bf084e