caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: tools <toolslive@yahoo.com>
To: "caml-list@inria.fr" <caml-list@inria.fr>
Subject: Re: [Caml-list] OCaml maintenance status / community fork
Date: Wed, 7 Dec 2011 05:59:56 -0800 (PST)	[thread overview]
Message-ID: <1323266396.63331.YahooMailNeo@web120603.mail.ne1.yahoo.com> (raw)
In-Reply-To: <201112071100.pB7B0N8J020839@walapai.inria.fr>

Hi,

I'm responsible for the introduction of OCaml in two companies( www.incubaid.com , www.amplidata.com ).
This cost me a lot of energy and a few years of my life, I'm sure. 

As we now are few years further, so I can look back and reflect a bit.

The whole experience of working with a strongly typed, polymorphic, functional, programming language feels really gratifying.
I think everybody who has been exposed to this for a longer period of time feels the same.
It's a winning strategy.

As far as compiler/toolchain/runtime/programming environment/libraries/community go, I have a few remarks which I address below
 (random order):

- "language" I'm not eagerly awaiting new features. OCaml might not be too sexy, but it gets the job done.

- "multi core" (talked about in great detail here on the mailing list) I won't say anything more than
    it would be nice if there was support to harvest the current generation of cpus as we currently resort 
   to ad hoc solutions (and keep on reinventing the wheel). We're not really in pain, but worried.

- "ocamlbuild/oasis/ " I have a hard time bashing 'autofoo' and 'make' when every little thing I need to explain to ocamlbuild
  eats away a half day of my time. Yes, in the end, the delta is always small, but it's the time not the number of lines that matter.
  It's probably a documentation issue (the wiki is outdated)

- "IDE". actually, only emacs is more or less ok; tuareg needs tweaking, and debugging is painful (and yes, sometimes you would like too).
   ...but not everybody likes emacs. Personally I'm rather impartial, but I have access to an emacs zealot, which helps.

- "tools": what tools? 
-- a heap profiler would be nice. OCamlviz is broken/abandoned/not enough.
    You just hope you never have an ocaml lwt-based server that fuzzily grows to 10GB without any clue about what's eating the memory.
-- a performance profiler that understands the language would help too: we currently resort to valgrind (Valgrind is not the problem)
-- a debugger that doesn't make you want to kill your spouse would be nice too.
-- we use bisect for coverage and that's ok.

- "Windows". has been covered before. It seems to be difficult to set up. Actually, I wouldn't know as we currently (and nothing in the pipeline) only do linux.
   (And it's a reassuring feeling that our brief escapades on BSD and Solaris turned out ok). 

   But I'm convinced  people who have windows as their only platform, will prefer F# or Haskell (I would too).

- "libraries": A lot is out there. Some are good, some are bad,  some don't like each other (lwt and async fe), some are lean, some are kitchen sinks.
  This will always be the case (whatever paradigm, programming language, or community). We actually don't need a lot since we mostly do system programming. 
  What we do need and often use is the foreign function interface, and I don't have complaints there (having experienced JNI in the past, I know this can be painful).

- "Community" I think we might split them in 2. the "Cathedral" (responsible for the download bundle) and Others (sometimes the same people in a different context)
-- Cathedral: If you want to have something in there (patch, bugfix, feature) and you're not part of the inner circle, you have zero insight in what will happen, 
   and a small chance of success. (This has also been covered here a lot, no need to digress)
-- Others 
--- LWT:   We have experience with the ocsigen people, and a track record of several lwt bugs discovered, testcases that assert the problem, and patches to the mailing list or the developers personally.
   If it concerns code, 95% (not measured, but this is how it feels) of the time, things are fixed the same or next day in their repo. 
   [We also sent documentation patches cleaning up the "Franglais", but these were totally ignored. I guess they just don't notice how bad it really is.]

--- Other libraries: again, most of the time, if we contact the developer(s) we quickly get a response. If it is a bug, it's fixed (almost) immediately.
    most (OCaml library) developers seem to have enough pride in what they do to make this happen. Really, no complaints there.

The bottom line is this: In our companies, there are 3 sets of people with OCaml exposure.
- those attracted to the greener pastures of Haskell
- those that think the OCaml ecosystem sucks, but less than other things, and not enough to move.
- those that think OCaml tool support sucks too much, and consider moving back to "the evil they know" (C++)


Btw, I checked, and none of them have any problem with type inference, or functional programming.


Anyway, I think that the next time we have the opportunity to choose the programming language for a component, we will have some interesting discussions.

have fun,

Romain.


       reply	other threads:[~2011-12-07 14:00 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <201112071100.pB7B0N8J020839@walapai.inria.fr>
2011-12-07 13:59 ` tools [this message]
2011-12-07 14:37   ` Jérémie Dimino
2011-12-06  8:25 Benedikt Meurer
2011-12-06  9:17 ` Goswin von Brederlow
2011-12-06 10:08   ` Gaius Hammond
2011-12-06  9:31 ` rixed
2011-12-06 12:10   ` Benedikt Meurer
2011-12-06  9:42 ` Kakadu
2011-12-06  9:48   ` Joel Reymont
2011-12-06 10:51   ` Fabrice Le Fessant
2011-12-06 10:58     ` Stefano Zacchiroli
2011-12-06 16:12       ` Fabrice Le Fessant
2011-12-06 19:24         ` Mehdi Dogguy
2011-12-06 10:00 ` Gerd Stolpmann
2011-12-06 12:20   ` Benedikt Meurer
2011-12-06 10:35 ` Gabriel Scherer
2011-12-06 11:31   ` Gerd Stolpmann
2011-12-06 12:34     ` Benedikt Meurer
2011-12-15 18:49     ` Jérôme Benoit
2011-12-06 13:09   ` Goswin von Brederlow
2011-12-06 22:48   ` oliver
2011-12-07  7:23     ` Adrien
2011-12-06 11:40 ` Gabriel Scherer
2011-12-06 12:02   ` Stefano Zacchiroli
2011-12-06 12:16     ` Joel Reymont
2011-12-06 12:43       ` Stefano Zacchiroli
2011-12-06 12:27   ` François Bobot
2011-12-06 13:01   ` Benedikt Meurer
2011-12-06 13:52 ` ivan chollet
2011-12-06 14:42   ` Alexandre Pilkiewicz
2011-12-06 15:10     ` Gerd Stolpmann
2011-12-06 15:14       ` Yitzhak Mandelbaum
2011-12-06 15:24         ` Pierre-Alexandre Voye
2011-12-07  9:36       ` Goswin von Brederlow
2011-12-06 22:07 ` oliver
2011-12-07  9:39   ` Goswin von Brederlow
2011-12-07 20:42     ` oliver

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=1323266396.63331.YahooMailNeo@web120603.mail.ne1.yahoo.com \
    --to=toolslive@yahoo.com \
    --cc=caml-list@inria.fr \
    /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).