caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: Seth Kurtzberg <research@isec.us>
To: Chris Hecker <checker@d6.com>
Cc: Brian Hurt <brian.hurt@qlogic.com>,
	David Brown <caml-list@davidb.org>,
	"'caml-list@inria.fr'" <caml-list@inria.fr>
Subject: Re: [Caml-list] ocaml and large development projects
Date: Mon, 19 May 2003 16:39:00 -0700	[thread overview]
Message-ID: <11646262-8A53-11D7-B86B-000A959AF1CE@isec.us> (raw)
In-Reply-To: <4.3.2.7.2.20030519120753.04545700@localhost>


On Monday, May 19, 2003, at 12:31 PM, Chris Hecker wrote:

>
>> Except C++ has *exactly* the same problem.  Change a private member 
>> of a
>> base class, and watch *everything* recompile.  I've seen this more 
>> often
>> then I want to remember.  This is, of course, assuming you don't have 
>> an
>> "everything.h" include file, which is quite common if you precompile
>> headers.  At which point, change anything in a header and watch 
>> everything
>> recompile.

What does an "everything.h" header file have to do with anything?  The 
compilers that support precompiled headers are smart enough to do with 
per header file granularity.  In addition, if one of my programmers 
organized header files based on the compiler's behavior W.R.T. 
precompiled headers, that programmer would soon halt any such behavior 
or start pounding the pavement.

>
> It would be silly to turn this thread into a language war, but this 
> statement is just false, in practice.  C++ sucks, for sure, and a 
> naive programmer can easily make a mess.  But, there are well known 
> and heavily used techniques to avoid these problems, and they work.  
> It's a waste of time to debate that.  You can (and most people who 
> have a clue do) make it so that you have interfaces and 
> implementation, and touching the latter doesn't require anything more 
> than a recompile of that file and a relink.

This is true although I would argue that use of such techniques is 
unwise due because they impose a huge cost in errors that the compiler 
is unable to detect.  I agree with the general thrust of what Chris has 
been saying, and I don't think he is suggesting that such strategies 
are things that ocaml might emulate; I'm just stating for emphasis that 
this would be a bad thing.

>
> It does not appear that this is even possible now with ocamlopt.  That 
> is the problem I'm talking about.  In C++ you can give up some 
> features and get highly encapsulated code with minimal build 
> dependencies.  I don't think this is possible now with ocamlopt 
> regardless of whether you're willing to give up features or not, given 
> my understanding of the situation.  I would love to hear differently, 
> or have someone from the caml team comment on this.

I agree; I don't know of any such techniques but please correct that 
impression if it is incorrect.

>
>> Maybe.  C++ and Java are toy languages, then.
>
> This statement plays well on a mailing list for an alternative 
> language, but the reality is fairly different and most people writing 
> large software in C++ would write you off as a loon if you said this 
> to them.  There's an important difference between a sucky language and 
> a toy language.
>
> Still flabbergasted,
> Chris
>
> PS.  A related issue is going to come up with respect to disabling 
> cross-file inlining when we get native DLLs.  You want to be able to 
> control what gets made available for inlining when building a DLL, 
> since one of the uses of DLLs is to be able to supply a new version of 
> code and so you can't have it be already inlined in the client 
> application.
>
>
> -------------------
> 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
>
>
-----------------------------------------------------------------
Seth Kurtzberg
CTO
ISEC Research and Network Operations Center
480-314-1540
888-879-5206
seth@isec.us
-----------------------------------------------------------------

-------------------
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


  reply	other threads:[~2003-05-19 23:39 UTC|newest]

