From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.1.3 (2006-06-01) on yquem.inria.fr X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=AWL,HTML_MESSAGE autolearn=disabled version=3.1.3 X-Original-To: caml-list@yquem.inria.fr Delivered-To: caml-list@yquem.inria.fr Received: from mail4-relais-sop.national.inria.fr (mail4-relais-sop.national.inria.fr [192.134.164.105]) by yquem.inria.fr (Postfix) with ESMTP id 0F6ACBBCA for ; Fri, 9 May 2008 13:37:20 +0200 (CEST) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AvACAITUI0jRVYC8c2dsb2JhbACCNTaPHQEMAwQECQ+Ycw X-IronPort-AV: E=Sophos;i="4.27,460,1204498800"; d="scan'208";a="25996921" Received: from fk-out-0910.google.com ([209.85.128.188]) by mail4-smtp-sop.national.inria.fr with ESMTP; 09 May 2008 13:37:20 +0200 Received: by fk-out-0910.google.com with SMTP id k31so1429347fkk.11 for ; Fri, 09 May 2008 04:37:19 -0700 (PDT) Received: by 10.86.89.4 with SMTP id m4mr8305061fgb.16.1210333039211; Fri, 09 May 2008 04:37:19 -0700 (PDT) Received: by 10.86.79.20 with HTTP; Fri, 9 May 2008 04:37:19 -0700 (PDT) Message-ID: <71767b800805090437t3893e0c0w2d966054ac4f2a95@mail.gmail.com> Date: Fri, 9 May 2008 07:37:19 -0400 From: "Ralph Douglass" To: "Vincent Hanquez" Subject: Re: [Caml-list] Re: Why OCaml sucks Cc: caml-list@yquem.inria.fr In-Reply-To: <20080509094516.GA12893@snarc.org> MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_Part_10849_2452721.1210333039174" References: <200805090139.54870.jon@ffconsultancy.com> <20080509094516.GA12893@snarc.org> X-Spam: no; 0.00; ocaml:01 exn:01 0100,:01 ocaml:01 parallelism:01 parallelism:01 hashtbl:01 ocaml's:01 advocates:01 haskell:01 haskell:01 beginner's:01 bug:01 exn:01 0100,:01 ------=_Part_10849_2452721.1210333039174 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline Not_found and Failure _ can be a bit annoying to watch for, so I suggest using Core. The default behavior for most functions is to return an option instead of raising an exception. There are _exn versions of the functions if you want exceptions. On Fri, May 9, 2008 at 5:45 AM, Vincent Hanquez wrote: > On Fri, May 09, 2008 at 01:39:54AM +0100, Jon Harrop wrote: > > > > Brian Hurt recently published the following blog post "Why OCaml sucks": > > > > http://enfranchisedmind.com/blog/2008/05/07/why-ocaml-sucks/ > > > > I think it is interesting to discuss which aspects of OCaml can be > improved > > upon and how but I disagree with some of his points. I'll address each of > the > > original points in turn: > > yeah, a new troll post (!) > > > 1. Lack of Parallelism: Yes, this is already a complete show stopper. > > no it's not. it's in your fantasy world. lots of applications doesn't > (or marginally) benefits from parallelism, and that your specific turf > would benefit from them, is not a good reason to impose their drawbacks > on everybody else. > > > 5. Strings: pushing unicode throughout a general purpose language is a > > mistake, IMHO. This is why languages like Java and C# are so slow. > > unicode string should not be the default string, but unicode string need > to be available as a first class citizen. again, ocaml is not about doing > raytracer in opengl only. > > > 7. Not_found: I like this, and Exit and Invalid_argument. Brian's point > that > > the name of this exception does not convey its source is fallacious: > that's > > what exception traces are for. > > exception traces are *not* available in long running program (daemon). > and having a Not_found crippling somewhere is just plain annoying. > > even having something like a List.Not_found/Hashtbl.Not_found would make > thing a bit easier. > > > 8. Exceptions: I love OCaml's extremely fast exception handling (6x > faster > > than C++, 30x faster than Java and 600x faster than C#/F#!). I hate > > the "exceptions are for exceptional circumstances" line promoted by the > > advocates of any language implementation with cripplingly-slow exception > > handlers. > > exceptions are for exceptional circumstances. using them as a fancy goto > mechanism is just plain stupid and really bad programming style. > > > 9. Deforestation: Brian says "Haskell has introduced a very interesting > and > > (to my knowledge) unique layer of optimization, called deforrestation". > True, > > of course, but useless theoretical piffle because we know that Haskell is > > slow in practice and prohibitively difficult to optimize to-boot. > Deforesting > > is really easy to do by hand. > > have you been hiding in a cave lately ? > haskell has improve its performance lately; not on everything, but still > can beat ocaml on some micro benchmarks. > > > I have other wish-list items of my own to add: > > > > . No 16Mb limit. > > use 64 bits. > > -- > Vincent > > _______________________________________________ > Caml-list mailing list. Subscription management: > http://yquem.inria.fr/cgi-bin/mailman/listinfo/caml-list > Archives: http://caml.inria.fr > Beginner's list: http://groups.yahoo.com/group/ocaml_beginners > Bug reports: http://caml.inria.fr/bin/caml-bugs > -- Ralph ------=_Part_10849_2452721.1210333039174 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline Not_found and Failure _ can be a bit annoying to watch for, so I suggest using Core.  The default behavior for most functions is to return an option instead of raising an exception.  There are _exn versions of the functions if you want exceptions.

