comp.lang.ada
 help / color / mirror / Atom feed
From: "James Giles" <jamesgiles@worldnet.att.net>
Subject: Re: Which language pays most 17457 -- C++ vs. Java?
Date: 1997/12/18
Date: 1997-12-18T00:00:00+00:00	[thread overview]
Message-ID: <67comb$94o@bgtnsc03.worldnet.att.net> (raw)
In-Reply-To: 67ccvl$iqj$1@darla.visi.com


It's not a requirement, but C as a first language often teaches
quite bad habits and ideas.  I mention three examples below,
but these are the tip of the Iceburg.  These are merely things
that I've recently (within the past few weeks) had to explain
to someone because s/he was not getting the results or
the speed s/he expected.  Over the years I've noticed that
the quality of programs (and the quantity and quality of
errors made) are all worse if the programmer's first language
was C.  This applies to nearly all aspects of programming,
from simple character manipulation to sophisticated data
structures and from easy algorithms to large-scale programs.

I was horrified to learn just recently that many textbooks (and
courses) for beginning C programmers still teach the use of
gets().  This is a function that, if you mention it to beginners
at all, you tell them *not* to use it under any circumstances.
Use fgets() instead, so that you can tell the I/O library how
large your buffer is and it can prevent it from being overrun.
(Better yet, use fread() instead and scan for the record mark
yourself, since fgets() doesn't inform you if you've only
read a partial record.)  Just in case you think this is only
a naive beginner's problem, there was a LINUX security
problem because of exacly this sort of error (an overrun of
a buffer - though I don't think it was gets() that was used).
Bad habits and misconceptions resurface even in the code
of 'gurus' who have presumably learned better -  but lapse
sometimes.

Many C programmers think that a (float ***) is the same
thing as a multidimensional array - it isn't.  In most
environments the resulting pointer-to-pointer-to---to float
is much less efficient than an array and can lead to serious
and difficult to find errors if you actually manipulate the
pointers themselves a lot.  I just corresponded with
someone who was complaining that Fortran couldn't
remap arrays with pointer-to-pointer... mechanisms
like C does.  I pointed out that Fortran has more
efficient ways to reshape arrays (as does C) and that
he shouldn't be using pointers so much anyway.

Indeed, C users tend to vastly overuse pointers in a lot of
contexts.  If I mention to a group of programmers that I'm
going to implement a given data set as a list, only the C
programmers in the group tend to uniformly assume I'm
going to use a linked list and pointers.  This is in spite of
the fact that linked lists are almost always the *least*
efficient way of implementing a list - and are more error
prone as well.

There are actually an enormous number of things of this kind.
I'm of the opinion that programming with good style can be
taught regardless of the language used.  But it seems to me
that C makes this more difficult and the issues involved aren't
well addressed by the way C usually gets taught.  The above
misconceptions are something that the C programmer will
have to unlearn sometime in his(her) career.  This is true
of a number of other C-isms that are quite common.  It'd
be better for new programmers not to learn these false
ideas in the first place.  Languages which tend not to induce
bad habits (and were designed with teaching in mind) like
Turing and Pascal would be better first languages (you
can get bad habits from those as well - but fewer and easier
to remedy).

This brings to mind another C-ism (or, it seems to be a C
programmer's position more than anyone else's): they tend
not to learn any other languages (except C++ and other C
derived languages).  Indeed, they often come up with the
most bizarre rationalizations for not bothering to learn other
languages.  I think that C is so hard to learn to use *well*
that most C programmers assume that the same is true for
all other programming languages.  They, quite naturally,
hesitate to embark on that path.  Instead they learn all
the convenient (and usually false) criticisms of the other
languages.

Is any of this really relevant to comp.lang.(fortran, cobol,
smalltalk, or ada)?

--
J. Giles
Ricercar Software






  parent reply	other threads:[~1997-12-18  0:00 UTC|newest]

Thread overview: 245+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <199712121931.LAA25389@sirius.infonex.com>
1997-12-12  0:00 ` Which language pays most 17457 -- C++ vs. Java? Roedy Green
1997-12-17  0:00   ` Wes Groleau
1997-12-16  0:00     ` steve
1997-12-18  0:00       ` Alicia Carla Longstreet
     [not found]         ` <01bd0c0b$53cc1860$26db45cf@juddesk>
1997-12-17  0:00           ` steve
1997-12-18  0:00           ` Peter Seebach
1997-12-17  0:00             ` steve
1997-12-19  0:00               ` Kaz Kylheku
1997-12-17  0:00                 ` steve
1997-12-22  0:00               ` Lawrence Kirby
1997-12-21  0:00                 ` steve
1997-12-28  0:00                   ` Lawrence Kirby
1997-12-18  0:00             ` James Giles [this message]
1997-12-17  0:00               ` steve
1997-12-19  0:00                 ` James Giles
1997-12-18  0:00                   ` steve
1997-12-19  0:00                     ` James Giles
1997-12-18  0:00                       ` steve
1997-12-19  0:00                         ` James Giles
1997-12-22  0:00                       ` Lawrence Kirby
1997-12-21  0:00                         ` James Giles
1997-12-21  0:00                           ` steve
1997-12-30  0:00                             ` Chris Gray
1997-12-28  0:00                           ` Lawrence Kirby
1997-12-28  0:00                             ` John Winters
1997-12-30  0:00                             ` paulr
1997-12-31  0:00                               ` Which language pays most " arnie sherman
1997-12-30  0:00                                 ` Dann Corbit
1997-12-31  0:00                                 ` John Slaman
     [not found]                                   ` <01bd198f$4050d960$68c8b5cc@dhite.unicomp.net>
1998-01-06  0:00                                     ` Jedi
1998-01-10  0:00                                     ` Highlander Consulting
1998-01-11  0:00                                       ` Patricia Shanahan
1998-01-11  0:00                                         ` Barrabazz
1998-01-11  0:00                                           ` Patricia Shanahan
1998-01-12  0:00                                           ` Ron Peterson
1998-01-14  0:00                                             ` anonymous
1998-01-19  0:00                                               ` Joe Gwinn
     [not found]                                                 ` <01bd2526$66b70fa0$d6d945cf@juddesk>
1998-01-23  0:00                                                   ` dnns
1998-01-23  0:00                                                     ` Philosophers Nick Roberts
1998-01-23  0:00                                                       ` Spam--> was:Re: Philosophers Dann Corbit
1998-01-24  0:00                                                         ` Nick Roberts
1998-01-26  0:00                                                           ` Doug Miller
1998-01-24  0:00                                                       ` Philosophers Mike Whiten
1998-01-24  0:00                                                         ` Philosophers The Goobers
1998-01-25  0:00                                                           ` Philosophers Arnold Trembley
1998-01-25  0:00                                                             ` Philosophers The Goobers
1998-01-26  0:00                                                           ` :-) Philosophers Giovanni Drogo [drogo@rn.bastiani.it]
1998-01-29  0:00                                                           ` Philosophers Steve Dekorte
1998-01-29  0:00                                                             ` Philosophers The Goobers
1998-01-24  0:00                                                       ` Philosophers John G.
     [not found]                                                         ` <Pine.LNX.3.95. <34cd2808.10685219@newsroom.tassie.net.au>
