From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from nez-perce.inria.fr (nez-perce.inria.fr [192.93.2.78]) by yquem.inria.fr (Postfix) with ESMTP id C3184BC88 for ; Fri, 4 Feb 2005 09:55:26 +0100 (CET) Received: from pauillac.inria.fr (pauillac.inria.fr [128.93.11.35]) by nez-perce.inria.fr (8.13.0/8.13.0) with ESMTP id j148tQKX009984 for ; Fri, 4 Feb 2005 09:55:26 +0100 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 JAA12657 for ; Fri, 4 Feb 2005 09:55:25 +0100 (MET) Received: from will.iki.fi (will.iki.fi [217.169.64.20]) by concorde.inria.fr (8.13.0/8.13.0) with ESMTP id j148tPua026530 for ; Fri, 4 Feb 2005 09:55:25 +0100 Received: from acerf.exomi.com (fa-3-0-0.fw.exomi.com [217.169.64.99]) by will.iki.fi (Postfix) with ESMTP id 6EA2A13E; Fri, 4 Feb 2005 10:55:24 +0200 (EET) Subject: Re: [Caml-list] Estimating the size of the ocaml community From: Ville-Pertti Keinonen To: Thomas Fischbacher Cc: caml-list@inria.fr In-Reply-To: References: <891bd33905020213315a2ebb18@mail.gmail.com> <8008871f05020213362d21ba87@mail.gmail.com> <000f01c50971$baad4840$0100a8c0@mshome.net> <1107403128.32586.223.camel@pelican.wigram> <20050203173556.4acec1c5.ocaml-erikd@mega-nerd.com> <009a01c50a1e$f6c92080$0100a8c0@mshome.net> Content-Type: text/plain Date: Fri, 04 Feb 2005 10:55:10 +0200 Message-Id: <1107507310.669.27.camel@localhost> Mime-Version: 1.0 X-Mailer: Evolution 2.0.3 FreeBSD GNOME Team Port Content-Transfer-Encoding: 7bit X-Miltered: at nez-perce with ID 4203387E.000 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Miltered: at concorde with ID 4203387D.000 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Spam: no; 0.00; caml-list:01 ocaml:01 wrote:01 ocaml:01 syntax:01 syntax:01 accessors:01 verbose:01 verbose:01 runtime:01 sml:01 replacing:01 asmcomp:01 runtime:01 ...:98 X-Spam-Checker-Version: SpamAssassin 3.0.2 (2004-11-16) on yquem.inria.fr X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=disabled version=3.0.2 X-Spam-Level: On Thu, 2005-02-03 at 22:16 +0100, Thomas Fischbacher wrote: > There are quite a few things which I don't like at all about ocaml: I hope you don't mind getting yet another set of comments... > (1) I by far do not have the flexibility in extending the language with > own syntax which I have in Lisp. This is true. > (2) Speaking of syntax, there's a lot of unnecessary cruft in virtually > any language besides LISP (or rather, Scheme). Usually what someone considers "unnecessary cruft" is defined by what they're used to. People are used to the annoyances of the languages they use the most and don't tend to notice them, but when using a less familiar language, pay a lot of attention to anything that seems more cumbersome. As an obvious example, neither Common Lisp or Scheme have pattern-matching. Accessing data via pattern matching is often far more convenient than via c[ad]+r, slot accessors etc. While many Scheme implementations do have pattern matching as an extension, the syntax is more verbose and it doesn't give you the nice symmetry between constructing and deconstructing values. In my experience, unless you're using a lot of "ad hoc" data structures or not checking for errors, OCaml is usually less verbose than Scheme. When comparing to Common Lisp...it depends on how much magic you're using. > (6) I cannot easily COMPILE a function to fast machine code from the REPL. A runtime for OCaml that would be more like Common Lisp implementations or SML/NJ would be an interesting project. I don't think it would be too difficult, either (based on experimenting with replacing the asmcomp back-end). > (7) I cannot easily (format t "DEBUG: compsite-thingy-bla-now-is ~A~%" bla). This could also be addressed by a more advanced runtime that always included the top-level.