Subject: Re: OO Programming Survey
Reply-To: nikki@trmphrst.demon.co.uk
Distribution: world
X-Mailer: cppnews $Revision: 1.20 $
Organization: Trumphurst Ltd.
Date: Mon, 16 Nov 1992 14:51:50 +0000

In article <STEPHENS.92Nov11154504@ash.asc.slb.com> you write:
> Section 1 Personal Experience:
> -------------------------------
> Question 1. How many years have you been programming in C?
More than 10

> Question 2. How many years have you been programming in C++?
More than 3

> Question 3. What other object oriented programming languages do you have 
> 	    experience with? 
None

> Question 4. What's the maximum number of lines of C code you have written 
> 	    in a single project?
Approx 60,000

> Question 5. What's the maximum number of lines of C++ code you have written 
> 	    in a single project?
24,000

> Question 6. What kind of applications have you built using C? 
A 4GL runtime system (someone else wrote the compiler, I wrote the runtime
  and toolkit) for Unix, OS/2 and (originally) DOS. This was the 60,000 loc.
Lots of system utilities, mostly for DOS.
A backup/restore utility for OS/2
An editor (ZED, the original editor for Zortech C and C++)
Other utilities and programs too numerous to mention.

> Question 7. What kind of applications have you built using C++? 
A text mode user interface toolkit library for DOS
A few simple utility programs using the toolkit
A front end user interface program (running on DOS) for an IBM mainframe 
  document management package
A Usenet Newsreader for DOS (see X-Mailer header of this post :-)


> Section 2 Development tools:
> -----------------------------
> Question 1. What C++ development tools do you have available? 
Zortech C++ 3.0r4. 
Borland C++ 3.1. 
Microsoft C7. 
Gnu gcc/g++ V2.3.1.

> Question 2. How good/useful would you say that these tools are?
Zortech was the first C++ compiler available for DOS at a reasonable 
price. It was good (despite the bugs) because of the excellent support. 
Since the Symantec takeover, support has plummeted, and no new releases 
have appeared for over a year.

Borland is a better compiler, also at a reasonable price, but seems to 
produce less optimal code.

Microsoft is much slower, but will no doubt become the industray standard 
for C++ under DOS.

All the above have major bugs.

I haven't really tried g++ yet - I have done all my C++ development under
DOS so far (and, anyway, I only got gcc 2.3.1 yesterday !).

> Question 3. What C++ libraries do you have available?
All the compiler vendors produce their own libraries. They are all, of 
course, incompatible, so I don't use them, because, as a library author,
I am interested in portable code.

> Question 4. How useful are these C++ libraries?
To me - not at all. Were there a standard library which worked with all 
the compilers, I would probably buy and use it.

My C++tmUit library, on the other hand, extremely useful :-)


> Section 3 Organization's experience:
> ------------------------------------
Tricky, this. Currently, I work for a company I started myself (ME for 
short), and I am the only programmer (my wife is the other employee, she
is the company secretary, and she does all the accounts etc.). 

I used to work (and still do, under contract) for an accounting software 
house in the UK, Omicron Management Software. 2-3 years ago, this company 
was taken over by a manufacturing software company called Kewill. The 
combined company is now called Kewill-Omicron (KO for short). 

I will answer for whichever of these organisations I deem appropriate to
the question. 

> Question 1. Approximately how many lines of C code were there in the largest
> 	    program developed by your organization?
60,000 (KO)

> Question 2. Have the C programs developed by your organization generally met 
> 	    their specifications (both in performance and function)?
Good question. They have all had bugs, so I suppose the answer is no ! 
Mind you, major users seem to run their businesses using them.

> Question 3. Approximately how many lines of C++ code were there in the largest
> 	    program developed by your organization?
24,000 (ME)
Note - KO did start to develop a complete range of manufacturing software 
in C++ 2-3 years ago. This project totally failed, partly due to the almost 
complete lack of usable tools available at the time. Much time, effort and
money was spent, and in the end the project was scrapped, and the 
applications developed using the 4GL tool we created while working for 
Omicron. In the 2-3 years since the project was scrapped, well over 1 
million lines of code have been developed in the 4GL.