1998-01-28  0:00                                                           ` Philosophers docdwarf
     [not found]                                                             ` <01bd2c40$b62837a0$7261b693@HP5079Q>
1998-01-28  0:00                                                               ` Philosophers The Goobers
1998-02-01  0:00                                                                 ` Philosophers Scott Adams
     [not found]                                                                 ` <01bd2cc0$f0042b70$7261b693@HP5079Q>
1998-02-04  0:00                                                                   ` Philosophers The Goobers
1998-02-10  0:00                                                                 ` Back to the topic of CS students. (was Re: Philosophers) cyanide
1998-02-10  0:00                                                                   ` Nick Roberts
1998-01-30  0:00                                                             ` Philosophers jim
1998-01-30  0:00                                                               ` Philosophers docdwarf
1998-01-30  0:00                                                                 ` Philosophers suzie
1998-01-30  0:00                                                                   ` Philosophers docdwarf
1998-01-31  0:00                                                                 ` Philosophers Martin Richardson
1998-01-31  0:00                                                                   ` Philosophers Jeff York
1998-02-01  0:00                                                                     ` Philosophers Martin Richardson
1998-02-02  0:00                                                                       ` Philosophers Pat O'Connell
1998-02-02  0:00                                                                       ` Philosophers Eddie Armstrong
1998-02-03  0:00                                                                         ` Philosophers Nyk Tarr
1998-02-02  0:00                                                                       ` Philosophers Jeff York
1998-02-02  0:00                                                                     ` Philosophers Robert Garskof
1998-02-02  0:00                                                                       ` Philosophers Dave Tholen
1998-01-30  0:00                                                               ` Philosophers Samuel Mize
1998-02-10  0:00                                                             ` Philosophers cyanide
1998-02-09  0:00                                                               ` Philosophers The Goobers
1998-02-18  0:00                                                             ` Philosophers Mad Hamish
1999-07-29  0:00                                                         ` Philosophers firewind
1998-01-24  0:00                                                           ` Philosophers John G.
1998-02-10  0:00                                                             ` Drifting further off topic cyanide
1998-01-25  0:00                                                           ` Philosophers Jens Schweikhardt
1998-01-28  0:00                                                           ` Philosophers Mad Hamish
1998-01-27  0:00                                                             ` Philosophers Kurt Wall
1998-01-27  0:00                                                     ` Which language pays most -- C++ vs. Java? Robert Garskof
1998-01-28  0:00                                                 ` Steve Dekorte
1998-01-28  0:00                                                   ` Barrabazz
1998-01-28  0:00                                                     ` dogmat
1998-01-29  0:00                                                       ` Tim Oxler
1998-01-29  0:00                                                       ` Tim Oxler
1998-01-29  0:00                                                       ` Joe Gwinn
1998-01-29  0:00                                                         ` coryb
1998-01-29  0:00                                                         ` Wayne L. Beavers
1998-01-29  0:00                                                           ` Frank A. Adrian
1998-02-03  0:00                                                           ` GLE
1998-02-03  0:00                                                             ` The Goobers
1998-02-03  0:00                                                             ` Harold Stevens ** PLEASE SEE SIG **
1998-01-30  0:00                                                         ` Robert S. White
1998-01-30  0:00                                                           ` Patricia Shanahan
1998-01-31  0:00                                                           ` Paul Van Bellinghen
1998-02-01  0:00                                                             ` Nick Roberts
1998-02-09  0:00                                                         ` cyanide
1998-02-10  0:00                                                           ` Bill Lynch
1998-02-10  0:00                                                             ` Michael Rot13 Klein
1998-02-10  0:00                                                             ` Jeff Knaggs
1998-02-10  0:00                                                           ` dogmat
1998-02-09  0:00                                                       ` cyanide
1998-02-10  0:00                                                         ` dogmat
1999-07-29  0:00                                                       ` Edwin Purvee
     [not found]                                                     ` <01bd2c3c$6726d520$8101b8c7@MIS-RKW95.spartan.com>
1998-02-10  0:00                                                       ` Steve Dekorte
1998-02-10  0:00                                                         ` Bill Lynch
1998-02-11  0:00                                                         ` dogmat
1998-01-29  0:00                                                   ` Joe Gwinn
1998-01-31  0:00                                                 ` Larry Wiggins
1999-07-29  0:00                                                   ` Ben Pfaff
1999-07-29  0:00                                                     ` Kaz Kylheku
1998-02-02  0:00                                                 ` This thread has drifted miles from its subject line Wes Groleau
     [not found]                                                 ` <6alu5l$onm$1@owl.slip <01bd2c3c$6726d520$8101b8c7@MIS-RKW95.spartan.com>
