Version française
Home     About     Download     Resources     Contact us    
Browse thread
Estimating the size of the ocaml community
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Thomas Fischbacher <Thomas.Fischbacher@P...>
Subject: Re: [Caml-list] The boon of static type checking

On Sun, 13 Feb 2005, Michael Walter wrote:

> > You can just as well put another REPL at the top. MAXIMA is an example of
> > just one system that does precisely that.
> 
> Exactly! That's creating a new language.

Ok, then if you see it that way: the major difference then is that you do 
not have to go through the daunting process of implementing all of the 
runtime system so that it is (1) fast, (2) bugfree, (3) sufficiently 
complete to be useful. Furthermore, you gain the ability to use 
already existing libraries.

Anything else is in >95% of all cases an exercise in Greenspunning.

> > [...]
> > So, again, syntax is not by itself an essential feature of the language.
> I rate the "human factor" important enough to consider it as an
> essential feature for programming languages meant to be used by
> humans.

Well, yes, but this can be studied to great extent without the drawbacks 
of creating incompatibility boundaries, see above.

> Of course, if you decide to use S-expressions primarily as a compiler
> target that's an entirely different issue (to bad that this path
> hasn't been explored that much, besides maybe Dylan).

That's how it's supposed to be. Especially scheme tries to be nothing else 
but just the minimal "functional assembly language". So one can put other 
languages on top of it.

Judging from the .NET CLR specification, I'd say that conceptually, scheme 
does the far better job, as it does not treat such lots of non-fundamental 
ad-hoc concepts (in particular, everything related to OO) as fundamental.

-- 
regards,               tf@cip.physik.uni-muenchen.de              (o_
 Thomas Fischbacher -  http://www.cip.physik.uni-muenchen.de/~tf  //\
(lambda (n) ((lambda (p q r) (p p q r)) (lambda (g x y)           V_/_
(if (= x 0) y (g g (- x 1) (* x y)))) n 1))                  (Debian GNU)