Thread overview: 63+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <ocaml@tagger.yapper.org>
2003-03-31 16:51 ` [Caml-list] How can I check for the use of polymorphic equality? Neel Krishnaswami
2003-03-31 17:33   ` brogoff
2003-04-03 19:44   ` Jason Hickey
2003-04-03 20:40     ` Pierre Weis
2003-04-03 20:53       ` Chris Hecker
2003-04-04  8:46         ` Pierre Weis
2003-04-04 19:05           ` Jason Hickey
2003-04-04  9:10         ` Andreas Rossberg
2003-05-14 11:43 ` [Caml-list] ocaml and large development projects Traudt, Mark
2003-05-14 15:52   ` Jason Hickey
2003-05-18  5:32     ` Chris Hecker
2003-05-18  5:44       ` David Brown
2003-05-18  6:10         ` Chris Hecker
2003-05-18 11:13           ` John Carr
2003-05-18 16:51             ` Ed L Cashin
2003-05-18 18:08               ` Lex Stein
2003-05-18 19:08                 ` Ed L Cashin
2003-05-18 19:55                   ` Lex Stein
2003-05-19  8:13                   ` Markus Mottl
2003-05-19  8:33                     ` Nicolas Cannasse
2003-06-02 21:59                     ` John Max Skaller
2003-05-18 23:19                 ` Chris Hecker
2003-05-18 14:38           ` David Brown
2003-05-18 16:00             ` Ville-Pertti Keinonen
2003-05-19 15:36           ` Brian Hurt
2003-05-19 19:31             ` Chris Hecker
2003-05-19 23:39               ` Seth Kurtzberg [this message]
2003-05-20  8:07               ` [Caml-list] ocaml as *.so (was: ...and large development projects) Wolfgang Müller
2003-05-20  8:42                 ` [Caml-list] Reading a file Siegfried Gonzi
2003-05-20 10:21                   ` Mattias Waldau
2003-05-20 10:48                   ` Nicolas Cannasse
2003-05-20 10:55                   ` Markus Mottl
2003-05-20 13:20                   ` Michal Moskal
2003-05-20 12:21                     ` Siegfried Gonzi
2003-05-21  6:11                     ` Siegfried Gonzi
2003-05-21  6:48                       ` Siegfried Gonzi
2003-05-21  6:53                         ` Siegfried Gonzi
2003-05-21  9:16                           ` Markus Mottl
2003-05-21 10:04                             ` Eray Ozkural
2003-05-21 16:20                               ` brogoff
2003-05-21  8:21                       ` Michal Moskal
2003-05-21  7:24                         ` [Caml-list] PsiLAB works fine under Linux SuSE 8 Siegfried Gonzi
2003-05-21  9:11                       ` [Caml-list] Reading a file Markus Mottl
2003-05-22  6:27                         ` Siegfried Gonzi
2003-05-22 10:26                           ` Markus Mottl
2003-05-23  5:59                             ` Siegfried Gonzi
2003-05-23  6:04                               ` Siegfried Gonzi
2003-05-20 10:45                 ` [Caml-list] ocaml as *.so (was: ...and large development projects) Nicolas Cannasse
2003-05-20 11:17                   ` Wolfgang Müller
2003-05-20 11:31                     ` Nicolas Cannasse
2003-05-20 11:40                       ` Wolfgang Müller
2003-06-02 22:40                 ` John Max Skaller
2003-06-03 13:26                   ` [Caml-list] ocaml as *.so Remi Vanicat
2003-06-02 22:42               ` [Caml-list] ocaml and large development projects John Max Skaller
2003-06-02 21:24           ` John Max Skaller
2003-06-02 21:12       ` John Max Skaller
2003-06-03  0:31         ` Chris Hecker
2003-06-03 10:13           ` Michal Moskal
2003-06-03 18:12             ` Chris Hecker
2003-06-03 14:31           ` art yerkes
2003-06-03 21:55           ` Jason Hickey
2003-06-03 22:42             ` Chris Hecker
2003-06-06 23:46             ` 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=11646262-8A53-11D7-B86B-000A959AF1CE@isec.us \
    --to=research@isec.us \
    --cc=brian.hurt@qlogic.com \
    --cc=caml-list@davidb.org \
    --cc=caml-list@inria.fr \
    --cc=checker@d6.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).