[MLton] MLton 2005 survey results

Matthew Fluet fluet@cs.cornell.edu
Sat, 12 Mar 2005 13:47:01 -0500 (EST)


Here are the results of the 2005 MLton annual survey.

Number of surveys: 52	    (up from 32 in 2004)

Occupation:
	 6 (11.5%)	undergraduate student
	12 (23.1%)	graduate student
	15 (28.8%)	faculty/researcher at university
	 2 ( 3.8%)	researcher at industrial research lab
	13 (25.0%)	programmer
	 4 ( 7.7%)	other

We saw an increase in student users (up from 6% undergraduate and 13%
graduates).  Faculty and researchers at universities stayed constant.
We didn't have "researcher at industrial research lab" in 2004, which
may explain the decrease in programmers and other (down from 38%
programmers and 16% others).

Years using MLton:
	14 (26.9%)	0 years
	19 (36.5%)	<1 years
	16 (30.8%)	1-5 years
	 3 ( 5.8%)	5-10 years
	 0 ( 0.0%)	>10 years
Years using SML:
	 5 ( 9.6%)	0 years
	 8 (15.4%)	<1 years
	19 (36.5%)	1-5 years
	 8 (15.4%)	5-10 years
	12 (23.1%)	>10 years

We saw an increase in first-time users of MLton (up from 28%) and of
SML (up from 13%), though a decrease in long-time users of MLton
(36.6%, down from 56%) and SML (65.0%, down from 84%).

Largest program developed with MLton:
	14 (26.9%)	0 lines
	17 (32.7%)	<1K lines	13%
	14 (26.9%)	<10K lines	34%
	 5 ( 9.6%)	<25K lines	 9%
	 0 ( 0.0%)	<100K lines	13% 
	 2 ( 3.8%)	>100K lines
Largest program developed with SML:
	 4 ( 7.7%)	0 lines
	13 (25.0%)	<1K lines	13%
	18 (34.6%)	<10K lines	38%
	 5 ( 9.6%)	<25K lines	28%
	 4 ( 7.7%)	<100K lines	13%
	 8 (15.4%)	>100K lines	6%

Consistent with an increase in first-time users, we saw an increase in
small (<1K) programs in MLton and SML (both up from 13%).  Oddly, we
saw a decrease in large (>25K) programs in MLton (3.8%, down 
from 13%), but an increase in very-large (>100K) programs in SML (up
from 6%).

Finally, here are the counts for suggested improvements.  Recall that
the survey was presented as "choose one of four points on a less to
more scale".  The displayed nn% indicates whether a majority of votes
went to the two "less" points or to the two "more" points.  The avg is
a weighted average, where the least point is given value 1 and the
greatest point is given value 4.

Compiler improvements:
  less (63%)  23 10  8 11        more  (avg: 2.1)  ports to new platforms
  less        17  9 12 14        more  (avg: 2.4)  read-eval-print loop
  less        16  8 14 14  (54%) more  (avg: 2.5)  separate compilation
  less        13 11 17 11  (54%) more  (avg: 2.5)  improved performance
  less (79%)  30 11  6  5        more  (avg: 1.7)  language extensions

Tools improvements:
  less        18  5 15 14  (56%) more  (avg: 2.5)  source-level debugger
  less (77%)  34  6 10  2        more  (avg: 1.6)  IDE (integrated development environment)
  less        13 10 21  8  (56%) more  (avg: 2.5)  space profiler
  less (81%)  23 19  5  5        more  (avg: 1.8)  support for unit testing

Libraries improvements:
  less (56%)  16 13  9 14        more  (avg: 2.4)  libraries extending the SML Basis Library
  less        11 10 16 15  (60%) more  (avg: 2.7)  interfaces to C libraries
  less (56%)  15 14 12 11        more  (avg: 2.4)  ability to create shared libraries
  less (65%)  23 11 10  8        more  (avg: 2.1)  support for NLFFI

Other improvements:
  less (62%)  29  3  8 12        more  (avg: 2.1)  less restrictive license than the GPL
  less (60%)  23  8 14  7        more  (avg: 2.1)  improved documentation

Last year, no suggested improvement gained majority support.  The top
suggested improvements last year were: interpreter (50%), 
debugger (41%), ports (41%), and space profiler (34%).  Separate
compilation garnered only 1 vote last year (3%), though I don't
believe it was listed as an explicit option on last year's survey.

Most requests for new ports were for the 64-bit platforms.  The full
list of new ports/platforms requests:
 	 x86-64 (Athlon64, AMD64, Opteron, Intel x86-64)
 	 native Windows x86
 	 Windows via MinGW/MSYS
 	 ARM

A number of people reiterated the importance of a better license
(MIT/BSD) and pointed out that the current license is a non-starter
for commercial apps.

There were only a few requests for language extensions (not surprising
given our stated bias), and a couple for better compatibility with
SML/NJ and CM.

A number of people mentioned the importance of accessing existing C
libraries, and several people mentioned SWIG as means of getting
there.  Specifically mentioned were: GLU, GTK, OpenGL, Postgres,
Unicode, XML.  There was also a request for something akin to the
OCaml hump.  Something like that would be nice.  For now, the best we
have is http://mlton.org/Libraries, which we encourage people to use
and modify.

On respondent mentioned he would like to see a portable bytecode that
would allow OCaml-style bootstrapping on many platforms.  It is
unfortunate that the current MLton bytecode is not portable.

People are considering a wide variety of future projects.  To name a
few of the areas: 3D graphics, abstract algebra, menu generator for
X11 window managers, chess problem solver, error correcting codes,
genetic algorithms, JoCaml-like concurrent programming, multicast file
transfer, search/clustering, vector graphics, semantic web.  Perhaps
it would be useful to have a wiki page, other than Libraries and
Users, where people can put more tentative stuff they are thinking
about doing or have only got partially working, as a way to help
people find others interested in similar problems?