comp.lang.ada
 help / color / mirror / Atom feed
From: "Marin David Condic" <dont.bother.mcondic.auntie.spam@[acm.org>
Subject: Re: Is strong typing worth the cost?
Date: Wed, 1 May 2002 13:25:35 -0400
Date: 2002-05-01T17:25:36+00:00	[thread overview]
Message-ID: <aap8eg$gt5$1@nh.pace.co.uk> (raw)
In-Reply-To: 3CD01D32.19D997B0@san.rr.com

"Darren New" <dnew@san.rr.com> wrote in message
news:3CD01D32.19D997B0@san.rr.com...
> Following up on several posts at once...
>
Makes it kind of hard to respond...


>
> Well, depending on the project, you might consider things like XP to be
> evidence that such a system can be made more productive than a strict
> top-down design blah blah.
>
I wasn't thinking of XP or any other development methodologies, etc. I was
talking about language philosophies - Ada has a distinct philosophy that
distinguishes it from other languages like C. (Programs should be more
readable than writable. Programs should have checks done by the language
rather than the programmer... etc...) If what you want to test is the
relative efficiency of this philosophy as compared to the C philosophy, then
you'd have to introduce them both to the same development process. Anything
else and you've got a worthless experiment.


> However, I think the benefit of something like Ada over something like C
> is pretty clear. It's just not clear to me that the benefit of something
> like Ada over something like Smalltalk or Common Lisp or FORTH or
> something else with an entirely different philosophy of programming is
> as obvious.
>
I don't know of any studies that introduced Ada into a process that used to
use Smalltalk, etc. (or the other way around) and demonstrated any change in
productivity or quality. It would be interesting to find out, but given the
more niche-market characteristics of the above languages, its harder to find
case studies - real or potential.


>
> > standard disclaimer: "All Other Things Being Equal" :-)
>
> And the problem is that in reality, all other things aren't equal. A
> language specifically designed to be weakly typed, or dynamically typed,
> or something like that isn't going to be equal to Ada in most other
> ways. If all you know are the "romance languages" of programming
> (procedural imperative statically-typed languages), this may not be as
> obvious.
>
That's one big reason that it is hard to study the impact of language, or
some specific language characteristic, on productivity and quality. It is
unbelievably hard to make all other things equal. This would be true even
within the "romance languages" so its just plain hard to do anything that
doesn't immediately come under fire as not being scientific or at least
seriously flawed.


>
> > Things like that *can* become functional requirements as in "The system
> > shall detect all input that is out of range..." or "The system shall
never
> > generate an output for this device that exceeds its safe operating
> > range...." All that requires some kind of constraint checks at points
> > throughout the code where a weak typed language is going to be at a
> > disadvantage because you'll have to manufacture your own checks.
>
> It's not clear a weakly-typed language is going to be at a disadvantage
> from this. Consider a compiler that has a requirement to give a syntax
> error for any malformed input. Something like Ada could declare types
> representing valid syntax trees and build the syntax trees during
> parsing. But the Ada code is still going to have to check the input as
> it reads it in order to give an error message rather than throwing an
> uncaught exception. Something like an SQL RDBMS written in Ada is going
> to have to do pretty much all the same checks in Ada as it would in C.
> So once you get to a high enough level of input checking and error
> reporting, you can't rely on the constraint checks to tell you what's
> wrong with your input. You really don't want a stack traceback printed
> out on your payroll checks.
>
I think this is a separate issue. Think in terms of two levels of checks.
The first safeguard (which may be a requirement) you might call "Sanity
Checks". If you know your inputs are supposed to be in some range or that
they must be valid ASCII characters or that arrays have to be of some
specific size or you have to insure you can't walk off the end of a buffer
or whatever, and all those things are considered to be system requirements,
then any weak typed language is going to be at a disadvantage because you'll
have to code all those checks yourself. The next level of checks for
validity - the kinds of things you bring up such as a compiler looking for
valid syntax - those are going to be very application specific and you'll
have to manually code those checks no matter what language you use. So is
the requirement to do both validity checks and sanity checks? If so, weak
typing loses.