1998-02-02  0:00                                                   ` Which language pays most -- C++ vs. Java? Kaz Kylheku
1998-02-02  0:00                                                     ` Michael C. Kasten
     [not found]                                                 ` <6alu5l$ <34D6243C.2A53@gc057.fw.hac.com>
1998-02-05  0:00                                                   ` This thread has drifted miles from its subject line Paul Osborn
     [not found]                                                 ` <6alu5l$onm$1@owl.slip <34E0D798.E29D6CA0@cableol.co.uk>
1998-02-11  0:00                                                   ` Which language pays most -- C++ vs. Java? Kaz Kylheku
     [not found]                                               ` <gwinn-1901981219520001@dh5055142. <01bd284c$4b0b4fe0$c0f682c1@xhv46.dial.pipex.com>
1998-01-24  0:00                                                 ` Philosophers Kaz Kylheku
     [not found]                                               ` <gwinn-1901981219520001@dh5055142. <34CE059C.634DE881@snet.com>
1998-01-27  0:00                                                 ` Which language pays most -- C++ vs. Java? Kaz Kylheku
1998-01-28  0:00                                                   ` Robert Garskof
     [not found]                                               ` <gwinn-1901981219520001@dh5055142. <34C9F3D0.6B5A@erols.com>
1998-01-28  0:00                                                 ` Philosophers Warren B. Focke
1998-01-29  0:00                                                   ` Philosophers The Goobers
1998-02-05  0:00                                                     ` Philosophers Warren B. Focke
1998-02-05  0:00                                                       ` Philosophers The Goobers
1998-02-06  0:00                                                         ` Philosophers dogmat
1998-02-06  0:00                                                           ` Philosophers docdwarf
1998-02-06  0:00                                                             ` Philosophers dogmat
1998-02-06  0:00                                                               ` Philosophers docdwarf
1998-02-06  0:00                                                       ` Philosophers Harold Stevens ** PLEASE SEE SIG **
1998-02-10  0:00                                                         ` Film "Contact" Nick Roberts
1998-02-09  0:00                                             ` Which language pays most -- C++ vs. Java? cyanide
1998-01-11  0:00                                       ` Kaz Kylheku
1998-01-11  0:00                                         ` Carsten Arnholm
1998-01-15  0:00                                         ` Highlander Consulting
1998-01-16  0:00                                         ` Charles F Hankel
1999-08-09  0:00                                         ` Paul Groves
1999-08-09  0:00                                           ` Kaz Kylheku
1998-01-02  0:00                                 ` Philip Hunt
1997-12-31  0:00                             ` Which language pays most 17457 " Guillermo Schwarz
1997-12-31  0:00                               ` Billy Chambless
1998-01-03  0:00                                 ` Berna L Massingill
1998-01-04  0:00                               ` Lawrence Kirby
1997-12-19  0:00                   ` Peter Seebach
1997-12-19  0:00                     ` James Giles
1997-12-18  0:00                       ` steve
1997-12-23  0:00                       ` Guillermo Schwarz
1997-12-17  0:00         ` steve
1997-12-19  0:00           ` Larry Elmore
1997-12-19  0:00             ` James Giles
1997-12-18  0:00         ` John Seitz
1997-12-18  0:00           ` Robert Robbins
1997-12-19  0:00             ` Mark Wilden
1997-12-19  0:00           ` Ian Upright
1997-12-19  0:00             ` William Murray
1997-12-19  0:00               ` steve
1997-12-20  0:00               ` Robert Munck
1997-12-19  0:00         ` Chip Ling
1997-12-17  0:00     ` James Giles
     [not found] ` <349793cb.33600861@news.wxs.nl>
     [not found]   ` <34923264.75B5@netup.cl>
     [not found]     ` <670qio$8a$1@sparcserver.lrz-muenchen.de>
     [not found]       ` <3494B7DA.5463@ici.net>
     [not found]         ` <34958D16.190C@gsg.eds.com>
     [not found]           ` <679807$8gm@ws1.emirates.net.ae>
     [not found]             ` <e9k976.8h3.ln@localhost>
1997-12-18  0:00               ` Klaus-Georg Adams
     [not found]               ` <67bjnv$j35$1@brie.direct.ca>
     [not found]                 ` <349B0417.D4DB6A30@its.cl>
