Version française
Home     About     Download     Resources     Contact us    
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: -- (:)
From: Martin Berger <martinb@d...>
Subject: Re: [Caml-list] ocaml killer

> 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