[Ocaml-biz] The strategic future of OCaml for 2..4 years

Brian Hurt bhurt at spnz.org
Mon Sep 6 21:32:02 PDT 2004


On Mon, 6 Sep 2004, Brandon J. Van Every wrote:

> I say 'random' because I see so many OCaml technologies in an early
> adopter stage, with like 10 different home-brewed tools to do the same
> job.  

You know, I had an interesting experience recently, apropos the maturity
of tools.  Having gotten more or less sorta test infected in Java and
Ocaml, I went looking for unit testing tools for C.  A couple of home-brew
solutions sorta exist.  The documentation comment processing tools are
almost usable (not quite), but the unit testing tools are crude at best.  
By the standards of Java and Smalltalk, both Ocaml and C are laughable.
Almost no one in the C world uses either.  C++ does a little bit better.

This got me to thinking about tool cultures.  What we expect of our tools 
is more a function of what culture we come from, not some absolute 
standard.  Ocaml comes from the C/Unix world.  This shows not only in the 
tool set, but also in language features (printf is, IMHO, a questionable 
feature in C- but notice Ocaml adopted it, while Java and C++ have very 
different "native" I/O libraries). 

There are at least three major "programming cultures" out there that I can 
identify.  The first, as mentioned, is the C/Unit world.  The second is 
the C++/Windows world, and the third Java.  Or, should I say, the Make, 
VS, and Ant worlds.

When discussing tool maturity, what culture you are aiming at becomes very 
relevent.

Which is one of the reasons why I feel aiming at the open source
community- still by and large from the Make culture- easier than aiming at
other cultures.  I would rate the toolset for this culture as sufficient,
even superior.  I'd love Ocaml to become dominate in all three spaces (I 
think the Java/Smalltalk/Ant communities will, actually, be the hardest to 
crack).  But I think short-term, open source/Unix/Make/C is the place to 
target.

It also explains, I think, the friction between you and the INRIA people.  
They are definately from the Make culture, you're from the VS culture.  
For the record, I'm from the Make culture, although I'm familiar with all 
three.

Note that the culture Ocaml grew out of has it's advantages and 
disadvantages.  It gave Ocaml a mature and power set of tools from the 
get-go.  But it also saddled Ocaml with a set of tools with some serious 
shortcommings.

> We're not talking about a company that develops and mandates a
> tool, nor any kind of official standards effort.

This, IMHO, is an advantage.  It's a free market of ideas and 
implementations, not a demand economy dictated by one central authority.


> I think the strategic reality is clear.  Python *WILL* achieve
> performance before OCaml ever becomes popular, if Python performance *IS
> POSSIBLE AT ALL*.  Only if Python is heading for some kind of
> fundamental brick wall, will it be otherwise.

Unless they are giving up intepreting, they are headed for a brick wall.  
Intrepreting will always be dog slow.  Virtual machines have possibilities 
(witness the various benchmarks around showing Java about as fast as C++), 
but they require one hell of a development effort- we're talking five, 
maybe ten years for open source to push one out.  This isn't to write one, 
this is to write one that can really compete with native code.  

The obvious solution is to drop a Python front end onto the GCC backend.  
A small team could do this easily in 12 months or less.  The question is 
wether the community would a) think of it, or b) accept it.  I'll thank 
the people on this list for not spreading the word :-).

> I wish it were possible to doll up OCaml and then sell it like hotcakes,
> but that is sheer fantasy.  It is but a language, determined by the
> slow, lugubrious nature of the language market.

Large, application level projects tend to be few and far between.  And by
their nature, they tend to be conservative.  It's one thing to waste a
couple of weeks only to discover the language won't work for the project,
another to waste months or years to discover the same thing.  Perl,
Python, Ruby, all succeeded (to the extent that they succeeded) initially
in the scripting market- short, low-risk programs.

-- 
"Usenet is like a herd of performing elephants with diarrhea -- massive,
difficult to redirect, awe-inspiring, entertaining, and a source of
mind-boggling amounts of excrement when you least expect it."
                                - Gene Spafford 
Brian




More information about the Ocaml-biz mailing list