From: Jon Harrop <jon@ffconsultancy.com>
To: yminsky@gmail.com
Cc: caml-list@inria.fr
Subject: Re: [Caml-list] [OSR] OCaml Standard Recommandation Process
Date: Mon, 28 Jan 2008 12:04:00 +0000 [thread overview]
Message-ID: <200801281204.00689.jon@ffconsultancy.com> (raw)
In-Reply-To: <891bd3390801271347y56af21cam492ccaac1348bb05@mail.gmail.com>
On Sunday 27 January 2008 21:47:47 Yaron Minsky wrote:
> On Jan 27, 2008 4:07 PM, Jon Harrop <jon@ffconsultancy.com> wrote:
> > Would it not be much easier and much more productive to simply fork the
> > OCaml
> > distribution and address these issues at source? You could then address
> > many
> > other issues like improving the stdlib, adding a "try..finally" construct
> > to
> > the language, adding features to help with the brittle binding problem
> > and opening the compiler's internal representations to the outside world.
>
> That seems like a fairly awful idea to me.
Agreed but I see no other way to keep OCaml alive and moving in a direction
that is beneficial to its community.
> Trying to develop the core language away from the confines of INRIA seems
> expensive and unlikely to go well.
Sophisticated renovations of the type system might not succeed but we're
talking about much more mundane features here. Just looking at text, we might
want:
. Folds in the String module.
. Functions to read whole files as a string or list of lines.
. Either "try..finally" or "use" bindings or combinators to automate closing.
. Immutable strings.
. Ropes.
. Unicode.
. More efficient pattern matching.
These have all been available for years in the form of many incompatible
extensions and will continue to be under-used until they are integrated into
OCaml itself.
There are also many features that I would like to steal from other languages:
. The IDisposable interface from .NET and F#'s "use" bindings.
. F#'s computation expressions: a syntax for monadic style in ML.
. Integrated OpenGL-based graphics.
and some more involved ones like operator overloading.
> The INRIA team understands the core of the language like no one
> else, after all, and it will be hard to replace that expertise.
OCaml's researchers at INRIA are unquestionably talented but they have made it
quite clear that polishing the public OCaml distribution is not their job.
Moreover, they are grossly over-qualified for most of this work. We don't
need a world expert in type theory to write String.fold_right for us: it
would be a waste of their time and constantly working around its absence is a
waste of ours. So we have different goals and (IMHO) have reached the point
where their developments are arguably doing more harm than good for many us.
If we want a more robust and feature complete OCaml then we must develop it
ourselves. Luckily the community has already done most of the hard work and
we just need to integrate this work into a new standardized OCaml
distribution and get the package maintainers to migrate to it.
With so many trivial changes to make this seems like a no-brainer to me.
Indeed, we've had many interesting threads here over the past few years and
this is our chance to put them into action. Look at all of the great
suggestions for optimizations that came out of the thread about MLton's
performance, for example. We can implement some of them. Look at the
outstanding bugs that were cited recently. We could fix many of them.
> I do think there is value in outside companies thinking carefully about a
> limited set of improvements that (a) can only be fixed in the core language
> and (b) would make it easier for outsiders to add necessary features.
You need a reasonable and objective definition of "can only be fixed in the
core language" because, of course, you can ad-hoc many things with camlp4 but
the results are much harder to maintain and will never gain the traction they
deserve. For example, I am not willing to have to change my compile lines,
learn to interpret different compiler output and break my other tools just to
get a "try..finally" construct but I would love to see it added to the OCaml
language and implemented in the tools.
Improving the standard library is high on my list. Sources of stack overflows
should be removed. The library should be filled out, e.g. so that all modules
implementing containers adhere to a suitable signature and Set/Map-compatible
modules are provided for all basic types (e.g. Int, Float).
As for making it easy for outsiders to add necessary features, perhaps there
is something we can do to weaken these brittle bindings by automating the use
of functors in a new intermediate representation and distribute that instead.
As the package maintainers have already said, this would make their lives
easier too!
> One role I would like to see the caml team take upon itself is that of
> blessing standardization efforts. If INRIA had a link on its site to a
> recommended batteries-included distribution, that would help the community
> coalesce around that distribution. Obviously trying to choose winners in
> this way is tricky and not to be done lightly, but I do think there's a
> good chance that it will become important.
If INRIA's blessing would help to persuade the package maintainers that we
have consensus to move forward with a new upstream source for the OCaml
distribution then I agree.
--
Dr Jon D Harrop, Flying Frog Consultancy Ltd.
http://www.ffconsultancy.com/products/?e
next prev parent reply other threads:[~2008-01-28 12:09 UTC|newest]
Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-01-27 13:23 David Teller
2008-01-27 13:52 ` [Caml-list] " Paolo Donadeo
2008-01-27 14:24 ` Yaron Minsky
2008-01-27 19:07 ` David Teller
2008-01-27 21:07 ` Jon Harrop
2008-01-27 21:47 ` Yaron Minsky
2008-01-28 11:06 ` David Teller
2008-01-28 12:04 ` Jon Harrop [this message]
2008-01-28 12:31 ` David Teller
2008-01-28 14:23 ` Brian Hurt
2008-01-28 15:15 ` Loup Vaillant
2008-01-28 15:40 ` Brian Hurt
2008-01-28 19:46 ` Jon Harrop
2008-01-28 15:25 ` Jon Harrop
2008-01-28 16:06 ` Christophe TROESTLER
2008-01-28 16:20 ` Nicolas Pouillard
2008-01-28 16:45 ` Christophe TROESTLER
2008-01-28 16:51 ` Olivier Andrieu
2008-01-28 19:58 ` Jon Harrop
2008-01-29 7:51 ` Gordon Henriksen
2008-01-28 20:49 ` Jon Harrop
2008-01-28 22:05 ` Till Varoquaux
2008-01-28 23:10 ` Jon Harrop
2008-01-28 16:37 ` Brian Hurt
2008-01-28 17:30 ` David Teller
2008-01-28 20:43 ` Jon Harrop
2008-01-28 21:12 ` Gerd Stolpmann
2008-01-28 21:39 ` Jon Harrop
2008-01-29 16:49 ` Edgar Friendly
2008-01-30 8:52 ` Sylvain Le Gall
2008-01-30 10:02 ` [Caml-list] " Jon Harrop
2008-01-30 12:12 ` Vincent Hanquez
2008-01-28 21:43 ` [Caml-list] " Dario Teixeira
2008-01-29 7:59 ` Francois Pottier
2008-01-28 22:07 ` Arnaud Spiwack
2008-01-27 14:36 ` Michaël Grünewald
2008-01-27 15:10 ` Dario Teixeira
2008-01-28 13:38 ` Sylvain Le Gall
2008-01-28 13:52 ` [Caml-list] " David Teller
2008-01-28 0:23 ` [Caml-list] " Oliver Bandel
2008-01-30 9:43 ` Sylvain Le Gall
2008-01-30 20:25 ` [Caml-list] " blue storm
2008-01-30 20:49 ` Sylvain Le Gall
2008-01-30 20:54 ` [Caml-list] " Eric Cooper
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=200801281204.00689.jon@ffconsultancy.com \
--to=jon@ffconsultancy.com \
--cc=caml-list@inria.fr \
--cc=yminsky@gmail.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