On Fri, May 9, 2008 at 5:45 AM, Vincent Hanquez <tab@snarc.org> wrote:
On Fri, May 09, 2008 at 01:39:54AM +0100, Jon Harrop wrote:
>
> Brian Hurt recently published the following blog post "Why OCaml sucks":
>
>   http://enfranchisedmind.com/blog/2008/05/07/why-ocaml-sucks/
>
> I think it is interesting to discuss which aspects of OCaml can be improved
> upon and how but I disagree with some of his points. I'll address each of the
> original points in turn:

yeah, a new troll post (!)

> 1. Lack of Parallelism: Yes, this is already a complete show stopper.

no it's not. it's in your fantasy world. lots of applications doesn't
(or marginally) benefits from parallelism, and that your specific turf
would benefit from them, is not a good reason to impose their drawbacks
on everybody else.

> 5. Strings: pushing unicode throughout a general purpose language is a
> mistake, IMHO. This is why languages like Java and C# are so slow.

unicode string should not be the default string, but unicode string need
to be available as a first class citizen. again, ocaml is not about doing
raytracer in opengl only.

> 7. Not_found: I like this, and Exit and Invalid_argument. Brian's point that
> the name of this exception does not convey its source is fallacious: that's
> what exception traces are for.

exception traces are *not* available in long running program (daemon).
and having a Not_found crippling somewhere is just plain annoying.

even having something like a List.Not_found/Hashtbl.Not_found would make
thing a bit easier.

> 8. Exceptions: I love OCaml's extremely fast exception handling (6x faster
> than C++, 30x faster than Java and 600x faster than C#/F#!). I hate
> the "exceptions are for exceptional circumstances" line promoted by the
> advocates of any language implementation with cripplingly-slow exception
> handlers.

exceptions are for exceptional circumstances. using them as a fancy goto
mechanism is just plain stupid and really bad programming style.

> 9. Deforestation: Brian says "Haskell has introduced a very interesting and
> (to my knowledge) unique layer of optimization, called deforrestation". True,
> of course, but useless theoretical piffle because we know that Haskell is
> slow in practice and prohibitively difficult to optimize to-boot. Deforesting
> is really easy to do by hand.

have you been hiding in a cave lately ?
haskell has improve its performance lately; not on everything, but still
can beat ocaml on some micro benchmarks.

> I have other wish-list items of my own to add:
>
> . No 16Mb limit.

use 64 bits.

--
Vincent

_______________________________________________
Caml-list mailing list. Subscription management:
http://yquem.inria.fr/cgi-bin/mailman/listinfo/caml-list
Archives: http://caml.inria.fr
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
Bug reports: http://caml.inria.fr/bin/caml-bugs



--
Ralph ------=_Part_10849_2452721.1210333039174--