HDTenEightyP/NetNews huggingface dataset:
From: rmartin@thor.Rational.COM (Bob Martin)
Subject: Re: What is Object Oriented Programming? Is C doomed?
Organization: Rational
Date: Tue, 15 Dec 1992 13:23:57 GMT

maxtal@extro.ucc.su.OZ.AU (John MAX Skaller) writes:

>In article <rmartin.724084666@ctbu> rmartin@ctbu.Rational.COM (Bob Martin) writes:
>>I am often asked the following question: "Can you use object-oriented
>>design techniques to design a project, and then implement the project
>>in a procedural language such as C?"  My answer is that it is not
>>worth the effort.  Most of the concepts of OO that really provide
>>benefit in design, are very difficult to implement in non-OO
>>languages.  Things like inheritance, polymorphism, abstract classes,
>>multiple inheritance, etc.

>	You would be surprised. Suppose you had to write code in
>assembler for a microcontroller. Now surely thinking OO would
>help the design here, even if you had to code in assembler?
>I mean, what alternative is there?

I fear I state my case a bit too stronly.  Yes, I woudl consider using
*some* of the concepts of OO design, even if I did not have an object
oriented language.  It would be foolish not to do so.  So I concede
this point.

>	Hope I never have to go this far in assembler though ...

Right.  That is precicely my problem.  In order to implement a fully
object oriented design in a non-oo language, you must be prepared to
do some pretty ugly things.  VTBLS can be nasty things to get right,
especially in the presence of MI or worse, VI.  Also, if you want to
simulate inheritance, you may be forced to give up some type safety.  

I guess, if you know you are going to be constrained to a procedural
language, you can still use *some* OO design principle.  But my fear
is that you would be tempted to use too many, and then be forced
either to implement them in an ugly way, or change the design to back
them out again.

--
Robert Martin                        Training courses offered in:
R. C. M. Consulting                       Object Oriented Analysis
2080 Cranbrook Rd.                        Object Oriented Design
Green Oaks, Il 60048 (708) 918-1004       C++
Newsgroups: alt.amateur-comp,soc.culture.usa
From: peter@ferranti.com (peter da silva)
Subject: Re: What is Object Oriented Programming? Is C doomed?
Organization: Xenix Support, FICC
Date: Fri, 18 Dec 1992 20:18:42 GMT

In article <1992Dec17.185838.10564@rchland.ibm.com> lwloen@rchland.vnet.ibm.com writes:
> But, that's a far cry from saying one's tool set has no economic effect.  It
> seems to me you still aren't convinced even about structured programming.

No, I'm just not convinced about structured *languages*. I've written enough
structured software in Fortran (including an 1802 assembler and other tools
that would have been more fun in C) to be quite unconvinced that I need a
new tool just to take advantrage of a new technique.

The biggest advantage new languages have is that they decrease the amount
of manual book-keeping you need to do: write in C, and you can get rid of
all the low-level pseudocode you need to keep track of your program
structure in Fortran; write in Lisp, and you can blow off the memory
bookkeeping; and so on. Programming becomes a lot more fun.

> The question is, does
> OO (or, structured programming) _on average_ make programs cheaper to produce

Of course they do. I wouldn't ever deny that. My point is that the tools you
use are less important than the discipline you use.

And, of course, you can write Fortran code in any language. Including Scheme
or Smalltalk, let alone C++...
-- 
Peter da Silva                                            `-_-'
Ferranti International Controls Corporation                'U` 
Sugar Land, TX  77487-5012 USA
+1 713 274 5180                            "Zure otsoa besarkatu al duzu gaur?"
Xref: sparky alt.amateur-comp:345 comp.text:1467 comp.misc:4610 comp.lang.misc:4036
From: anthony@csd4.csd.uwm.edu (Anthony J Stieber)
Newsgroups: alt.amateur-comp,comp.text,comp.misc,comp.lang.misc
Subject: Re: Help needed to upload page breaks w/ a file.
Date: 15 Dec 92 20:44:43 GMT
Organization: Computing Services Division, University of Wisconsin - Milwaukee
NNTP-Posting-Host: 129.89.7.4

In article <1992Dec15.053152.28429@news.ysu.edu> ag173@yfn.ysu.edu (Jay Hauben) writes:
>     I want to be able to upload a large file as a post in a 
>newsgroup and as e-mail. I will probably break the file up into a 
>number of parts. But still it would be best if I could embed 
>ASCII uploadable page breaks into my file. In that way, those who 
>print out the file will have a more manageable printout.

