From: "Tomasz Jamroszczak" <jamrok@gazeta.pl>
To: caml-list@inria.fr
Subject: making ocaml mainstream
Date: Sat, 19 Aug 2006 03:24:02 +0200 [thread overview]
Message-ID: <op.teibicuojx4fme@xn--led-hdas.ip.pop.e-wro.net.pl> (raw)
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.
next reply other threads:[~2006-08-19 1:24 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-08-19 1:24 Tomasz Jamroszczak [this message]
2006-08-19 1:29 ` [Caml-list] " Joel Reymont
2006-08-19 4:34 ` skaller
2006-08-22 21:21 ` Mike Lin
2006-08-22 23:15 ` Joel Reymont
2006-08-23 0:00 ` Markus Mottl
2006-08-23 8:59 ` Joel Reymont
2006-08-23 10:30 ` Richard Jones
2006-08-23 10:54 ` Anil Madhavapeddy
2006-08-22 20:19 ` Richard Jones
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=op.teibicuojx4fme@xn--led-hdas.ip.pop.e-wro.net.pl \
--to=jamrok@gazeta.pl \
--cc=caml-list@inria.fr \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).