> Question 4. Have the C++ programs developed by your organization generally met 
> 	    their specifications (both in performance and function)?
Aside from the bugs. mine have. KO's one attempt was, as I said, scrapped.


> Section 4 Programming in C++:
> ------------------------------
> All of the questions below refer to a comparison between C to C++ ie. Is C++ 
> more difficult to learn than C etc.
> 
> Question 1. Would you say that learning C++ was:
> 	a) easier b) about the same c) more difficult.
Difficult to say. I got started in C++ fairly easily, but did not feel 
really comfortable with it for about a year. It is such a long time since 
I learnt C, I don't remember. I expect C++ is more difficult, because you 
have to learn object-oriented design too, but it is well worth the effort.

> Question 2. In general is an application in C++:
> 	a) slower b) about the same c) faster 
about the same

> Question 3. In general does an application in C++ use:
> 	a) less memory b) about the same c) more memory
about the same.

> 
> Section 5 Advantages & Disadvantages of Object Oriented Programming:
> -------------------------------------------------------------------- 
> All comparison questions refer to a comparison between object oriented
> programming and functional based programming (structured or otherwise).
> 
> Question 1. Does using an object oriented language make program development:
> 	a) more difficult b) makes no difference c) easier
Easier

> Question 2. Does using an object oriented language usually result in design
> 	    time being:
> 	a) longer b) about the same c) shorter
longer - mainly because I do more design.

> 
> Question 3. Does using an object oriented language make fault tolerance:
> 	a) decrease b) makes no difference c) increase
I don't write fault tolerant programs (not in the sense I understand it). 
It does make for fewer 'obvious' bugs that take weeks to track down.

> Question 4. Does using an object oriented language reduce code
> 	    redundancy:
> 	a) not at all b) a small amount b) significantly
a small amount, I suppose. I haven't measured it.

> Question 5. Does using an object oriented language make program 
> 	    understandability:
> 	a) harder b) about the same c) easier
I would say - different. It makes it easier to fiddle with small areas of 
program (to add enhancements, or fix bugs) without having to understand 
the whole. It probably makes it more difficult to understand the detailed 
meaning of a particular line of code in relation to the whole, because so 
much happens "in the background" without being obvious. This doesn't 
matter so much, because many programming projects are sufficiently large 
that no-one could understand the whole thing in that kind of detail.

> Question 6. Does using an object oriented language make debugging:
> 	a) harder b) not much difference c) easier
Again - different. Recursive calls via virtual functions tend to confuse 
theing a lot.

> Question 7. Has using object oriented programming resulted in a increase in the
> 	    ease of maintainibility?
Yes, definitely.

> Question 8. Has using object oriented programming resulting in large amounts
> 	    of code reuse?
In my case, yes - I use my toolkit for nearly everything I write. If I 
find I am re-writing some class from another project, the class usually 
gets generalised, and moved into the toolkit.

> Question 9. Has using object oriented programming resulted in code which
> 	    is easier to evolve?
Yes, definitely.


> Section 6 Converting to a different language:
> ---------------------------------------------
> Question 1. Have you ever converted a program from one language to another?
Yes - BASIC to C, and vice versa.

> Question 2. Why was this conversion done?
Because the functionality available in one language was required in the 
other.

> Question 3. Do you think conversions between languages are a good idea?
I have no feeling either way. If you don't redesign, then you achieve no 
advantage by converting, except that you might find the result easier to 
link with your new project.


> Section 7 Converting from C to C++:
> -----------------------------------
> Question 1. Have you ever attempted to reimplement an existing C program in 
> 	    C++?
No.

> Question 2. Were you able to reuse any of the old C code? What percentage 
> 	    of the C code was reused? 
> 
> Question 3. Did you use a particular method of conversion? 
> 	    What method was used?
> 
> Question 4. What problems did you encounter in attempting to reuse the old C 
> 	    code?
> 
> Question 5. Do you think a conversion from C to C++ is a good idea?
> 
> 
> Section 8 Other Comments:
> -------------------------
Sorry about the verbosity !

-- 
Nikki Locke,Trumphurst Ltd.(PC and Unix consultancy) nikki@trmphrst.demon.co.uk
trmphrst.demon.co.uk is NOT affiliated with ANY other sites at demon.co.uk.