I really hate those ^L characters people stick in their postings.  I
read almost everything online so I don't have to kill a tree.  People
who have an urge to do this, or those who can't read online can use a
word processor or text formatter if they really want page breaks.  Not
everyone wants page breaks or wants them every 55 lines.  Some people
like to print two up, or configure their printers for well over 66
lines in order to save paper.

You could post an online version and also a PostScript or LaTeX version
for people who would rather print it out.

>     Can anyone suggest how I might do this?

Unix systems have various text formatters like nroff as part of
the standard distribution.  I'm sure VMS and other systems have
something similar.

>     Does anyone have a program I can run on my 8088 computer 
>which might insert such page breaks say every 55 lines?

What operating system do you use?  There are several standalone freely
distributable MS-DOS formatting programs available at SIMTEL20 mirrors
in the printer and txtutl directories and elsewhere.  There are also
several word procesors.
--
<-:(= Anthony Stieber	anthony@csd4.csd.uwm.edu   uwm!uwmcsd4!anthony
Xref: sparky alt.amateur-comp:365 sci.econ:9439 talk.politics.misc:64569 misc.misc:4083
From: mat@mole-end.matawan.nj.us
Subject: Re: What is Object Oriented Programming? Is C doomed?
Summary: Analysis, Architecture and Design vs Design and Coding
Organization: :
Date: Mon, 14 Dec 1992 07:41:06 GMT

In article <Bz4ro7.3w3@cmptrc.lonestar.org>, tmike@cmptrc.lonestar.org (T. Mike Howeth) writes:
> In article <rmartin.724084666@ctbu> rmartin@ctbu.Rational.COM (Bob Martin) writes:
> |                     I don't suggest attempting to write object
> |oriented code in any language which does not directly support OO
> |concepts.
 
> I disagree.  I have seen tremendous benefit when programmers and (more often)
> software engineers learn an OO language (C++, specifically) and then apply
> appropriately-scaled techniques from those to procedural (3g) languages  ...
> Reorganization of entity lifetime is the most common improvement.  Entities
> ... are more often confined to a reasonable scope.  Impact of procedural
> operations upon global or otherwise poorly-scoped variables disappears.
> Overall application design improves ... And common libraries become useable!
> For these reasons, I DO suggest utilization of the OO design and coding
> practices in other environments.

I'd like to suggest that the big benefits may come not from OO coding,
(which is unwieldly in a non-OO language, and which will probably be
done sparingly), but from OO Analysis, Architecture, and Design.  Control
of lifetime and scoping tends to improve as the Architecture gets cleaner,
and the Architecture can be no cleaner than the Analysis on which it is
imposed.  Procedural impact is largely a Design issue, and the reusability
of libraries follows from good Analysis (to identify concepts clearly),
good Architecture (to organize them effectively) and good Design (to
implement them without compromising the Analysis or the Architecture).
-- 
 (This man's opinions are his own.)
 From mole-end				Mark Terribile

 mat@mole-end.matawan.nj.us, Somewhere in Matawan, NJ
Newsgroups: alt.amateur-comp,comp.lang.c,comp.lang.c++,comp.misc
From: jar@solva.ifi.uio.no (Jo Are Rosland)
Subject: Re: What is Object Oriented Programming? Is C doomed?
X-Md4-Signature: c2991f5712bbcd0ac15a24c2e679e981
Organization: Dept. of Informatics, University of Oslo, Norway
	<1g40m9INNdhk@uwm.edu> <rmartin.724002073@ctbu>
Date: Sun, 13 Dec 1992 21:24:40 GMT
Originator: jar@solva.ifi.uio.no

In article <rmartin.724002073@ctbu> rmartin@ctbu.Rational.COM (Bob Martin) writes:
   So, go ahead and make a new stack module.  But first learn
   abstraction, design it so that the stack is a specific case of an
   abstract container.  This way your clients can use containers without
   necessarily knowing that they are using a stack.

I agree with most of what you write in this posting, Bob, but here I
must differ.

A stack, something that reacts to the operations { push, pop, init },
_is_ an abstraction.  Now, if you're going to implement a stack, you
will probably want to do it using some generic container class already
available, but that's the implementor's concern, not the user's.

Then again, using the template mechanism available in several object
oriented languages, you _could_ design your stack so that the users of
it could choose what kind of container class they want below the
surface in each instance.  This way, they can choose a container that
give them the best time/space performance given the way they will
actually be using the stack in their program.

Eg: A stack based on a resizable array will give a fast push operation
most of the time, except when a push overflows the array so that you
have to copy the old stack to a bigger, malloc'ed array.  The memory
usage given this solution will also become more wasteful as the array
grows, at least if you grow the array exponentially to avoid overflows
as much as possible.  On the other hand, a list based stack will give
somewhat slower push and pop, but the time used will be the same each
time the operations are used.  The memory usage will also grow
linearly as the stack grows.

This technique of allowing the user to choose which underlaying
container class to use, is available in the Turbo C++ template class
library, and surely in other class libraries as well.
--
Jo Are Rosland
jar@ifi.uio.no
Newsgroups: alt.amateur-comp
From: ronda@ais.org (Ronda Hauben)
Subject: A Paper on the Social Forces Behind the Development of Usenet
Date: Sat, 12 Dec 92 18:43:17 EST
Organization: UMCC
X-Newsreader: TIN [version 1.1 PL6]

[ Article crossposted from news.misc,comp.bbs.misc,alt.culture.usenet ]
[ Author was Blair MacIntyre ]
[ Posted on Sat, 12 Dec 1992 21:36:21 GMT ]

>>>>> On Fri, 11 Dec 1992 18:20:25 GMT, fox@rei.com (Fuzzy Fox) said:

Fuzzy> I'm not sure, but perhaps the article writer intended to show
Fuzzy> that the _discussion_ which takes place in a newsgroup is
Fuzzy> democratic, and not the actual newsgroup creation process.  After
Fuzzy> all, the discussion that will take place in a newsgroup is based
Fuzzy> on what the majority of the people want to talk about.

This is hardly true.  The discussions that take place in a newsgroup are
based on what any number of people, usually at least 2, want them to be.

Two people could go into rec.bicycles and talk about the pros and cons
of the US going to Somolia, for example.  If they can take the flames
and constant mesages telling them to "take it elsewhere", they can chat
about it to their hearts content.

This is not democracy.  This is anarchy.
--
Blair MacIntyre --- bm@cs.columbia.edu --- CS Department, Columbia University

"Men can get into shaving, because it reminds them of what stud hombres
they are, having to tame their manliness on a regular basis." - Dave Barry
Newsgroups: alt.amateur-comp
From: bobp@hal.com (Bob Pendleton)
Subject: Re: Programming in time
Organization: HaL Computer Systems, Inc.
Distribution: usa
Date: Fri, 11 Dec 1992 19:31:07 GMT

From article <1992Dec11.021729.25587@magnus.acs.ohio-state.edu>, by ctoth@magnus.acs.ohio-state.edu (Christopher M Toth):
> 
> 		Does anyone know how to get a C program to read the computer's
> time and date? I need a program to keep track of the time and date so it can
> keep up to date records. ANy help would be greatly appreciated...

If you are on a unix system, try "man -k time" or "apropos time" if on
another system try looking under time in the library reference manual
for the C compiler you are using. Another place to look is in the
time.h include file that can often be found in /usr/include/time.h on
unix systems.

				Bob P.

-- 
Bob Pendleton             | As an engineer I hate to hear:
bobp@hal.com              |   1) You've earned an "I told you so."
Speaking only for myself. |   2) Our customers don't do that.
                   <<< Odin, after the well of Mimir. >>>