1997-12-20  0:00                   ` Kaz Kylheku
1997-12-20  0:00                     ` William J. Leary Jr.
1997-12-20  0:00                       ` Kurt Watzka
1997-12-20  0:00                         ` William J. Leary Jr.
1997-12-21  0:00                           ` Peter Seebach
1997-12-21  0:00                       ` Peter Seebach
1997-12-21  0:00                         ` William J. Leary Jr.
1997-12-22  0:00                           ` Peter Seebach
1997-12-22  0:00                         ` Lawrence Kirby
1997-12-22  0:00                           ` Kaz Kylheku
1997-12-22  0:00                           ` Kurt Watzka
1997-12-28  0:00                             ` Lawrence Kirby
1997-12-24  0:00                           ` John Porter
1997-12-24  0:00                             ` Kaz Kylheku
1997-12-27  0:00                               ` Which language pays most? Smalltalk, not C++ nor Java Guillermo Schwarz
1997-12-27  0:00                                 ` Patricia Shanahan
1997-12-27  0:00                                 ` Joshua Waxman
1997-12-27  0:00                                 ` Robert Dewar
1997-12-29  0:00                                   ` John Porter
1997-12-29  0:00                                     ` Robert Dewar
     [not found]                                       ` <01bd14b4$dc6f6a80$6428b4cf@carla.ici.net>
1997-12-29  0:00                                         ` Robert Dewar
1997-12-30  0:00                                           ` Billy Chambless
1997-12-31  0:00                                         ` David Thornley
1997-12-31  0:00                                           ` Keith G. Murphy
1998-01-01  0:00                                           ` Robert Dewar
1998-01-01  0:00                                             ` Patricia Shanahan
1998-01-02  0:00                                               ` Robert Dewar
1998-01-02  0:00                                                 ` Peter Seebach
1998-01-02  0:00                                                   ` Robert Dewar
1998-01-02  0:00                                                   ` firewind
1998-01-02  0:00                                                     ` Ian Piumarta
1998-01-03  0:00                                                     ` Richard Kenner
1998-01-02  0:00                                           ` Shelly Mujtaba
1998-01-02  0:00                                             ` Guillermo Schwarz
1998-01-03  0:00                                               ` Dean Roddey
1998-01-03  0:00                                                 ` Jacqueline U. Robertson
1998-01-03  0:00                                                   ` Dean Roddey
1998-01-05  0:00                                                     ` Guillermo Schwarz
1998-01-05  0:00                                                       ` Kaz Kylheku
1998-01-03  0:00                                               ` Jacqueline U. Robertson
1998-01-03  0:00                                         ` Lawrence Kirby
1997-12-29  0:00                                     ` Kaz Kylheku
1997-12-29  0:00                                     ` Patricia Shanahan
1997-12-29  0:00                                     ` Lawrence Kirby
     [not found]                                     ` <01bd147e$11496760$6a28b4cf@carla.ici.net>
