caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: Gerd Stolpmann <info@gerd-stolpmann.de>
To: Robert Morelli <morelli@cs.utah.edu>
Cc: Ville-Pertti Keinonen <will@exomi.com>,
	Kyle Consalus <consalus@gmail.com>,
	caml-list@yquem.inria.fr
Subject: Re: [Caml-list] Some Clarifications
Date: Sun, 24 Jul 2005 14:42:44 +0200	[thread overview]
Message-ID: <1122208964.1706.36.camel@localhost.localdomain> (raw)
In-Reply-To: <42E2DB1E.2010508@cs.utah.edu>

Am Samstag, den 23.07.2005, 18:04 -0600 schrieb Robert Morelli:
> To be entirely frank,  I am put off by the style of your comments.
> If you disagree with my answer to the subject of this discussion,
> you should point the original poster to what you think is a
> discussion of large scale functional design,  or present your own
> explanation for why it doesn't exist.  I would be genuinely interested
> in what you have to say.  But instead,  you have chosen to veer off into
> rhetoric,  advocacy,  and ad hominem distractions.  I am puzzled by your
> citing points about Erlang and concurrent variants of ML that sound
> superficially to be relevant,  but which have no real bearing on
> anything I said.  I disagree with the frequent use of this mailing list
> to irrationally promote OCaml as a superior language to Java.  It is not
> an advocacy forum,  and I will not be drawn into criticizing OCaml's
> object system in this context.  When I crave irrational discussions,  I
> visit slashdot.  I am disappointed that you have resorted to ad
> hominem distractions,  projecting knowledge or "feelings" on me of
> issues outside of,  and irrelevant to,  what I stated,  and which do not
> represent my own feelings or anything I wish to discuss here.

I really doubt you know what you are speaking about (or, in other words,
we have a very different perception). First, I don't see that there is
very much advocacy on this list. Sometimes there are threads where
language features are compared, and it is very clear that a language
with many features like OCaml wins over a language with intentionally
few features like Java. There is almost always a more concise expression
for the same in OCaml. But this isn't advocacy, it is just an
observation. It doesn't mean that OCaml is the better language in
general.

Second, about "large-scale". I really wonder what your point is. OCaml
has a number of features that are a good basis for large programs.
Obviously, this list ignores all these features in its advocacy. Just to
bring them to your knowledge:

- OCaml has a quite strong definition, in the sense every expression
  has a clear meaning. This is very important for large programs,
  because it reduces unwanted effects.

- OCaml is statically typed, and its type system is much richer than
  the systems of pure OO languages. It is common practise to model the
  base lines of large programs by first designing the types one wants
  to use.

- Types may be polymorphic, to support reuse of code.

- OCaml has a module system. It is easy to implement a "separations
  of concerns" strategy by modularising the program.

- OCaml allows opaque types. This supports the "information hiding"
  which is also a large-scale strategy. There are also design techniques
  like abstract data types.

- The modules have a signature. It is possible to design the module
  system in advance (i.e. before implementation) by specifying the
  signature.

- OCaml allows separate compilation.

Note that all these large-scale features aren't special to functional
programming (but are compatible with it). In this sense, your original
thesis is correct. It is just the case that the conventional strategies
of large-scale design can also be applied to functional programs. Maybe
this is the reason why you don't find a thread about it.

As you mention Java: Of course, there are lot of books about large-scale
programming, because it is unclear from the language definition how to
do it. There is only a quite overloaded class system (which is also a
module system and also a type system), and it is the question how to use
the class system to get the effects of strategies like "separations of
concerns". (Note that the "design patterns" have little to do with this,
they are "low-level".)

I hope this message answers at least the question of the original poster
and gives some hints where to look.

Gerd

> In case you,  or anyone else,  is genuinely confused by what I said,
> I will make a further clarification in a separate post.
> 
> _______________________________________________
> Caml-list mailing list. Subscription management:
> http://yquem.inria.fr/cgi-bin/mailman/listinfo/caml-list
> Archives: http://caml.inria.fr
> Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
> Bug reports: http://caml.inria.fr/bin/caml-bugs
> 
-- 
------------------------------------------------------------
Gerd Stolpmann * Viktoriastr. 45 * 64293 Darmstadt * Germany 
gerd@gerd-stolpmann.de          http://www.gerd-stolpmann.de
Telefon: 06151/153855                  Telefax: 06151/997714
------------------------------------------------------------


  parent reply	other threads:[~2005-07-24 12:42 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     ` [Caml-list] " Ville-Pertti Keinonen
2005-07-24  0:04       ` 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 [this message]
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=1122208964.1706.36.camel@localhost.localdomain \
    --to=info@gerd-stolpmann.de \
    --cc=caml-list@yquem.inria.fr \
    --cc=consalus@gmail.com \
    --cc=morelli@cs.utah.edu \
    --cc=will@exomi.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).