Version française
Home     About     Download     Resources     Contact us    
Browse thread
making ocaml mainstream
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Tomasz Jamroszczak <jamrok@g...>
Subject: making ocaml mainstream

   I've been playing for a second time with Ocaml for a time now and I've  
got some insights in what could make the language more popular.

   First of all, it's potential target is severly limited by some facts  
that are maybe transparent for ocaml developers, but are cruicial for  
newcomers.  It is really usable only under Linux.  I.e. ocamldebug (which  
is basic programming tool) needs a big clumsy cygwin to work in Windows,  
and you can be sure that two thirds of programmers, had, have and will  
have configuration and maintanability problems with Cygwin.

   More severe flaw is that OCaml's workable only under Emacs.  Well, there  
is something like wowcamldebug for vim, but vim ain't that popular  
either[*].  That means that OCaml looses 90% of potential community due to  
immaterial problems.  Immaterial from point of view of the language  
architecture, but not from point of view of it's health.  But it's not a  
question of making IDE nur fur OCaml.  It's rather about making hilighter,  
indent, helpfile and debugger into the most popular IDEs, with the most  
prominent of them VS.NET.  Because of MSDNAA, young developers have decent  
tool for free and putting OCaml into Visual Studio, comforting to habbits  
of them, is the right thing to do.  Because the most valuable and easy to  
obtain for the greater glory of OCaml community - are these  
MSDNAA-involved greenhorns.

   Another stuff is that OCaml has this feeling of beeing a language of  
choice for pointy-headed geeks and thus simply too hard to grasp for an  
ordinary keyboard basher.  The feeling can be changed (with a lot of  
advocacy and marketing), because you can write programs in "Java style",  
and it doesn't require a lot of learning.  OCaml is fun and it's easy.   
And then it's new and it's powerful.  That's anything marketing guys have  
to say (see  
http://www.cabochon.com/~stevey/blog-rants/bambi-meets-godzilla.html and  
other marketing-related rants).

   We should also take closer look on the libraries.  Diversity is good.   
But if two libraries are covering the same field, it's dreadful.  They're  
fighting each other, the development is split between them and thus - in  
such a small community as OCaml's is - too small to maintain and develop,  
and at the end projects are abadoned.  But this is not the main pain in  
the libraries' world.  More grim is the fact that when programmer (not  
necessairly new to OCaml) wants some functionality spots two similar  
libraries, he has to make a choise.  And it's a Bad Thing(TM), because he  
has to either pick randomly and hope for his good luck, or he's to spend  
some time with both, which is mainly wasted time.  Moreover, it feels like  
struggling with the language.  Mind C++ which after phase of decline, has  
been given boost library - huge one, but single library which status is  
something like "non-standarized standard library".    Oh, and F# is not a  
good way to go.  F# won't be identical to Ocaml, and all we know what  
Babel tower of Lisps feels like.

   This together with initial configuration, beeing up-to-date - generally  
maintainng ones workspace - prevents a hot-headed newcomer from developing  
working code.  Instead of forming ideas developer has in his mind, he's  
beeing made to bend his neck to "proper" set of tools in order to comfort  
to the language.  While the grammar, standard library, fast object code  
and so on are in a deep shadow of all these workshop things.

   The learning curve for OCaml, including setting up environment, should  
be as flat, as possible.  The best in this matter is TCL, which has  
basicly one language vendor for Windows, it's already present in standard  
Linux distribution, and after a three hours from the beginning of  
installation, you can write non-trivial programs;  and after a week with  
TCL you feel like fish swimming in the water.  This is unreachable for  
OCaml of course, because TCL has the smallest grammar ever while OCaml's  
is quite complex, but nevertheless the installation part (including cygwin  
instalation and emacs learning) should be shortened, and some "OCaml  
subset for C++/Python/Java handbook" with subtitle "Creative fun" should  
be released at O'Reily.

[*] There's QT-based Camelia simplified IDE, I've got to give it a try.

tj.