[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?