caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: Yaron Minsky <yminsky@janestreet.com>
To: jon@ffconsultancy.com
Cc: caml-list@inria.fr
Subject: Re: [Caml-list] Re: Haskell vs OCaml
Date: Thu, 21 Mar 2013 16:58:32 -0400	[thread overview]
Message-ID: <CACLX4jTvVYzZNmj1qgko2hTwSGURV5eEh2NMmkTSh3N5ezGN1w@mail.gmail.com> (raw)
In-Reply-To: <06b901ce25ca$cc415be0$64c413a0$@ffconsultancy.com>

On Wed, Mar 20, 2013 at 8:26 PM, Jon Harrop <jon@ffconsultancy.com> wrote:
> 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.

I agree, I would not recommend basing a business on selling OCaml code
to programmers.

> 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.

As I said, OCaml's performance is already excellent for our purposes,
and getting better.  The CLR and JVM also have their performance
warts, for sure.

I'd be careful about pointing at any single limitation and saying
"that won't get fixed".  There's an energetic and talented crew
attacking all sorts of problems, and I expect they'll go far.

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

  reply	other threads:[~2013-03-21 20:58 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
2013-03-21 20:58               ` Yaron Minsky [this message]
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=CACLX4jTvVYzZNmj1qgko2hTwSGURV5eEh2NMmkTSh3N5ezGN1w@mail.gmail.com \
    --to=yminsky@janestreet.com \
    --cc=caml-list@inria.fr \
    --cc=jon@ffconsultancy.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).