caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: "Jon Harrop" <jon@ffconsultancy.com>
To: "'Yaron Minsky'" <yminsky@janestreet.com>
Cc: <caml-list@inria.fr>
Subject: RE: [Caml-list] Re: Haskell vs OCaml
Date: Thu, 21 Mar 2013 00:26:56 -0000	[thread overview]
Message-ID: <06b901ce25ca$cc415be0$64c413a0$@ffconsultancy.com> (raw)
In-Reply-To: <CACLX4jTuV-M5HYDgbJdE9H5EC_FbCfy5uw4CvpKUTk5cJw=VdA@mail.gmail.com>

Yaron wrote:
> I don't think OCaml is unfriendly to commercial users

I meant that few people buy or sell commercial OCaml code compared to .NET,
particularly when the target market is OCaml programmers themselves. We
tried with products like Smoke and Presenta but hit problems that don't
exist on alternatives like .NET. Smoke was made difficult by a combinatorial
explosion with brittle bindings that required us to recompile and re-release
for every minor version increment of either OCaml itself or LablGL. In
essence, OCaml bytecode was not designed to be redistributable. We were
forced to drop Presenta when we found that around 80% of beta testers
experienced segmentation faults even though it was 100% pure OCaml code. In
contrast, the same code ported to F# has hundreds of commercial users and
we've never had a single report of unreliability.

> OCaml is highly productive, and it greatly simplifies the task of building
efficient, reliable and above all correct code

Although I often found that to be true there were several important kinds of
applications where OCaml fell short on some of those metrics for me.

One obvious one is GUI programming where I found OCaml+LablGTK to be
anything but highly productive. F# is much more productive and reliable when
it comes to GUIs (although performance is a problem with WPF).

OCaml is very efficient for most symbolic code but there are lots of
examples where there is significant room for improvement (polymorphism,
recursive lambdas, that weird +. 0.0 thing, static optimization of % by a
constant, unboxing types like complex numbers, hash tables, deep recursion,
large arrays of reference types, CSE). Some of those will be fixed, as you
say, but many of the core ones will not.

Presenta is obviously a counter-example for reliability. 100% OCaml code
isn't supposed to be able to segfault...

Cheers,
Jon.

-----Original Message-----
From: Yaron Minsky [mailto:yminsky@janestreet.com] 
Sent: 20 March 2013 21:10
To: jon@ffconsultancy.com
Cc: Chet Murthy; caml-list@inria.fr
Subject: Re: [Caml-list] Re: Haskell vs OCaml

On Wed, Mar 20, 2013 at 4:44 PM, Jon Harrop <jon@ffconsultancy.com> wrote:
>
> FWIW, I'd say that the differences between OCaml and Haskell are of 
> academic interest (first-class modules vs type classes). The important 
> thing is the shortcomings that both OCaml and Haskell share (high 
> barrier to entry, poor interop, performance limitations, limited 
> libraries, commerce unfriendly, ageing foundations).

While I agree that first-class modules vs type-classes is not the most
burning issue, I broadly disagree with your dismal estimate of the state of
the language.

I don't think OCaml is unfriendly to commercial users.  Certainly Jane
Street has had a great relationship with the OCaml maintainers and the
larger community.  And while there are performance limitations, OCaml's
overall performance is quite good and quite predictable.  That performance
is also rapidly improving as more and more people start working on improving
the foundations.

It's true that the selection of libraries is limited (less true for Haskell,
FWIW).  But with the recent arrival of OPAM, the ease of using OCaml has
gone way up, and we're already seeing improvements to the set of available
libraries.  The rest of the toolchain, from performance monitoring tools to
document generation to support for IDE-like features, are all actively being
worked on.

All told, between the work being done at INRIA, OCamlPro, OCaml Labs, and
the broader community there's an amazing amount of energy being poured into
the language.

And one shouldn't lose sight of the most important facts about the
language: OCaml is highly productive, and it greatly simplifies the task of
building efficient, reliable and above all correct code.