Newsgroups: alt.amateur-comp,comp.lang.c,comp.lang.c++,comp.misc
From: rmartin@thor.Rational.COM (Bob Martin)
Subject: Re: What is Object Oriented Programming? Is C doomed?
Organization: Rational
Date: Tue, 15 Dec 1992 13:37:01 GMT

jar@solva.ifi.uio.no (Jo Are Rosland) writes:

|In article <rmartin.724002073@ctbu> rmartin@ctbu.Rational.COM (Bob Martin) writes:
|   So, go ahead and make a new stack module.  But first learn
|   abstraction, design it so that the stack is a specific case of an
|   abstract container.  This way your clients can use containers without
|   necessarily knowing that they are using a stack.

|I agree with most of what you write in this posting, Bob, but here I
|must differ.

|A stack, something that reacts to the operations { push, pop, init },
|_is_ an abstraction.  Now, if you're going to implement a stack, you
|will probably want to do it using some generic container class already
|available, but that's the implementor's concern, not the user's.

However, a stack is a member of the class of objects which obey the
abstract interface: o.PutIn(element), element = o.TakeOut();  Other
member of this abstract class are Queues, PriorityQueues,
CircularQueues, SortedLists, etc.

If the Stack interface inheritend from this more abstract interface,
then users could access elements from containers without knowing what
kind of containers they were using.  

