[Haskell-cafe] code length in Haskell, a comparison

Gregory Guthrie guthrie at mum.edu
Tue Nov 20 04:55:19 CET 2012


There is some interesting data in the article at:
    
   Code Length Measured in 14 Languages
    http://blog.wolfram.com/2012/11/14/code-length-measured-in-14-languages/

basically comparing program lengths in various languages, and some ensuing discussion of how this relates to language expressiveness, etc.
(He does all of his analysis in Mathematica, which is the goal of the article.)

It is interesting to see how well Haskell showed in the data; and it would also be interesting to see how well it could replicate the analysis example which was a nice example of web data scraping!

The data is the length of a series of programs written in a number of languages (data from: http://rosettacode.org/wiki/Rosetta_Code).
(The columns don't map well to text only, Haskell column marked with ≡≡≡≡ (Why doesn't this list support HTML?)).
  See nicer version at: http://pastehtml.com/view/ciy7woohv.rtxt

The average for Haskell of 1.89 means that on the average the same program in Haskell takes ~2x in the other languages.
Given the correlation of size to clarity, complexity, effort, and errors, this is a good thing! :-)

	Code Size relative to Mathematica															
	Larger numbers indicate that the language on top needs more code.

	C	C++	Fortran	Java	CLisp	Python	C#	JavaScript	R	MATLAB	Clojure	Pascal	Haskell	Ruby	Average
             ???????????	????	????	????	????	????	????	????	????	????	????	????	????	≡≡≡≡	????
	Mathematica	17.0	9.1	8.1	6.4	6.3	7.2	6.4	5.0	3.2	3.2	1.6	5.8	3.5	5.2	6.29
	Ruby    	2.7	1.8	1.9	1.3	1.1	1.1	1.5	1.0	0.7	0.9	0.4	1.4	0.7		1.27
	Haskell	3.6	2.7	2.5	2.0	1.6	1.7	2.2	1.5	1.1	1.5	0.7	2.1		1.4	1.89
	Pascal   	2.2	1.5	1.2	0.8	0.8	0.8	1.0	0.8	0.5	0.6	0.2		0.5	0.7	0.89
	Clojure	8.8	5.3	5.2	3.6	3.7	3.3	3.8	2.5	1.9	2.9		5.0	1.5	2.6	3.85
	MATLAB	3.6	2.4	1.8	1.1	1.4	1.1	1.7	0.9	0.8		0.3	1.6	0.7	1.1	1.42
	R          	4.7	3.3	2.4	1.9	1.8	1.7	2.1	1.5		1.3	0.5	2.2	0.9	1.4	1.98
	JavaScript	2.8	2.1	1.9	1.2	1.2	1.1	1.6		0.7	1.1	0.4	1.3	0.7	1.0	1.31
	C#       	2.0	1.4	1.3	0.9	0.8	0.8		0.6	0.5	0.6	0.3	1.0	0.5	0.7	0.87
	Python  	2.2	1.6	1.5	1.1	0.9		1.2	0.9	0.6	0.9	0.3	1.3	0.6	0.9	1.07
	Common Lisp	2.8	1.8	1.6	1.3		1.1	1.3	0.8	0.6	0.7	0.3	1.3	0.6	0.9	1.16
	Java     	2.1	1.4	1.5		0.8	0.9	1.1	0.8	0.5	0.9	0.3	1.2	0.5	0.8	0.98
	Fortran	1.4	1.0		0.7	0.6	0.7	0.8	0.5	0.4	0.6	0.2	0.8	0.4	0.5	0.66
	C++       	1.4		1.0	0.7	0.6	0.6	0.7	0.5	0.3	0.4	0.2	0.7	0.4	0.6	0.61
	C          		0.7	0.7	0.5	0.4	0.5	0.5	0.4	0.2	0.3	0.1	0.5	0.3	0.4	0.41
          ????????????	????	????	????	????	????	????	????	????	????	????	????	????	≡≡≡≡	????
	Overall:	4.1	2.58	2.3	1.68	1.56	1.61	1.85	1.27	0.85	1.14	0.41	1.86	0.83	1.29	

Overall Ranking:
   Clojure		0.41
   Haskell		0.83
   R        		0.85
   MATLAB		1.14
   JavaScript		1.27
   Ruby 	        	1.36
   Common Lisp		1.56
   Python		1.61
   C++     		1.68
   C#    		1.85
   Pascal		1.86
   Fortran		2.33
   C++    		2.58
   C       		4.09
-------------------------------------------



More information about the Haskell-Cafe mailing list