From: pjl@sparc6.cs.uiuc.edu (Paul Lucas)
Subject: Re: Is C++ "for the rest of us" ?
Organization: University of Illinois at Urbana-Champaign
Date: Mon, 17 Aug 1992 14:54:13 GMT

In <1355EN@netmbx.netmbx.de> jrobie@netmbx.netmbx.de (Jonathan Robie) writes:

>I have been talking to managers who are very nervous about
>moving to C++.  It seems to have a reputation for being
>difficult to master, and those of us who program in C++
>are sometimes considered Gurus.

*****>	I've heard this feeling expressed in several ways by several
	people.  What I think needs to be done is to reevaluate
	programmers as professionals, right along with doctors, lawyers,
	accountants, etc.  If one is a programmer, i.e., one gets paid
	to program, it should be incumbent on that person to be "good at
	it."

	The scale used to judge a programmer, IMHO, needs to be
	recalibrated:

		Novice: (obvious)
		Experienced: Has been working with a langauge for a
			while, but may not know some subtlies, idioms,
			or "tricks."
	     **	Seasoned: Experienced + is aware of the subtlies, knows
			common idioms, and several tricks; can
			accomplish most any assigned task (efficiently).
		Guru: knows everything about everything (or knows where
			to look it up).

	In any corporation that employs programmers, most of the staff
	should fall in the Seasoned category.  If they don't walk in the
	door that way, the corp. should have education and training
	practices and mentoring to teach them.

	People want to be treated by experienced doctors, have an
	experienced layer on their side, have an experienced accountant
	to make/save them the most money; why do managers "settle" for
	and resign themselves to the fact that they have, and are stuck
	with, "mediocre" programmers?

>C++ certainly helps structure large projects, and after
>making the switch I have absolutely no desire to go back
>to C.  But it does require a new way of thinking, and it
>has some rather obscure aspects...

*****>	Yes, it does require a new way of thinking; but what's wrong
	with that?  After OOP has trickled down into universities for
	programming classes, OOP will then become "the way" of thinking
	and non-OOP will be considered to be the "old way" of thinking.

>What guidelines would you give to a manager who is trying
>to decide whether to use C++ for an new project? 

*****>	Have the Seasoned people design and implement the classes, or at
	least design the interfaces for the classes.  This will make
	code development easier for the staff at large.

	Long-term extensability and maintainability will be greatly
	improved.

>Would you suggest that a team with average programmers move to C++?

*****>	It depends on how your term "average" compares to those in my
	list.  If average (roughly) equates to experienced, yes.

	Also, one doesn't have to use every conceivable feature when
	switching; they can be phased in gradually.  Stroustrup, 2nd.
	ed., discusses this in more detail.

>Should a programming team attempt a C++ project if they do not have any C++
>gurus to fall back on?  

*****>	How else are guru's made?  One isn't born a guru; it comes after
	several years of experience, having seen a lot, having been
	around, having banged your head against a wall due to a seemingly
	insidious bugs (so I'm told).
-- 
	- Paul J. Lucas				University of Illinois	
	  AT&T Bell Laboratories		at Urbana-Champaign
	  Naperville, IL			pjl@cs.uiuc.edu