From mboxrd@z Thu Jan 1 00:00:00 1970 Received: (from majordomo@localhost) by pauillac.inria.fr (8.7.6/8.7.3) id BAA25376; Thu, 29 Jan 2004 01:32:25 +0100 (MET) X-Authentication-Warning: pauillac.inria.fr: majordomo set sender to owner-caml-list@pauillac.inria.fr using -f Received: from nez-perce.inria.fr (nez-perce.inria.fr [192.93.2.78]) by pauillac.inria.fr (8.7.6/8.7.3) with ESMTP id BAA23620 for ; Thu, 29 Jan 2004 01:32:24 +0100 (MET) Received: from igw3.watson.ibm.com (igw3.watson.ibm.com [129.34.20.18]) by nez-perce.inria.fr (8.11.1/8.11.1) with ESMTP id i0T0WNv17870 for ; Thu, 29 Jan 2004 01:32:23 +0100 (MET) Received: from sp1n293en1.watson.ibm.com (sp1n293en1.watson.ibm.com [129.34.20.41]) by igw3.watson.ibm.com (8.11.7-20030924/8.11.4) with ESMTP id i0T0VmN29210; Wed, 28 Jan 2004 19:31:48 -0500 Received: from bismarck-chet.watson.ibm.com (localhost [127.0.0.1]) by sp1n293en1.watson.ibm.com (8.11.7-20030924/8.11.7/8.11.7-01-14-2004) with ESMTP id i0T0Vlw27528; Wed, 28 Jan 2004 19:31:48 -0500 Received: from bismarck (bismarck [127.0.0.1]) by bismarck-chet.watson.ibm.com (8.12.3/8.12.3/Debian-6.6) with ESMTP id i0T0Yutl009000; Wed, 28 Jan 2004 19:34:56 -0500 Message-Id: <200401290034.i0T0Yutl009000@bismarck-chet.watson.ibm.com> To: Martin Berger cc: Chet Murthy , caml-list@inria.fr Subject: Re: [Caml-list] ocaml killer In-Reply-To: Your message of "Thu, 29 Jan 2004 00:11:37 GMT." <40184FB9.4000808@dcs.qmul.ac.uk> References: <20040127063230.GA12482@inv_machine> <200401282326.i0SNQntl004612@bismarck-chet.watson.ibm.com> <40184A2F.6040007@dcs.qmul.ac.uk> <200401290000.i0T00ntl006988@bismarck-chet.watson.ibm.com> <40184FB9.4000808@dcs.qmul.ac.uk> Date: Wed, 28 Jan 2004 19:34:56 -0500 From: Chet Murthy X-Loop: caml-list@inria.fr X-Spam: no; 0.00; caml-list:01 chet:01 murthy:01 chet:01 cc'ed:01 theorist:01 lacks:01 expressive:01 ffi:01 c-like:01 model:01 threads:01 intrinsic:01 ffi:01 syscall:01 Sender: owner-caml-list@pauillac.inria.fr Precedence: bulk Martin, [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. --chet-- ------------------- To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/ Beginner's list: http://groups.yahoo.com/group/ocaml_beginners