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 BAA24240; Thu, 29 Jan 2004 01:12:10 +0100 (MET) X-Authentication-Warning: pauillac.inria.fr: majordomo set sender to owner-caml-list@pauillac.inria.fr using -f Received: from concorde.inria.fr (concorde.inria.fr [192.93.2.39]) by pauillac.inria.fr (8.7.6/8.7.3) with ESMTP id BAA24708 for ; Thu, 29 Jan 2004 01:12:09 +0100 (MET) Received: from mail.dcs.qmul.ac.uk (vicar.dcs.qmul.ac.uk [138.37.88.163]) by concorde.inria.fr (8.11.1/8.11.1) with ESMTP id i0T0C9P06682 for ; Thu, 29 Jan 2004 01:12:09 +0100 (MET) Received: from xenografia.plus.com ([212.159.85.26] helo=dcs.qmul.ac.uk) by mail.dcs.qmul.ac.uk with asmtp (TLSv1:DHE-RSA-AES256-SHA:256) (Exim 4.30) id 1Alzmy-0002Uq-Pp; Thu, 29 Jan 2004 00:12:08 +0000 Message-ID: <40184FB9.4000808@dcs.qmul.ac.uk> Date: Thu, 29 Jan 2004 00:11:37 +0000 From: Martin Berger User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4.1) Gecko/20031114 X-Accept-Language: en, en-us MIME-Version: 1.0 To: Chet Murthy CC: caml-list@inria.fr Subject: Re: [Caml-list] ocaml killer 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> In-Reply-To: <200401290000.i0T00ntl006988@bismarck-chet.watson.ibm.com> Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Auth-User: martinb X-clamav-result: clean (1Alzmy-0002Uq-Pp) X-Loop: caml-list@inria.fr X-Spam: no; 0.00; caml-list:01 gui:01 widget:01 toolkit:01 code's:01 high-level:01 abstraction:01 high-level:01 behavioural:01 theorist:01 first-order:01 reflection:01 lacks:01 expressive:01 ocaml:01 Sender: owner-caml-list@pauillac.inria.fr Precedence: bulk > A "system" includes an application-server, a GUI, a database, a window > manager, a widget system, a GRID scheduler, a directory server, a > group communications toolkit and lots of other things. > > Application programming, is really programming -inside- a system, > wherein programmers face strong limits on what they can do, with the > aim of keeping their code well-managed, controlled, and providing a > "managed environment" for the code's execution. I agree. > The high-level abstraction capabilities of CAML shine here, and do > some of capabilities of Java in these applications. > I wasn't clear here. The high-level capabilities of both Java and > CAML are useful in writing such systems. Too bad Java/the JVM's > behavioural attributes make it totally unsuited. Ah, well. please allow me to compare Ocaml and Java from the lofty perspective of a programming language theorist. both are mixed imperative/functional languages (like all others). what are the *essential* differences? Ocaml has/Java doesn't have * sum types * pattern matching as destructors for sum types * full function types (not restricted to first-order like java) * second-order types (will be added to java) Java has/Ocaml doesn't have * reflection (maybe in ocaml, not sure at the moment) there are probably other big differences, for example in the module system, but let's ignore those. if i'm right about this, then what java lacks is a more expressive type system. martin ------------------- 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