From: Ville-Pertti Keinonen <will@exomi.com>
To: Robert Morelli <morelli@cs.utah.edu>
Cc: Kyle Consalus <consalus@gmail.com>, caml-list@yquem.inria.fr
Subject: Re: [Caml-list] Some Clarifications
Date: Wed, 20 Jul 2005 09:18:46 +0300 [thread overview]
Message-ID: <42DDECC6.8010209@exomi.com> (raw)
In-Reply-To: <42DD5F41.8060801@cs.utah.edu>
Robert Morelli wrote:
> In the interests of saving time, and keeping my post to a palatable
I'll only comment on a couple of points for the same reason...
> just the tip of the iceberg. I find that the facilities of a language
> like OCaml are so inadequate to represent this domain, that using
> OCaml can be a distinct impediment. Sometimes Java is a better fit.
Which do you have more experience in, OCaml or Java? Or FP vs. OO
languages in general?
Unless you are highly experienced in both, your view of OCaml as an
impediment might merely be an indication that you don't know the
language and the associated styles of abstraction sufficiently well.
Remember, OCaml is a multi-paradigm language, and the paradigms include OO.
The reason I'm pointing this out is that there are very few things that
Java, as a language, is capable of that don't translate easily to OCaml
(type-narrowing casts, explicit - extremely clunky - introspection,
neither of which are usually considered good OO practice). OCaml
provides a huge amount of things that don't easily translate to Java,
even in the OO area (separation of subtyping and inheritance, multiple
inheritance, binary methods etc.), and learning to make use of them
effectively requires experience.
Even for an OO language, Java is horribly clunky and limited. The
reasons for its popularity are almost certainly familiarity, library
functionality and commercial backing, it can't possibly be the merits of
the language itself.
> 4. Over the decades, both hardware and software technologies have
> inexorably evolved toward networked, decentralized, componentized
> systems. Even CPU's are now trending toward multicore designs. This
> makes the sequential computational model that FP is based on seem less
> and less central.
Really? Avoiding mutable state is a good way of making concurrent
programming convenient and reliable.
See e.g. Erlang for a very much real-world example.
Also consider a couple of multi-paradigm (with good FP features)
languages with very good support for concurrent and distributed
programming - Oz, Alice ML.
All of these are capable of running several orders of magnitude more
threads than Java efficiently. As is CML, which is the lightest-weight
of them all, but also the least practical.
Unlike multithreading in mainstream languages, where it's just a
bolted-on feature, resulting in extremely heavyweight threads and a
default concurrency model of shared-state concurrency (which is the most
error-prone) these systems treat concurrency as a programming paradigm.
Most of your arguments seem to be centered around either your personal
"feeling" of what OO is and what it's capable of (which is why I'm
interested in how much experience you have in different kinds of
languages) or rationalizations based on a belief in correlation between
popularity and merit (obviously popularity will go hand in hand with the
availability of literature and tools, but none of those are defining
factors in terms of the technical or scientific merit of a paradigm,
technology, language or anything else).
Note that I'm not arguing against OO, I consider it a very useful
programming paradigm, but it is not sufficient and it is vastly over-
and misused by the mainstream because they don't know anything else. I
consider multi-paradigm languages such as OCaml the most powerful and
practical programming tools.
next prev parent reply other threads:[~2005-07-20 6:18 UTC|newest]
Thread overview: 66+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-07-14 18:00 (Mostly) Functional Design? Kyle Consalus
2005-07-18 7:59 ` [Caml-list] " Robert Morelli
2005-07-18 9:22 ` Alex Baretta
[not found] ` <42DB78D3.7010401@andrej.com>
2005-07-18 10:01 ` Alex Baretta
2005-07-18 18:15 ` Robert Morelli
2005-07-18 18:45 ` Alex Baretta
2005-07-18 18:56 ` padiolea
2005-07-18 19:19 ` Jon Harrop
2005-07-18 19:38 ` Jon Harrop
2005-07-18 21:27 ` skaller
2005-07-18 21:55 ` Alwyn Goodloe
2005-07-18 22:16 ` Paul Snively
2005-07-19 0:45 ` Jonathan Bryant
2005-07-18 21:37 ` skaller
2005-07-18 22:00 ` Kenneth Oksanen
2005-07-18 9:29 ` Mark Meyers
2005-07-18 9:56 ` Large scale and FP (was: Re: [Caml-list] (Mostly) Functional Design?) David MENTRE
2005-07-18 18:11 ` Large scale and FP Robert Morelli
2005-07-18 14:08 ` [Caml-list] (Mostly) Functional Design? james woodyatt
2005-07-18 16:37 ` Alwyn Goodloe
2005-07-18 14:21 ` alphablock
2005-07-18 15:26 ` Alex Baretta
2005-07-18 15:38 ` alphablock
2005-07-18 17:17 ` Doug Kirk
2005-07-18 18:14 ` Alex Baretta
2005-07-19 7:42 ` james woodyatt
2005-07-19 9:35 ` Robert Morelli
2005-07-19 16:53 ` james woodyatt
2005-07-19 17:13 ` Paul Snively
2005-07-19 23:58 ` Jon Harrop
2005-07-20 0:29 ` Paul Snively
2005-07-18 18:23 ` padiolea
2005-07-18 19:45 ` Gerd Stolpmann
2005-07-18 22:16 ` skaller
2005-07-19 0:48 ` Chris Campbell
2005-07-19 20:14 ` Some Clarifications Robert Morelli
2005-07-20 6:18 ` Ville-Pertti Keinonen [this message]
2005-07-24 0:04 ` [Caml-list] " Robert Morelli
2005-07-24 2:30 ` Paul Snively
2005-07-24 7:37 ` Alex Baretta
2005-07-24 8:08 ` Robert Morelli
2005-07-24 12:23 ` David Teller
2005-07-24 18:29 ` skaller
2005-07-24 18:51 ` Paul Snively
2005-07-24 12:42 ` Gerd Stolpmann
2005-07-25 7:23 ` Ville-Pertti Keinonen
2005-07-20 7:34 ` David MENTRE
2005-07-27 15:37 ` Robert Morelli
2005-07-27 20:33 ` skaller
2005-07-27 23:48 ` Paul Snively
2005-07-20 16:28 ` Damien Doligez
2005-07-24 14:51 ` Robert Morelli
2005-07-24 16:11 ` David MENTRE
2005-07-25 12:21 ` Damien Doligez
2005-07-25 15:47 ` Richard Jones
2005-07-22 5:18 ` [Caml-list] (Mostly) Functional Design? Marius Nita
2005-07-27 9:38 [Caml-list] Some Clarifications Don Syme
2005-07-27 10:58 ` Jon Harrop
2005-07-27 11:55 ` Robert Roessler
2005-07-27 14:01 ` Richard Jones
2005-07-28 0:29 ` Robert Roessler
2005-07-27 18:42 ` skaller
2005-07-27 13:36 ` David Thomas
2005-07-27 13:53 ` Ville-Pertti Keinonen
2005-07-27 16:23 ` james woodyatt
2005-07-27 14:32 David Thomas
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=42DDECC6.8010209@exomi.com \
--to=will@exomi.com \
--cc=caml-list@yquem.inria.fr \
--cc=consalus@gmail.com \
--cc=morelli@cs.utah.edu \
/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