Newsgroups: comp.software-eng
Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!think.com!zaphod.mps.ohio-state.edu!wuarchive!uunet!telesoft!rlk
From: rlk@telesoft.com (Bob Kitzberger @sation)
Subject: Re: bridge building (was Re: Documenting OO Systems)
Message-ID: <1991May22.074147.19456@telesoft.com>
Organization: TeleSoft, San Diego, CA, USA
References: <1264@telesoft.com> <1338@grapevine.EBay.Sun.COM>
Distribution: na
Date: Wed, 22 May 91 07:41:47 GMT
Lines: 51

chrisp@regenmeister.EBay.Sun.COM (Chris Prael) writes:

>From article <1264@telesoft.com>, by rlk@telesoft.com (Bob Kitzberger @sation):
> 
>> All valid points, however, there are languages that _encourage_ good
>> software engineering practices, e.g. separation of specification and
>> implementation, strong type checking, inter-module dependency
>> verification, etc.  C isn't one of them.  Can this honestly be denied?   
>
>It is very easy to deny for the simple reason that you are not talking
>about engineering practices, you are talking about software coding
>practices.  Coding is not an engineers issue, it is a technicians
>issue.

The division at coding seems somewhat arbitrary... with higher levels of
abstraction, your requirements tool becomes your design tool becomes your 
coding tool.

Nonetheless, assuming that I take off my engineer's hat and put on the
rumpled technicians hat when I code, I am forced to deal with the errors
of my designs.  Tools (and in this context, languages) that help point
out flaws in design (see list in original post) help me to learn _some_
of my design mistakes earlier in the process.  Being the good engineer that 
I am, I carry these lessons with me when I again don my engineer's hat.

I maintain that separation of specification and implementation is
a strong design tool, as are Ada's exceptions and Eiffel's assertions.
As languages provide more and more "design level" capabilities such
as these, the importance of them in the design process increases.

>If you are willing to be accurate enough to assert that C++, for example, 
>forces better CODING practices, there is no impediment to agreeing with 
>you.  

Ah, but I used the word "encourage" (highlighted, even), not "force".  
BIG difference.  Anybody can write FORTRAN in Ada, if they're determined.

>Sure, C lets a software blacksmith be a real slob.  C++ can make the
>software blacksmith a much tidyer blacksmith.  But neither of them can
>turn a blacksmith into an engineer.

Agreed.  My assertion was that some languages _encourage_ better engineering
practices.  This is not the same assertion that some people make -- 
that using a certain language _forces_ better engineering practices.

	.Bob.
-- 
Bob Kitzberger               Internet : rlk@telesoft.com
TeleSoft                     uucp     : ...!ucsd.ucsd.edu!telesoft!rlk
5959 Cornerstone Court West, San Diego, CA  92121-9891  (619) 457-2700 x163
------------------------------------------------------------------------------
