インターフェイスが変わると思考が変わるから、プログラミングもインターフェイスが重要で、というか大体はインターフェイスの話をしていることが多い。プログラミング言語もライブラリも、エディタも、IDEも、CUIも実は全てインターフェイスの話をしていて、底のデザインをどうするかという問題と、あとは実際の速度とのトレードオフの話の兼ね合いなのかな、と思っている。
プログラミング言語: Cで書くよりRubyで書いたほうが余計なことを考えなくて良い。その分他のことに時間を割ける。HaskellやGo、Rustなどの言語デザインに関しても同じことが言えると思う。
ライブラリ: APIのデザインをすることでプログラマのコードに制約をかける。可読性の高いコードを書かせたりできる。FluxやReactなどはそういった事例の1つ。ReactはそのためにJSXを開発していると捉えることができる。
エディタやIDE: リファクタリングがボタン一つでできればコードの書き方が変わる。極論言うと、まだ良い名前が発見できてないものに関してはasdf_priceとか適当な名前にしておいて、後でリファクタリングボタンで直すとかができるようになる。
多分木べらで卵焼きを作るのとフライ返しで卵焼きを作るのと菜箸で卵焼きを作るのは全く違った行為や思考になるはずで、さらにはIHなのかガスなのかみたいなのもあると思う。道具によって仕事のはかどりや思考が変わってくるという話を書きたかった。