かたい言語とやわらかい言語

最近id:secondlifeから
C++とかJavaとかってー。インターフェースがちがちで書きづらくないですかー。やっぱLL最高。時代はRubyですよー」とよく言われる。*1
そして目の前でRuby擬似コードを書かれて「こういうのはC++でどうやって書くんですかぁ」とか喧嘩売られます。
(類似の現象として、id:naoyaんへの「こういうのはPerlでどうやって・・・」もあります。)


はてなに入ってPerl触り始めるまでは、正直「かたい」とか「やわらかい」とか分かっていなかったのですが、最近きちんと理解できてきたように思います。
説明が下手なので、あえて説明はしませんが、がっちり固かったり、ふにゃふにゃだったりとやっぱり言語によって違いがあります。
更に同じ言語内でも、その人の設計方針や使用しているフレームワークによって硬度が違います。


一応なんとなく両方とも書いている自分から見ると、やわらかい・かたいってのは、「やわらか・かたい核心部分」が、脳内にあるか、ソースコード上にあるか、言語の機能上に、あるかの違いなのかなぁと。
なのでどちらが優れているとかではなくて、シチュエーションに応じてそのあたりを柔軟に切り替えられるの人が最強なんだろうなぁとは思います。


って、何でこんなことを書き始めたかというとTCPAPIをきちんと決めようと思ったときに、インターフェースに迷いがあり日記に逃避してきたというオチが・・・
さぁそろそろコーディングに戻ろう。


追記:
extern CしてC言語からも使えるようにしようと思って書いている途中で、Bufferインスタンスを戻り値にしているのを発見して萎えた。

*1:一部誇張あり