>
> And XP addresses this by making every debug session a multi-minute debug
> session. For some types of developments, it really does work, even
> without the strong typing. (Well, it's strongly typed, but dynamically
> typed, so I don't think the OP would consider it strongly typed.) And
> indeed the keeping track of bugs found and fixed is one of the central
> mantras of XP. The way you program is you first insert a bug ("The code
> doesn't yet implement this new requirement, so the test that it works
> fails, so that's considered a bug") then you fix that bug.
>
You're bringing up process - not language. Process may be interesting, but I
don't think it has much to do with the original question.

MDC
--
Marin David Condic
Senior Software Engineer
Pace Micro Technology Americas    www.pacemicro.com
Enabling the digital revolution
e-Mail:    marin.condic@pacemicro.com





  reply	other threads:[~2002-05-01 17:25 UTC|newest]

Thread overview: 166+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-04-28 17:07 Is strong typing worth the cost? dmjones
2002-04-29 15:22 ` Ted Dennison
2002-04-29 15:53   ` Pat Rogers
2002-04-29 18:37   ` dmjones
2002-04-29 18:50     ` Pat Rogers
2002-04-29 19:00     ` Darren New
2002-04-30 11:50     ` Marc A. Criley
2002-04-30 13:24       ` dmjones
2002-04-30 15:03         ` Jim Rogers
2002-04-30 16:48           ` dmjones
2002-04-30 17:45             ` Marin David Condic
2002-05-01 21:36               ` Brian Gaffney
2002-04-30 18:20             ` tmoran
2002-04-30 19:00               ` Marin David Condic
2002-05-01 15:20                 ` dmjones
2002-05-01 16:07                   ` Marin David Condic
2002-05-02  5:00                     ` Simon Wright
2002-05-02  7:55                   ` Martin Dowie
2002-05-01 16:51                 ` Darren New
2002-05-01 17:25                   ` Marin David Condic [this message]
2002-05-02 16:09                     ` Darren New
2002-05-03 13:46                       ` Marin David Condic
2002-05-03 22:54                         ` Darren New
2002-05-01 18:22                 ` tmoran
2002-05-01 18:50                   ` Marin David Condic
2002-05-01 20:30                   ` Dan Andreatta
2002-05-01 21:47                     ` Larry Kilgallen
2002-05-02 15:43                     ` Wes Groleau
2002-04-30 19:01             ` Preben Randhol
2002-04-30 19:28               ` Preben Randhol
2002-04-30 20:20                 ` Marin David Condic
2002-05-01  8:36                   ` Pascal Obry
2002-05-01 11:50                     ` Gary Scott
2002-05-01 13:39                       ` Marin David Condic
2002-05-02  2:24                         ` Darren New
2002-05-02 15:47                           ` Wes Groleau
2002-05-02 16:37                             ` Darren New
2002-05-02 19:59                               ` Chad R. Meiners
2002-05-02 21:48                                 ` Darren New
2002-05-02 22:16                                   ` Wes Groleau
2002-05-02 23:52                                     ` Darren New
2002-05-03  0:17                                       ` Aidan Skinner
2002-05-03  0:31                                         ` Aidan Skinner
2002-05-03 15:10                                       ` Wes Groleau
2002-05-03 16:06                                         ` Darren New
2002-05-06 16:37                                           ` Wes Groleau
2002-05-06 17:40                                             ` Darren New
2002-05-07  2:06                                               ` tmoran
2002-05-07 15:21                                                 ` Darren New
2002-05-07 19:11                                                   ` Preben Randhol
2002-05-03 15:31                                       ` Wes Groleau
2002-05-03 16:21                                         ` Darren New
2002-05-06 15:33                                           ` Wes Groleau
2002-05-06 16:30                                             ` Darren New
2002-05-03 15:38                                       ` Wes Groleau
2002-05-03 16:07                                         ` Marin David Condic
2002-05-03 19:51                                       ` Randy Brukardt
2002-05-03 20:55                                         ` Ed Falis
2002-05-04 16:34                                           ` Brian Rogoff
2002-05-03  0:22                                   ` Chad R. Meiners
2002-05-03  0:48                                     ` Darren New
2002-05-03 12:11                                       ` Chad R. Meiners
2002-05-03 14:27                                         ` Marin David Condic
2002-05-04  0:23                                           ` Darren New
2002-05-06 17:54                                             ` Marin David Condic
2002-05-07 15:28                                               ` Darren New
2002-05-07 17:54                                                 ` Chad R. Meiners
2002-05-03 14:01                           ` Marin David Condic
2002-05-03 23:41                             ` Gary Scott
2002-05-06 18:05                               ` Marin David Condic
2002-05-01 14:19                       ` Pascal Obry
2002-05-01 13:27                     ` Marin David Condic
2002-05-01 14:28                     ` Wes Groleau
2002-05-01 15:25                       ` Marin David Condic
2002-05-02 15:51                       ` Wes Groleau
2002-05-02 16:47                         ` Gary Scott
2002-05-02 18:24                           ` Preben Randhol
2002-05-02 18:48                             ` Dan Nagle
2002-05-03  8:44                               ` Preben Randhol
2002-05-03 10:17                                 ` Gary Scott
2002-05-03 10:48                                   ` Preben Randhol
2002-05-03 13:13                                     ` Gary Scott
2002-05-03 14:40                                       ` Preben Randhol
2002-05-03 14:32                                 ` Dan Nagle
2002-05-02 17:26                         ` Larry Hazel
2002-05-02 18:12                           ` Wes Groleau
2002-05-02 18:40                             ` Preben Randhol
2002-05-02 21:54                               ` Wes Groleau
2002-05-02 18:54                           ` Gary Scott
2002-05-02 21:56                             ` Wes Groleau
2002-05-26 17:56                           ` Robert I. Eachus
2002-05-26 22:04                             ` Brian Rogoff
2002-05-27 23:26                               ` Robert I. Eachus
2002-05-28 15:26                             ` Marin David Condic
2002-05-02 11:30                     ` Larry Kilgallen
     [not found]                     ` <3CCFD76A.A60BB9Organization: LJK Software <Sb8D81Zz$HcE@eisner.encompasserve.org>
2002-05-02 16:12                       ` Darren New
2002-04-30 21:17             ` Jim Rogers
2002-04-30 21:30               ` Darren New
2002-05-07 12:17           ` Colin Paul Gloster
2002-05-07 22:11             ` Hyman Rosen
2002-04-30 15:39         ` Marin David Condic
2002-05-01 14:39           ` Wes Groleau
2002-05-01 15:42             ` Marin David Condic
2002-05-02 20:17               ` Jeffrey Carter
2002-05-03 14:40                 ` Marin David Condic
2002-05-26 16:51               ` Robert I. Eachus
2002-05-28 15:16                 ` Marin David Condic
2002-04-30 17:02         ` Chad R. Meiners
2002-04-30 17:27           ` Darren New
2002-04-30 20:15             ` Chad R. Meiners
2002-04-30 20:42               ` Marin David Condic
2002-05-02 12:00                 ` Marc A. Criley
2002-05-02 15:20                   ` Larry Kilgallen
2002-05-02 16:19                   ` Darren New
2002-05-03 14:44                   ` Marin David Condic
2002-04-30 21:40               ` Darren New
2002-04-30 21:43             ` tmoran
2002-04-30 22:38               ` Darren New
2002-04-30 18:04           ` Marin David Condic
2002-04-30 17:27         ` Jeffrey Carter
2002-04-30 17:35         ` Marc A. Criley
2002-05-01  4:01         ` Richard Riehle
2002-04-29 16:02 ` Marin David Condic
2002-05-01  0:31 ` dmjones
2002-05-01  8:05   ` Preben Randhol
2002-05-01  8:07   ` Preben Randhol
2002-05-01 14:32   ` Mike Silva
2002-05-01 15:52     ` Marin David Condic
2002-05-02 16:17     ` Wes Groleau
2002-05-02 18:53       ` tmoran
2002-05-02 18:58         ` Pat Rogers
2002-05-01 15:35   ` Jim Rogers
2002-05-01 16:17     ` Marin David Condic
2002-05-01 18:42     ` dmjones
2002-05-01 20:12       ` Dan Andreatta
2002-05-01 20:19       ` Darren New
2002-05-01 22:17         ` Jeffrey Carter
2002-05-02 16:18           ` Wes Groleau
2002-05-01 21:46       ` Larry Kilgallen
2002-05-01 22:21       ` Jeffrey Carter
2002-05-02 11:28         ` John English
2002-05-02 16:18           ` Darren New
2002-05-02 16:41             ` Larry Kilgallen
2002-05-02 18:28               ` Preben Randhol
2002-05-02 19:53                 ` Larry Kilgallen
2002-05-03 12:12                 ` Andrzej Filip
2002-05-03 10:14             ` Georg Bauhaus
2002-05-26 22:46               ` Robert I. Eachus
2002-05-27  8:10           ` Florian Weimer
2002-05-01 22:47       ` Jim Rogers
2002-05-01 16:32   ` Jeffrey Carter
2002-05-01 17:59     ` Marin David Condic
2002-05-01 19:08     ` Wes Groleau
2002-05-01 21:10   ` Brian Gaffney
2002-05-03  2:45 ` dmjones
2002-05-03  7:59   ` Martin Dowie
2002-05-03  8:43     ` Preben Randhol
2002-05-03  8:55       ` Martin Dowie
2002-05-03  8:51   ` Preben Randhol
  -- strict thread matches above, loose matches on Subject: below --
2002-04-29 19:21 Beard, Frank [Contractor]
2002-04-29 20:15 ` dmjones
2002-04-29 23:26 Beard, Frank [Contractor]
2002-04-30 18:08 Beard, Frank [Contractor]
2002-05-01 11:07 ` David Gillon
2002-04-30 20:32 Beard, Frank [Contractor]
2002-04-30 21:34 Gralia, Mars  J.
replies disabled

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