midnight in a perfect world

webエンジニアのメモ

プログラミング言語大全を読む。

面白かった。プログラミングってなんぞやというところから、今となってはほとんど使われることのない歴史的な言語から現代のWebシステムでバリバリ使われてる様な言語に至るまで、その言語の特性を2ページ前後で紹介するもの。FizzBuzzという世界のナベアツ的の「3の時だけアホになる」的な要件を実際にその言語で表現するとどう記述できるか、みたいなことも紹介されていてそれが特に面白かった。長ったらしいものから馴染みのないものまで、言語の設計者が何をしたくてその言語を作成したのか、とか思いが透けて読める。この辺りは、最近楽しく聴いている「ゆる言語学ラジオ」でもプログラミング言語を言語としてどのように捉えることができるかみたいな問いにも通じて読みながら思い返していた。


www.youtube.com

読みたいと思ったきっかけは、最近になって改めてプログラミング言語の特性や違いを整理したくなったこと。業務で普段フロントエンドのメンバーがリファクタしたり、自分でpythonrubyのプログラムに間接的に関わる部分が増えてきたことが大きい。なんでRuby on RailsActiveRecordは便利だけど危ういのか、とかPHPRuby on RailsをGoに書き直すことで何を改善、実現したいのかとか。

読んでみて、点と点が繋がる様な感じで理解できてかなり視界が開いた感じ。というより、言語の系統樹的な理解ができるのが良い。昔書いていたVisual Basic系の言語の成り立ちや特徴だったり、「linuxでログ集計するときのsedとかawkとかperlってどう使い分けるんや?」とか思っていた最近の問いも少し整理できた気がする。

これを読んだその日から即プログラミング能力が向上する、ということはないと思うけど、本書のどれか一つでもプログラミングかじった事のある位のジュニアエンジニアが読むには凄くタメになると思う。