From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Delivered-To: caml-list@yquem.inria.fr Received: from concorde.inria.fr (concorde.inria.fr [192.93.2.39]) by yquem.inria.fr (Postfix) with ESMTP id 5772EBC88 for ; Thu, 3 Feb 2005 22:16:37 +0100 (CET) Received: from pauillac.inria.fr (pauillac.inria.fr [128.93.11.35]) by concorde.inria.fr (8.13.0/8.13.0) with ESMTP id j13LGaap004055 for ; Thu, 3 Feb 2005 22:16:36 +0100 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 WAA24355 for ; Thu, 3 Feb 2005 22:16:36 +0100 (MET) Received: from mail.physik.uni-muenchen.de (mail.physik.uni-muenchen.de [192.54.42.129]) by nez-perce.inria.fr (8.13.0/8.13.0) with ESMTP id j13LGZuU002325 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=FAIL) for ; Thu, 3 Feb 2005 22:16:36 +0100 Received: from localhost (unknown [127.0.0.1]) by mail.physik.uni-muenchen.de (Postfix) with ESMTP id A847B2001A; Thu, 3 Feb 2005 22:16:35 +0100 (CET) Received: from mail.physik.uni-muenchen.de ([127.0.0.1]) by localhost (mail.physik.uni-muenchen.de [127.0.0.1]) (amavisd-new, port 10024) with LMTP id 20330-02-61; Thu, 3 Feb 2005 22:16:33 +0100 (CET) Received: from mailhost.cip.physik.uni-muenchen.de (kaiser.cip.physik.uni-muenchen.de [141.84.136.1]) by mail.physik.uni-muenchen.de (Postfix) with ESMTP id 61E3D20016; Thu, 3 Feb 2005 22:16:33 +0100 (CET) Received: from eiger.cip.physik.uni-muenchen.de (eiger.cip.physik.uni-muenchen.de [141.84.136.54]) by mailhost.cip.physik.uni-muenchen.de (Postfix) with ESMTP id 53E3E26E89; Thu, 3 Feb 2005 22:16:33 +0100 (CET) Received: by eiger.cip.physik.uni-muenchen.de (Postfix, from userid 3092) id 4CDEA3C8F; Thu, 3 Feb 2005 22:16:33 +0100 (CET) Received: from localhost (localhost [127.0.0.1]) by eiger.cip.physik.uni-muenchen.de (Postfix) with ESMTP id 4A18A2D871; Thu, 3 Feb 2005 22:16:33 +0100 (CET) Date: Thu, 3 Feb 2005 22:16:33 +0100 (CET) From: Thomas Fischbacher To: =?iso-8859-1?Q?Fr=E9d=E9ric_Gava?= Cc: caml-list@inria.fr Subject: Re: [Caml-list] Estimating the size of the ocaml community In-Reply-To: <009a01c50a1e$f6c92080$0100a8c0@mshome.net> Message-ID: 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> X-BOFH: Daemons did it MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=iso-8859-1 Content-Transfer-Encoding: QUOTED-PRINTABLE X-Virus-Scanned: amavisd-new at physik.uni-muenchen.de X-Miltered: at concorde with ID 420294B4.000 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Miltered: at nez-perce with ID 420294B3.000 by Joe's j-chkmail (http://j-chkmail.ensmp.fr)! X-Spam: no; 0.00; caml-list:01 ocaml:01 gava:01 wrote:01 ocaml:01 syntax:01 syntax:01 recursion:01 minor:01 ocaml's:01 sml:01 haskell:01 010:98 javascript:98 cip: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, 3 Feb 2005, Fr=E9d=E9ric Gava wrote: > > Anyway, this leaves us with a very interesting question: how many peopl= e > > actually do believe in the value of Ocaml? I, for myself, use it whenev= er > > it is the most appropriate tool for a job (usually, when portability is > > an issue). This is sometimes the case, but more often than not, LISP > > turned out to be a better choice for what I do. > What kinds of programs code with LISP could not be implemented (easely) > using Ocaml ? There are quite a few things which I don't like at all about ocaml: (1) I by far do not have the flexibility in extending the language with=20 own syntax which I have in Lisp. (2) Speaking of syntax, there's a lot of unnecessary cruft in virtually=20 any language besides LISP (or rather, Scheme). (3) The type system is annoying. People claim it helps catching errors,=20 but my impression is it only catches those which I would never make=20 anyway. On the other hand, I cannot just have e.g. a function like=20 POSITION-IF that returns a number or nil. (Either one has to work with=20 exceptions, or wrap things up using the Maybe monad. Exception techniques= =20 may interfere badly with tail recursion in some cases.) (4) There are a few other minor issues, such as a lack of=20 multiple-value-bind, which I personally find slightly annoying, but=20 not essential. (5) It does not behave as expected wrt module interfaces, as these include= =20 md5 sums over source. (6) I cannot easily COMPILE a function to fast machine code from the REPL. (7) I cannot easily (format t "DEBUG: compsite-thingy-bla-now-is ~A~%" bla)= =2E (8) There are quite some instances where Ocaml's syntax is=20 counter-intuitive to the extent of becoming a source of ugly mistakes,=20 due to interference with conventions people are used to from other=20 languages. I do not talk about (p,q) as x vs. x as (p,q) (or x@(p,q)) -=20 as everyone else (e.g. SML, Haskell) does it, but rather about issues=20 like for x=3D0 to 3 counting 0,1,2,3, or "\010" meaning "\x0a" instead of= =20 "\x08", and such. (9) It really annoys having +, +., and +/. Furthermore, it seems a bit=20 inconsistent, as on the other hand, we have e.g. < and not