From: Chris Hecker <checker@d6.com>
To: brogoff@speakeasy.net
Cc: "caml-list@pauillac.inria.fr" <caml-list@pauillac.inria.fr>
Subject: Re: Module recursion (Was Re: [Caml-list] Re: Haskell-like syntax)
Date: Mon, 17 Mar 2003 13:09:10 -0800 [thread overview]
Message-ID: <4.3.2.7.2.20030317123042.038b00c0@localhost> (raw)
In-Reply-To: <Pine.LNX.4.44.0303171145500.29039-100000@grace.speakeasy.n et>
>I also use OCaml in my job. By "pet problem", I meant that set of language
>quirks that annoy you. If you work with even one other OCaml programmer,
>I'll bet you find that what annoys you may not annoy the other guy as
>much, and vice versa.
Sure, I was just indicating that there are some things that go beyond "pet
problems" and get into "real problems", and I think this is one of
them. The question is just whether programming is enough of an
engineering discipline to be able to say "this is a quantifiably bad thing
for implementing large programs". I guess it's not since things like this
are still very subjective, but if it was then I'd say this function thing
falls into that category because you want to enable decoupling. It's also
gray because compile times and coupling aren't going to kill a project,
they're just going to make the process more painful than it needs to
be. So, the rationalizers always can point to success and say, "see, it
wasn't needed", which misses the subtlety of the situation.
> > and there are order of initialization issues (which there aren't if you
> just
> > allow functions to be called, and not arbitrary values)
>Are you sure? I think the order of initialization issues still occur even
>if you just allow functions.
Hmm. There are no "0th order" initialization order problems, since a
function is always just callable (as opposed to trying to call through an
uninitialized value). I guess there are 1st order problems in that if A
calls into B.f and B hasn't been initialized and B.f uses a global in B
then you'll be in trouble. I don't think there's a problem if you do not
reference any globals, though. I think it's still a valuable tool in that
case, but yeah, I guess it's not totally safe. That's probably why this
hasn't been implemented. I wonder what that patch did in this case, if
anything. Ah, here's Fabrice's original post, and it looks like you have
to enforce the constraint manually:
http://groups.google.com/groups?selm=fa.hlh6e5v.1fmkppq%40ifi.uio.no
(related post by Xavier, replying to me complaing about this limitation in
2001 when I learned about it :)
http://groups.google.com/groups?selm=fa.dks4ugv.1a6iho7%40ifi.uio.no
>Again, I agree, but every language has annoying flaws.
Sure, but again, there has to be some metric for when something is more
than just an annoying flaw. I guess large programs get written in caml, so
by some measure it "works". Maybe that is the only metric available at
this point. However, given that metric, large programs got written in asm,
but that didn't stop people from trying to fix the "annoying flaws" and
finding value in fixing them. :)
>Actually, I've read some SML programmers arguing exactly that, that it is
>a limitation leading to better designs, and that allowing the types and
>functions to be spread out will lead to more bad designs. Good SML
>programmers too. My opinion is closer to yours than theirs wrt functions,
>but I wouldn't just discount that opinion as nonsense.
I don't discount it as nonsense, I just trust professional programmers
more. We're so far away from a language that actually helps design
programs for you, that any steps in that direction right now are usually
naive and more limiting than useful, in my opinion. Caml needs Obj.magic,
for example. It would be a less viable language without it, even though
every argument for its use could be called "bad design".
Chris
-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
next prev parent reply other threads:[~2003-03-17 21:13 UTC|newest]
Thread overview: 88+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-03-06 23:27 [Caml-list] OCaml popularity Graham Guttocks
2003-03-10 20:43 ` Paul Steckler
2003-03-10 23:48 ` Gerd Stolpmann
2003-03-11 0:18 ` Brian Hurt
2003-03-17 23:49 ` Graham Guttocks
2003-03-11 1:43 ` Nicolas Cannasse
2003-03-11 10:23 ` Pierre Weis
2003-03-11 14:27 ` Guillaume Marceau
2003-03-11 16:16 ` David Brown
2003-03-11 16:47 ` [Caml-list] about -rectypes Christophe Raffalli
2003-03-12 2:32 ` [Caml-list] OCaml popularity Nicolas Cannasse
2003-03-12 3:55 ` Cross-platform GUI (was Re: [Caml-list] OCaml popularity) mgushee
2003-03-12 10:51 ` [Caml-list] OCaml popularity Alex Romadinoff
2003-03-12 18:24 ` Max Kirillov
2003-03-11 19:02 ` Graham Guttocks
2003-03-12 17:12 ` Richard W.M. Jones
2003-03-12 18:08 ` Alwyn Goodloe
2003-03-12 22:34 ` Michael Schuerig
2003-03-12 23:13 ` Martin Weber
2003-03-12 23:35 ` Michael Schuerig
2003-03-13 8:02 ` Alessandro Baretta
2003-03-13 10:23 ` Michael Schuerig
2003-03-12 23:35 ` Brian Hurt
2003-03-12 23:18 ` Daniel Bünzli
2003-03-12 23:47 ` Brian Hurt
2003-03-13 2:15 ` William Lovas
2003-03-13 3:44 ` Graham Guttocks
2003-03-13 9:31 ` Richard W.M. Jones
[not found] ` <20030313095232.GC347@first.in-berlin.de>
2003-03-13 20:50 ` William Lovas
2003-03-13 21:17 ` Oliver Bandel
2003-03-13 22:01 ` Brian Hurt
2003-03-13 22:17 ` Oliver Bandel
2003-03-14 6:33 ` Michal Moskal
2003-03-14 11:50 ` Markus Mottl
2003-03-14 15:38 ` Oliver Bandel
2003-03-14 10:13 ` MikhailFedotov
2003-03-14 10:30 ` Johann Spies
2003-03-13 8:09 ` Pierre Weis
2003-03-15 1:43 ` Tushar Samant
2003-03-15 8:19 ` Andreas Eder
2003-03-11 16:26 ` Fred Yankowski
2003-03-11 19:47 ` [Caml-list] OCaml popularity (long!) mgushee
2003-03-12 11:23 ` Diego Olivier Fernandez Pons
2003-03-30 5:59 ` Belated thanks (was Re: [Caml-list] OCaml popularity) Matt Gushee
2003-03-31 15:27 ` [Caml-list] Re: Belated thanks cashin
2003-04-01 8:22 ` Belated thanks (was Re: [Caml-list] OCaml popularity) Johann Spies
2003-03-12 20:41 ` [Caml-list] OCaml popularity (long!) Max Kirillov
2003-03-13 2:36 ` Haskell-like syntax (was: [Caml-list] OCaml popularity (long!)) Oleg
2003-03-13 18:33 ` [Caml-list] Re: Haskell-like syntax Max Kirillov
2003-03-14 19:30 ` Max Kirillov
2003-03-14 19:47 ` Max Kirillov
2003-03-14 20:01 ` Seth Kurtzberg
2003-03-14 20:34 ` brogoff
2003-03-14 21:17 ` Sebastien Carlier
2003-03-14 21:51 ` brogoff
2003-03-15 2:27 ` Max Kirillov
2003-03-15 10:58 ` Markus Mottl
2003-03-15 15:52 ` [Caml-list] globally valid symbols (was: Haskell-like syntax) Max Kirillov
2003-03-15 20:16 ` [Caml-list] Re: Haskell-like syntax David Brown
2003-03-16 5:28 ` Module recursion (Was Re: [Caml-list] Re: Haskell-like syntax) brogoff
2003-03-16 11:10 ` Markus Mottl
2003-03-16 18:02 ` brogoff
2003-03-16 18:34 ` Markus Mottl
[not found] ` <Pine.LNX.4.44.0303152112560.27230-100000@grace.speakeasy.n et>
2003-03-16 5:38 ` Chris Hecker
2003-03-16 18:34 ` brogoff
2003-03-17 2:20 ` Jacques Garrigue
[not found] ` <Pine.LNX.4.44.0303161020480.11736-100000@grace.speakeasy.n et>
2003-03-17 5:08 ` Chris Hecker
2003-03-17 17:06 ` brogoff
2003-03-17 19:01 ` Ville-Pertti Keinonen
[not found] ` <Pine.LNX.4.44.0303170836240.29039-100000@grace.speakeasy.n et>
2003-03-17 19:33 ` Chris Hecker
2003-03-17 20:28 ` brogoff
[not found] ` <Pine.LNX.4.44.0303171145500.29039-100000@grace.speakeasy.n et>
2003-03-17 21:09 ` Chris Hecker [this message]
2003-03-19 2:34 ` [Caml-list] ocamlopt speed (was Re: Module recursion) Chris Hecker
2003-03-19 10:03 ` Michal Moskal
2003-03-19 10:38 ` Gerd Stolpmann
2003-03-19 20:36 ` Chris Hecker
2003-03-17 1:46 ` [Caml-list] Re: Haskell-like syntax Nicolas Cannasse
2003-03-14 22:50 ` Oleg
2003-03-20 15:01 ` Andreas Rossberg
2003-03-12 20:46 ` [Caml-list] Monads was OCaml popularity Christophe Raffalli
2003-03-13 0:03 ` [Caml-list] monads for dummies james woodyatt
2003-03-13 4:32 ` Christopher Quinn
2003-03-13 11:53 ` Christian Lindig
2003-03-12 18:59 ` [Caml-list] OCaml popularity Martin Weber
2003-03-12 20:24 ` Xavier Leroy
2003-03-13 8:57 ` [Caml-list] how to interface with integer Bigarrays using camlidl francois bereux
2003-03-13 9:36 ` Xavier Leroy
2003-03-13 0:42 ` [Caml-list] OCaml popularity Graham Guttocks
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=4.3.2.7.2.20030317123042.038b00c0@localhost \
--to=checker@d6.com \
--cc=brogoff@speakeasy.net \
--cc=caml-list@pauillac.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