Version française
Home     About     Download     Resources     Contact us    

This site is updated infrequently. For up-to-date information, please visit the new OCaml website at

Browse thread
[Caml-list] Roadplan for world domination (or constructive criticism of ocaml facilities)
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: 2003-07-21 (15:18)
From: William Lovas <wlovas@s...>
Subject: Re: [Caml-list] Roadplan for world domination (or constructive criticism of ocaml facilities)
On Fri, Jul 18, 2003 at 04:21:14PM -0500, Chris Clearwater wrote:
> 3) Now that we have a easy cross-platform way to compile ocaml applications we
> can just distibute our code with Makefiles that call ocamlmake! WRONG.
> Makefiles suck. Now we standardize on the idea of an Ocaml "package".
> [...]

I have to disagree with you on this idea.  I've been working recently on a
project written in SML, and one of the things i miss most about O'Caml is
its nice interaction with the standard tools (not to mention its separate
compilation strategy! *sigh*).

The one thing not standardized by the Standard ML definition is compilation
strategy, and as a result, every SML implementation has its own idea of the
"right" way to compile a project.  One can write standards-conformant code
and still have to write a bunch of specific build-scripts, each one in its
own arcane language, and quite possibly each one adhering to a vastly
different *philosophy* of compilation -- learning them all may well be a
lifetime's work.  In my humble opinion, this is a major fault of SML.

As a concrete example, SML/NJ has a built-in "Compilation Manager" module,
and to compile a project, you have start up a top-level and run the
`CM.make' function.  It was quite a shock to me not to be able to compile
something from the command line, coming from the O'Caml world, where the
compiler is mature, simple, and idiomatic (at least from a Unix user's

For O'Caml to come up with its own incompatible compilation philosophy
seems like a step backwards.  We *already have* nice, simple ways of
interacting with the standard tools (like `make', and `ld') -- throwing all
that away smacks of "not-invented-here" syndrome.  It may be tempting to
climb up into our ivory tower and say, "We can do better than the status
quo!", but i think that attitude is better reserved for improving and
extending the language itself.

If you want a better `make', then write a better `make' -- but keep it
general purpose, and keep the O'Caml compiler's interface simple enough to
interact with *either* `make'.


To unsubscribe, mail Archives:
Bug reports: FAQ:
Beginner's list: