caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: "Jonathan Coupe" <jonathan@meanwhile.freeserve.co.uk>
To: <leary@nwlink.com>
Cc: <caml-list@inria.fr>
Subject: Re: [Caml-list] ocaml complexity
Date: Fri, 8 Jun 2001 13:27:33 +0100	[thread overview]
Message-ID: <003601c0f016$7ac12940$a00bfea9@baby> (raw)
In-Reply-To: <20010608024102.A13672@jean>


----- Original Message -----
From: <leary@nwlink.com>
To: "Jonathan Coupe" <jonathan@meanwhile.freeserve.co.uk>
Cc: <caml-list@inria.fr>
Sent: Friday, June 08, 2001 10:41 AM
Subject: Re: [Caml-list] ocaml complexity


> On Thu, Jun 07, 2001 at 07:29:27PM +0100, Jonathan Coupe wrote:
> > 1. Perl was perceived by the adopters who gave it critical mass as being
> > fundamentally like the languages they already knew (bash, C, Awk) It was
a
> > low risk, low effort, low fear choice.
>
> A Hitchhiker's Guide to type theory (and all the other alien things my
eyes
> glaze over at on this list) aimed at the unwashed masses would go a long
> way to making OCaml (and functional programming in general) more
> accessible.  Did I pass over one somewhere?
>
> > 2. Perl is aimed most of all at small projects. The risk of trying new
tools
> > in this space is low - throwing away a 200 lines of code is annoying,
but
> > not job threatening. And benefits are quickly perceiveable. Ocaml's best
use
> > is probably larger projects beyond the scope of scripting languages.
> > Throwing a way an even quarter completed project is likely to mean the
loss
> > of several thousand lines of coding effort, and you're unlikely to have
> > proveable benefits until the end of the first project, which is more
likely
> > to be months, not days or hours, after starting work.
>
> How much time and money do development teams spend creating and tracking
> down memory management errors in C and C++ starting on day one?  At least
> some of the benefits are immediate and ongoing.
>

If this was the decisive issue, people would just use C++ with GC. It's as
simple as doing a search for Boehm or Great Circle. I think the memory leak
issue for C++ is overstated (except possibly for very large projects.) For
competent teams, memory management is rarely an issue. C++'s real problems
are elsewhere: compiler breaking language complexity, poor generics, lack of
interpretive systems, no widely supported block\closure equivalent, nasty
type system, appalling phyical dependency issues, and bottom of the line
syntax for function calls.

Finally, you don't really know the cost/benefit ratio for a technology until
the day you manage to ship. You certainly won't be able to convince any
sceptical colleagues or managers of it, and that's what governs the adoption
rate for new technologies.


> > 4. Its easy to perceive Perl's strengths from an initial examination,
and
> > perhaps harder to pick up on its weaknesses.
>
> I can say exactly the same of OCaml.

Then you should say what these easy to percieve strengths are. The major
strengths of OCaml I'm aware are definite and considerable, but take time to
appreciate.

For Perl it's easy - great regexp, decent ability to wrap C, lots of
libraries, fast coding (as evidenced by the number of lines of code to write
a demonstration program - the easiest to perceive test for potential
adopters), improved file handling and loops compared to the languages it
took over from, an error tolerant runtime machine.

The point here isn't that Perl is a better or even good language. I don't
*like* Perl. The point is that it's benefits are easily communicated to
potential users:  communicating the potential benefits of Perl takes no more
than showing a 200 line C-program that's been re-written as a 17 line Perl
program.

This is not the case for OCaml. It's much hard to convey the benefits of its
support for functional programming. Many programmers don't know what fp is;
more are positively allergic to it because of bad academic intoductions.
It's not easy conveying the benefits of the OCaml type system to an
industrial C programmer either. Claiming benefit here is easy. Persuading
someone else that it exists requires real intellectual effort on your part
and theirs. I don't think anyone could this better than Mark Dominus did
with his article, which is probably a good hour's read. If the benefits
Ocaml provides here were obvious, I don't think you'd have written that
trying to understand the type system makes your eyes "glaze over."

Perl is widely used. Ocaml, Scheme, CLOS and Smalltalk aren't, despite being
better languages. The reason why is partly that Perl is a more marketable
language - it fits into niches where new tools can spread more easily, and
because its benefits are easily communicated, potential users can easily be
persuaded to try it out.

Jonathan Coupe


-------------------
Bug reports: http://caml.inria.fr/bin/caml-bugs  FAQ: http://caml.inria.fr/FAQ/
To unsubscribe, mail caml-list-request@inria.fr  Archives: http://caml.inria.fr


  parent reply	other threads:[~2001-06-08 12:19 UTC|newest]

Thread overview: 61+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-06-07  8:58 leary
2001-06-07 18:29 ` Jonathan Coupe
2001-06-08  9:41   ` leary
2001-06-08 10:05     ` Why is Ocaml better than Java (WAS: [Caml-list] ocaml complexity) Mattias Waldau
2001-06-08 13:31       ` Pierre Weis
2001-06-08 16:37         ` William Chesters
2001-06-08 21:39       ` Brian Rogoff
     [not found]       ` <Pine.BSF.4.21.0106081430070.27414-100000@shell5.ba.best.co m>
2001-06-08 22:16         ` Chris Hecker
2001-06-08 12:27     ` Jonathan Coupe [this message]
2001-06-08 20:22       ` [Caml-list] ocaml complexity Chris Hecker
2001-06-08 20:31         ` Miles Egan
2001-06-08 22:17           ` Jonathan Coupe
2001-06-08 22:18             ` Miles Egan
2001-06-11 14:05             ` Pierre Weis
2001-06-09 19:41           ` John Max Skaller
2001-06-08 22:59         ` David Fox
2001-06-09  0:43         ` leary
2001-06-09  1:09           ` Mark Wotton
2001-06-09  8:36           ` Markus Mottl
2001-06-09 20:58           ` John Max Skaller
2001-06-08 22:46       ` leary
2001-06-09  1:18         ` David Fox
2001-06-12 14:17           ` John Max Skaller
2001-06-13 15:21             ` Brian Rogoff
2001-06-13 20:32               ` leary
2001-06-13 22:58                 ` Johann Höchtl
2001-06-13 21:18               ` John Max Skaller
2001-06-09 22:32         ` Jonathan Coupe
2001-06-11  0:20           ` leary
  -- strict thread matches above, loose matches on Subject: below --
2001-06-14 16:04 John R Harrison
2001-06-13 21:04 David Gurr
2001-06-13 23:13 ` leary
2001-06-13 23:19 ` Brian Rogoff
2001-06-15 13:28   ` Tore Lund
2001-06-15 14:03     ` Nils Goesche
2001-06-15 14:54       ` Xavier Leroy
2001-06-15 15:14         ` Jonathan Coupe
2001-06-15 15:23         ` Nils Goesche
2001-06-15 17:38         ` Sven LUTHER
2001-06-15 20:36           ` Remi VANICAT
2001-06-15 14:16     ` Doug Bagley
2001-06-28 12:54   ` Didier Remy
2001-06-28 18:31     ` Brian Rogoff
2001-06-11 20:33 Arturo Borquez
2001-06-11 21:17 ` Miles Egan
2001-06-12  7:19   ` wester
2001-06-06 16:50 Miles Egan
2001-06-06 17:30 ` Chris Hecker
2001-06-06 18:25 ` Charles Martin
2001-06-06 19:27   ` Michael Hicks
2001-06-06 21:15   ` David Fox
2001-06-07 12:25   ` FabienFleutot
2001-06-08  0:27   ` Miles Egan
2001-06-06 19:36 ` William Chesters
2001-06-06 19:55   ` John Max Skaller
2001-06-06 20:06     ` William Chesters
2001-06-07 16:30       ` John Max Skaller
2001-06-08  0:32   ` Miles Egan
2001-06-08  0:56     ` David Fox
2001-06-07  7:35 ` wester
2001-06-07 17:27   ` John Max Skaller

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='003601c0f016$7ac12940$a00bfea9@baby' \
    --to=jonathan@meanwhile.freeserve.co.uk \
    --cc=caml-list@inria.fr \
    --cc=leary@nwlink.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).