comp.lang.ada
 help / color / mirror / Atom feed
From: dhesi@rahul.net (Rahul Dhesi)
Subject: Re: Ada cost breakpoints
Date: Sun, 21 Mar 1993 22:50:01 GMT
Date: 1993-03-21T22:50:01+00:00	[thread overview]
Message-ID: <C49GrE.3xH@rahul.net> (raw)
In-Reply-To: 1993Mar21.120121.16006@hellgate.utah.edu

In <1993Mar21.120121.16006@hellgate.utah.edu>
matwood%peruvian.cs.utah.edu@cs.utah.edu (Mark Atwood) writes:

>>Even 30K lines of C is a pretty frightening thought.

>I'l say 30KLOC of C is frightning.  It is probably just me, but 5KLOC of
>C starts going over my head in a real hurry, esp. when it is full of
>"incantations" and commented like the BSD UNIX OS.  (I've seen some of
>the source, so don't bother me about it.)

>On the other hand, I'm working on a project that will probably come in
>at just under 10KLOC of Ada, and I feel I understand it, and feel
>comfortable calling it "small".

Now let me ask all of you something.

Suppose you have a software package that is a single monolithic program
with 100,000 lines of C (or Ada).  ("Package" is a generic term here
and not related to Ada's "packages".)

Suppose you have another software package that contains a number of
separate smaller programs, each one having 20,000 lines of code or
less.  Each program can invoke others via a system call (e.g., fork()
and exec() in a BSD environment).  The whole package has 125,000 lines
of code.

Other things (e.g., programming style and package functionality) being
the same, can you allow for the possibility that the second package
might be much easier to write and understand?

Discussions of lines of code should specify the structure of your
software.  Simply counting all lines of code in a software system does
not tell you much about its complexity.  100K lines of code all linked
together and sharing a namespace and common memory are likely to be
much harder to write and maintain than 20K pieces that execute as
independent processes.  Some environments (BSD) make it easy to use
small independent programs that efficiently invoke and communicate with
one another.

In these environments C and C++ will work
very well -- just keep the pieces small.

Other environments may make it difficult to do the same.  In such
environments Ada might be clearly better, though the controversy will
continue to rage.  But why are you using such environments in the first
place?

Note: It's true that some software functionality requires that
everything be linked together, either for efficiency, or because you
are writing an operating system kernel.  But most user-level
applications don't require such monolithicity.  Almost anywhere that
you have a logical division between a client and the server, the two
can be independent processes communicating via messages.  Not only is
does this simplify software design, but it gives you as a bonus the
ability to do distributed processing.

Rebuttals to the above argument should describe the software being
discussed, and why it can't be thus split.
-- 
Rahul Dhesi <dhesi@rahul.net>
also:  dhesi@cirrus.com



  reply	other threads:[~1993-03-21 22:50 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1993-03-15 17:02 Ada cost breakpoints (was Re: Air Force helping to undermine Ada) Michael D Shapiro
1993-03-21  5:19 ` Alex Blakemore
1993-03-21 19:01   ` Ada cost breakpoints Mark Atwood
1993-03-21 22:50     ` Rahul Dhesi [this message]
1993-03-23  3:13       ` Complexity of "distributed" v "monolithic" (was Re: Ada cost breakpoints) Mark Atwood
1993-03-24 22:30         ` David Emery
1993-03-24 22:24       ` Ada cost breakpoints David Emery
1993-03-25  7:00         ` Rahul Dhesi
1993-03-21 23:42   ` Ada cost breakpoints (was Re: Air Force helping to undermine Ada) Michael Feldman
1993-03-22 18:58 ` Robert I. Eachus
  -- strict thread matches above, loose matches on Subject: below --
1993-03-19 17:04 Ada cost breakpoints Bob Munck
1993-03-20 19:42 ` Gregory Aharonian
1993-03-29 15:35 crispen
1993-03-30 21:28 ` David Emery
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox