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] ocaml killer
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: 2004-01-29 (00:32)
From: Chet Murthy <chet@w...>
Subject: Re: [Caml-list] ocaml killer


[Maybe this is going off-topic.  Since I'm comparing Java to Caml,
I'll leave this cc'ed to the Caml list, but if there are further
responses, it might be good to take 'em offline.]

>>>>> "MB" == Martin Berger <> writes:

    MB> please allow me to compare Ocaml and Java from the lofty
    MB> perspective of a programming language theorist. both are mixed
    MB> imperative/functional languages (like all others). what are
    MB> the *essential* differences?

    MB> if i'm right about this, then what java lacks is a more
    MB> expressive type system.

Your comparison of Java and Caml leaves out two of the most important
parts of CAML (from a systems-programmer perspective):

  (1) high-quality FFI (MUCH better than JNI)

  (2) high-quality C-like execution model, WITHOUT threads, WITHOUT
  intrinsic dynamic code-loading

Compared to these, the type system is almost irrelevant.  There's a
reason, for instance, that Perl (the first popular implementation of
Scheme*) won: a killer FFI, great UNIX syscall support, and bang-up
support for the string datatype.  Java/the JVM ain't got none of this!

[*: and I am NOT kidding about Perl being a popular implementation of
Scheme, albeit with a pretty interesting syntax.]

These are the things that matter in a language.  The fact that CAML
has fancy types, well, -I- like it, but it isn't why I wrote some of
my most complex systems in it, and it will never be enough to push
CAML into the mainstream.

Xavier's (and others') careful attention to building a -system-, and
to making CAML suitable for systems-programming, is infinitely more
compelling, than the type system.

After all, I switched from SML to CAML, not for the type system, but
for the quality of the implementation.  And I wrote Coq V5.10 in CAML,
again, 'cos it was such a high-quality systems language.


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