関数型言語
LISP,Scheme,Haskellと関数型言語をかじってみました。
手続き型やオブジェクト指向言語よりも、やっぱり生産性は高いと感じます。
感覚的に、再利用可能なコードのうち、オブジェクト指向は半分ぐらいは再利用できるけれど、残り半分がうまくコンパクトに書けません。
(インターフェースや匿名クラスを駆使すればある程度かけるけれど、やっぱり冗長。)
関数型はほとんどコンパクトに書けます。
そういう仕組みを持っているように感じました。
「ソフトウェア開発の定量化手法2nd」でFPあたりの行数を調べてみました。
最頻値で比較すればいいと思うけれど、どうでしょうか?
言語水準 最小値 最頻値 最大値 ------------------------------------------------------ 1. 自然言語 0.10 1,800 3,200 5,000 15. C 2.50 60 128 170 124. Common LISP 5.00 64 132. LISP 5.00 25 64 80 170. C++ 6.00 40 55 140 172. SCHEME 6.00 54 284. Haskell 8.50 38
驚いたのが、Javaがなくて、Haskellがあることです。
この2nd本はとても古く、1998年だけれど、調べてみると確かにHaskellはその当時からありました。
でもJavaもあったハズだよなぁ〜。
Javaはどのあたりだろう?C++は超えられても、Haskellはムリかな。