--
Robert Martin                        Training courses offered in:
R. C. M. Consulting                       Object Oriented Analysis
2080 Cranbrook Rd.                        Object Oriented Design
Green Oaks, Il 60048 (708) 918-1004       C++
Xref: sparky alt.amateur-comp:385 news.misc:2061
From: mcmahan@cs.unca.edu (Scott McMahan -- Genesis mailing list owner)
Newsgroups: alt.amateur-comp,news.misc
Subject: About ACN Supplement-Usenet Pt4
Date: 18 Dec 92 19:28:19 GMT
Organization: University of North Carolina at Asheville
X-Newsreader: Tin 1.1 PL5

(I guess) Ronda Hauben (ronda@ais.org) wrote:

: democratic electronic town meetings

This is the first time I've ever heard Usenet described without someone
calling it a bullitin board!

: "...newsgroup," they explain, "as a bulletin board..."

Well, I knew it wouldn't last!!!

:    Appendix D of the book provides a list of the newsgroups that
: were available in 1990

Wow, that's useful! :)

: The book guides the reader through how to use the Network News
: (called nn) newsreader for Usenet, from setting up an nn
: directory to posting a Usenet article, to sending replies via e-
: mail.

This is one probalem I had with the book -- nn is the most
user-unfriendly and disk space wasting program -- devoting
less space to a better program like tin would be more
beneficial, since the introductory user to whom this book is
aimed would be in too deep trying to get nn to do anything.

:    Also, the book has sections on electronic mail and Net
: utilities available on the Internet like ftp, archie, gopher and
: wais. 

The chapters on gopher and wais are really great -- they 
are so new there's no documentation on them.

: It also contains a section called "The Whole
: Internet Catalog" which describes some of the resources available
: on the Internet and how to access them. 

How in the world are they going to keep this up to date? I really
wonder about that.

Scott
Newsgroups: alt.amateur-comp,comp.lang.c,comp.lang.c++,comp.misc
From: tmike@cmptrc.lonestar.org (T. Mike Howeth)
Subject: Re: What is Object Oriented Programming? Is C doomed?
Date: Sat, 12 Dec 1992 05:09:42 GMT
Organization: CompuTrac Inc., Richardson TX

In article <rmartin.724084666@ctbu> rmartin@ctbu.Rational.COM (Bob Martin) writes:
|                     I don't suggest attempting to write object
|oriented code in any language which does not directly support OO
|concepts.

I disagree.  I have seen tremendous benefit when programmers and (more often)
software engineers learn an OO language (C++, specifically) and then apply
appropriately-scaled techniques from those to procedural (3g) languages 
(Pascal and C, specifically).  
Reorganization of entity lifetime is the most common improvement.  Entities
(to avoid using the word 'objects') are more often confined to a reasonable
scope.  Impact of procedural operations upon global or otherwise poorly-scoped
variables disappears.  Overall application design improves (I have even seen
comments!) :)  And common libraries become useable!
For these reasons, I DO suggest utilization of the OO design and coding
practices in other environments.

|I am often asked the following question: "Can you use object-oriented
|design techniques to design a project, and then implement the project
|in a procedural language such as C?"  My answer is that it is not
|worth the effort.  Most of the concepts of OO that really provide
|benefit in design, are very difficult to implement in non-OO
|languages.  Things like inheritance, polymorphism, abstract classes,
|multiple inheritance, etc.

Absolutely!  It disappoints me that OO critics (such that they are) suggest
that the Tao of OO is nothing other than formalized, restrictive coding
standards.  How wrong they are!

|                                      ...   There is no substitute for
|good design.  ...
|         Some of the best techniques for designing applications are
|being discovered by the OO community and are being incorporated into
|the framework of OOD.  And these techniques really require an OO
|language for their implementation.

Definately.  I *do* allow, however, that OO may become a somewhat larger
superset of today's philosophy.  (Not to mention implementation!)


--
tmike@cmptrc.lonestar.org                                               __
"Whoever said 'getting there is half the fun'                           \/
    has never ridden in a class 8 probe!" - K'Ehleyr