1997-12-29  0:00                                       ` Billy Chambless
1997-12-30  0:00                                       ` Jeffrey Templon
1997-12-30  0:00                                         ` Patricia Shanahan
1997-12-30  0:00                                           ` Charles R Martin
1998-01-03  0:00                                       ` Lawrence Kirby
1998-01-28  0:00                                     ` SmallTalk Execute files Thaminda Erangane Perera
1998-01-28  0:00                                       ` Dann Corbit
1998-01-29  0:00                                         ` Griff Lewis
1997-12-28  0:00                                 ` Which language pays most? Smalltalk, not C++ nor Java Kurt Watzka
1997-12-29  0:00                                   ` Kaz Kylheku
1997-12-29  0:00                                   ` Guillermo Schwarz
1997-12-29  0:00                                     ` Kaz Kylheku
1997-12-30  0:00                                     ` Joshua Waxman
1997-12-30  0:00                                       ` Robert Dewar
1997-12-30  0:00                                         ` Kaz Kylheku
1997-12-30  0:00                                       ` Kaz Kylheku
1997-12-30  0:00                                         ` Joshua Waxman
1997-12-30  0:00                                         ` Robert Dewar
1997-12-30  0:00                                           ` Dann Corbit
1997-12-31  0:00                                             ` David Thornley
1997-12-31  0:00                                               ` Robert Dewar
1997-12-31  0:00                                             ` John Porter
1997-12-31  0:00                                               ` Jon S Anthony
1998-01-02  0:00                                                 ` Robert Dewar
1997-12-30  0:00                                       ` firewind
1997-12-30  0:00                                         ` Joshua Waxman
1997-12-31  0:00                                           ` Robert Dewar
1997-12-31  0:00                                         ` Brock
1997-12-31  0:00                                           ` Joshua Waxman
1997-12-31  0:00                                           ` Dann Corbit
1998-01-01  0:00                                           ` firewind
1997-12-30  0:00                                     ` Kaz Kylheku
1997-12-30  0:00                                     ` Lawrence Kirby
1997-12-30  0:00                                       ` Patricia Shanahan
1998-01-03  0:00                                         ` Lawrence Kirby
1998-01-03  0:00                                           ` Patricia Shanahan
1997-12-30  0:00                                     ` Billy Chambless
1997-12-29  0:00                                 ` Kaz Kylheku
1998-01-02  0:00                                 ` Tor Iver Wilhelmsen
1997-12-25  0:00                             ` Which language pays most 17457 -- C++ vs. Java? Kurt Watzka
1997-12-19  0:00 ` Quowong P Liu
1997-12-19  0:00   ` William J. Leary Jr.
1997-12-24  0:00   ` Richard D Riehle
replies disabled

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