y

> Cheers,
> Jon.
>
> -----Original Message-----
> From: caml-list-request@inria.fr [mailto:caml-list-request@inria.fr] 
> On Behalf Of Chet Murthy
> Sent: 18 March 2013 18:05
> To: caml-list@inria.fr
> Subject: [Caml-list] Re: Haskell vs OCaml
>
>
> Geez, I don't want to fan the flames of any sort of war, but .... as 
> long as this subject came up, I'd really like to find out if anybody 
> has done decent-sized-system comparisons of ocaml and haskell for 
> performance and footprint.
>
> I'm a long-time Caml (and before that SML) hacker, and (hopefully) 
> fully appreciate the FP Nature, so it's not like I'm looking for an 
> argument about which language is better, etc, etc.
>
> And I'm not looking for microbenchmarks, either.  I'm looking for
> -significant- systems that have been implemented in both, and 
> information about footprint and performance of those systems.
>
> Why am I looking?  Because if you're a bigot about your favorite 
> language, and -never- look for countervailing facts about the 
> competition, you might miss out.
>
> Heck, that's how I became an Ocaml bigot lo' these many years.
>
> So .... anybody got anything?
> --chet--
>
>
> --
> Caml-list mailing list.  Subscription management and archives:
> https://sympa.inria.fr/sympa/arc/caml-list
> Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
> Bug reports: http://caml.inria.fr/bin/caml-bugs
>
>
> --
> Caml-list mailing list.  Subscription management and archives:
> https://sympa.inria.fr/sympa/arc/caml-list
> Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
> Bug reports: http://caml.inria.fr/bin/caml-bugs


  reply	other threads:[~2013-03-21  0:26 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <fa.e3jKyg6bl9+vTkPgypQ4ZRzEoos@ifi.uio.no>
2013-03-18  9:08 ` [Caml-list] " adrian.alexander.may
2013-03-18  9:48   ` Malcolm Matalka
2013-03-18  9:59     ` Gabriel Scherer
2013-03-18 11:05       ` Adrian May
2013-03-18 11:26     ` Kakadu
2013-03-18 18:05       ` [Caml-list] " Chet Murthy
2013-03-20 20:44         ` Jon Harrop
2013-03-20 21:10           ` Yaron Minsky
2013-03-21  0:26             ` Jon Harrop [this message]
2013-03-21 20:58               ` Yaron Minsky
2013-03-23 23:33                 ` Richard W.M. Jones
2013-03-21 21:55               ` Török Edwin
2013-03-22 17:51                 ` Jon Harrop
2013-03-22 18:46                   ` Daniel Bünzli
2013-03-22 19:53                     ` Jon Harrop
2013-03-22 20:23                       ` Daniel Bünzli
2013-03-22 22:13                         ` Jon Harrop
2013-03-22 23:35                           ` Daniel Bünzli
2013-03-22 23:47                             ` Chet Murthy
2013-03-23  0:02                               ` Daniel Bünzli
2013-03-23  0:09                                 ` Chet Murthy
2013-03-23  1:17                               ` Jon Harrop
2013-03-23  1:41                                 ` oliver
2013-03-23  1:15                             ` Jon Harrop
2013-03-23  1:50                               ` Daniel Bünzli
2013-03-25  1:22                               ` Francois Berenger
2013-03-23  1:25               ` oliver
2013-03-19  1:23       ` [Caml-list] " Francois Berenger
2013-03-26 10:36         ` Nicolas Braud-Santoni
2013-03-26  0:49   ` Kristopher Micinski
2013-03-26  2:37     ` Erik de Castro Lopo
2013-03-26  2:57       ` Kristopher Micinski

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='06b901ce25ca$cc415be0$64c413a0$@ffconsultancy.com' \
    --to=jon@ffconsultancy.com \
    --cc=caml-list@inria.fr \
    --cc=yminsky@janestreet.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).