Newsgroups: alt.amateur-comp
From: phardie@nastar.uucp (Pete Hardie)
Subject: Re: What is Object Oriented Programming? Is C doomed?
Organization: Digital Transmission Systems, Duluth, GA.
Date: Fri, 18 Dec 1992 15:47:11 GMT

In article <KANZE.92Dec17200928@slsvdnt.us-es.sel.de> kanze@us-es.sel.de (James Kanze) writes:
>In article <1992Dec16.145444.2130@nastar.uucp> phardie@nastar.uucp
>(Pete Hardie) writes:
>
>> To make the list a Stack, I simply do this:
>
>> #define Push(list,element) AddElementToEnd(list,element)
>> #define Pop(list) RemoveElementFromEnd(list)
>
>> where AddElement... and RemoveElement... are generic linked-list functions.
>
>> For a Queue, I do this:
>
>> #define Enqueue(list,element) AddElementToEnd(list,element)
>> #define Dequeue(list) RemoveElementFromFront(list)
>
>Don't do this.
>
>I think the basic idea of using the same underlying mechanism for
>Stacks and Queues, for example, is good.  This is code re-use.  But
>you should either derive from this underlying mechanism, or create a
>class which contains it.
>
>This will prevent you from accidently pushing something into a Queue,
>or enqueuing something on a stack.

This is what I get for re-typing off-the-cuff instead of looking at my code.

I left out that I have type-checking at runtime - the stack modules check
that the type of the container and report an error if it does not match
the expected type - thus no Push onto a Queue is possible.

[ example of a program changing a stack to a queue ]
>
>I don't think that this is a realistic example.  If you have to change
>from a stack to a queue, it means that something was wrong in the
>initial analysis, and I'd be very surprised that this was the only
>thing that had to be changed.

Sure, it's a contrived example, but what other kind can you have in a
post that is really dealing with another topic?  If the example was going
from a queue to a circular queue, my statement would apply the same, since
those are both types I'm supporting.

>Again, if this is done by derivation, fine.  Although I think
>implementing a general array class is probably simple enough to go for
>right off.  (The difference in access times for random access into a
>large array will very quickly become noticeable.)

Granted.  If all I need is a well-bounded size array, I'll just use the
language's array type.


-- 
Pete Hardie:  phardie@nastar  (voice) (404) 497-0101
Digital Transmission Systems, Inc., Duluth GA
Member, DTS Dart Team           |  cat * | egrep -v "signature virus|infection" 
Position:  Goalie               |
Newsgroups: alt.amateur-comp,comp.lang.c,comp.lang.c++,comp.misc
From: maxtal@extro.ucc.su.OZ.AU (John MAX Skaller)
Subject: Re: What is Object Oriented Programming? Is C doomed?
Organization: MAXTAL P/L C/- University Computing Centre, Sydney
Date: Thu, 17 Dec 1992 19:43:00 GMT

In article <id.Z2UV._XK@ferranti.com> peter@ferranti.com (peter da silva) writes:
>
>> 	No, it is not. Many programmers *will* write better code
>> when constrained by, say, strong typing in C++, or mandatory
>> class orientation as in Eiffel.
>
>I think you're looking at a marginal effect. I've never seen any indication
>that any programmer who needs to use these tools as crutches is going to be
>able to do a competant job of software design in the first place.

	In C, often a simple design is hard to code. In C++,
it can easily be MUCH easier. E.g., with my string and list handling
packages working, I never have to worry again about coding
the correct routines.

	I think this effect is order of magnitude, not marginal.

>You still need someone good to design the system, whether or not they're doing
>the coding, and object oriented languages can all too easily become a
>distraction... not for the competant, but for their managers who refuse
>to spent the money on design because "we're using OO languages".

	I agree, but many programming tasks dont require that
much design. There's often just a whole lot of tedious coding to
do.

>
>Object oriented languages, structured languages, strong typing, all these
>things are good. But they're neither necessary nor sufficient for good
>design and implementation of a software system.

	Agreed. But C++ is a good head start over C.
-- 
;----------------------------------------------------------------------
        JOHN (MAX) SKALLER,         maxtal@extro.ucc.su.oz.au
	Maxtal Pty Ltd, 6 MacKay St ASHFIELD, NSW 2131, AUSTRALIA
;--------------- SCIENTIFIC AND ENGINEERING SOFTWARE ------------------
Newsgroups: alt.amateur-comp,soc.culture.usa,alt.activism,sci.econ