comp.lang.ada
 help / color / mirror / Atom feed
From: castori@litsun.epfl.ch (Pierre Castori)
Subject: Re: Easily-Read C++?
Date: 5 Oct 1994 09:42:02 GMT
Date: 1994-10-05T09:42:02+00:00	[thread overview]
Message-ID: <36tsda$s32@disunms.epfl.ch> (raw)
In-Reply-To: 941005030023_73672.2025_DHR103-1@CompuServe.COM


In article <941005030023_73672.2025_DHR103-1@CompuServe.COM>, Ken Garlington <73672.2025@COMPUSERVE.COM> writes:
   |> |> Robin Rowe <cpp@NETCOM.COM> writes:
   |> |>
   |> |> Before I begin, I want to make two things clear. One, that I intend 
   |> |> no disrespect to the author of the original paper, and two, that I 
   |> |> am an expert in C++ but not in Ada.  
   |> |>
   |> |> [lots of stuff deleted]
   |> |>
   |> |> << Here's how I read a piece of C++ code:
   |> |>
   |> |>    if(!object)                  // "If not object [then]"
   |> |>    {   cerr<<object.ErrorMsg(); // "output object's error
   |> |>    }                            //  message,"
   |> |>    else                         // "else"
   |> |>    {   object++;                // "increment object."
   |> |>    }
   |> |>
   |> |> So what's unnatural about this? Sounds like English to me. >>
   |> |>

Of course! Didn't you say you were a C++ expert? Would look weird if
you couldn't understand this easily don't you think so?  By the way,
what about the same code without the comments? ...

   |> Not that I'm a C++ expert, but I have noticed that a lot of C/C++ code looks
   |> like Greek to me. Certainly, that stuff on the right reads like English to me
   |> (is this normal C style to comment every line?) but the stuff on the left I
   |> have to think about a little. On the other hand:
   |> 
   |>    If Not(object) then
   |>       Text_IO.Put_Line (Error_Message (corresponding_to => object));
   |>    else
   |>       object := object + 1;
   |>    end if;
   |> 
   |> is easily read by _any_ engineer (never mind software engineer) on my project.
   |> (Of course, I would have to explain what the "not" of a numeric value is,
   |> maybe, but a more meaningful function name is probably a good idea in this
   |> case.) In fact, it looks suspiciously like the English explanation of the C
   |> code. Note that some of these engineers didn't take the math class where "++"
   |> means "add one to the thing before the ++." However, "X = X + 1" is something
   |> they got pretty early on. That colon hanging off the equal sign doesn't seem to
   |> bother them much.
   |> 

Totally agreed. I can't understand how people can honestly claim C or C++ are
as readable as Ada. More generally did you realize how often C/C++
programmers use abbreviations? They seem to implicitly admit that what they are
writing will be understood. And this seems to be automatic in the C community.
This probably comes from the times when people were taught C. You learn to use
good old int (integer), rd (read) and fd (file descriptor). Then it is natural
to continue using such abbreviations. What is the big deal in writing
file_descriptor?  Laziness?  Why cerr and Msg in the example above? 
Agreed that ErrorMsg is understandable. But again what is the problem in
writing Error_Message?  Especially with nowadays editors that have so many
features to help you complete words, indent automatically, etc.

Comparatively, Ada programmers seldom abbreviate. I am not saying they never
do it. I am saying the tendency in the Ada community is naturally not to
use abbreviations (ease of reading). While the tendency in the C community is
naturally to use abbreviations (ease of writing). The C/C++ languages themself are
designed with some sort of a compact-statements-do-a-lot principle.

Abbreviations make programs much more difficult to read and understand.
In writing programs, I think many programmers forget the well-known principle:
a program is written once, read many. And "many" means many other people than
the author!

   |> Has anyone tried a study like the following? Take some C++ code from Software
   |> Development, or Embedded Systems Programming, or whatever. Write the Ada 9X
   |> equivalent. Show the 9X code to C++ programmers who have never seen Ada, and
   |> the C++ code to Ada programmers who haven't worked with C recently. Which set
   |> of code would be understood more often?

Guess ... ;-)

In computer science papers that present some algorithms, it is seldom the case
that these algorithms are described in a C-like fashion. Most often, a Pascal-like
solution is used even when the algorithm is really implemented in C/C++. Howcome?
I thought C was THE widely accepted language. For me, this says it all.

//Pierre.

============================================================================
| Pierre Castori                           |      Tel : +41 21 693 2054    |
| Dept. of Computer Science                |      Fax : +41 21 693 4701    |
| Swiss Federal Institute of Technology    |-------------------------------|
| EPFL - IN ECUBLENS                 ______| Email: castori@litsun.epfl.ch |
| 1015 Lausanne (SWITZERLAND)       | http://litwww.epfl.ch/~castori/.html |
============================================================================



  reply	other threads:[~1994-10-05  9:42 UTC|newest]

Thread overview: 43+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1994-10-05  3:00 Easily-Read C++? Ken Garlington
1994-10-05  9:42 ` Pierre Castori [this message]
1994-10-05 13:28   ` Robert Dewar
1994-10-06  2:20     ` Benjamin Ketcham
     [not found]     ` <CxDL8H.KGE@csn.org>
     [not found]       ` <milodCxH2E4.7F4@netcom.com>
     [not found]         ` <CxHJv0.Kw0@csn.org>
     [not found]           ` <DAG.94Oct11080229@bellman.control.lth.se>
     [not found]             ` <37du0k$ir2@gnat.cs.nyu.edu>
1994-10-12  3:19               ` Attractive comments better? R_Tim_Coslet
1994-10-13  1:35               ` Michael Feldman
1994-10-12 17:03           ` Easily-Read C++? John DiCamillo
1994-10-05 14:26 ` Eric S. Sessoms
1994-10-05 17:47 ` Kevin Cline
1994-10-05 22:02   ` Robert Dewar
1994-10-05 22:23     ` Richard Kenner
     [not found]       ` <124377@cup.portal.com>
1994-10-11 18:11         ` David Weller
1994-10-11 18:43         ` Robert Dewar
1994-10-12 13:15           ` Norman H. Cohen
1994-10-12 14:10             ` Robert Firth
1994-10-13 19:33             ` John D. Reading
1994-10-13  0:51         ` Keith Thompson @pulsar
1994-10-05 18:24 ` Magnus Kempe
     [not found] ` <EACHUS.94Oct6101347@spectre.mitre.org>
     [not found]   ` <371a3p$nos@gnat.cs.nyu.edu>
     [not found]     ` <1994Oct7.153254.29848@swlvx2.msd.ray.com>
     [not found]       ` <374uke$8mo@delphi.cs.ucla.edu>
     [not found]         ` <37bno4$ko4@gnat.cs.nyu.edu>
1994-10-11 13:00           ` Robert Firth
1994-10-11 13:44             ` Casper H.S. Dik
1994-10-11 19:03               ` Robert Dewar
1994-10-12 16:38               ` John DiCamillo
1994-10-11 18:52             ` Robert Dewar
1994-10-12 13:49               ` Norman H. Cohen
     [not found]           ` <37eej8$6ie@siberia.gatech.edu>
1994-10-11 18:55             ` Robert Dewar
1994-10-12 13:35               ` John M. Mills
1994-10-12 19:48                 ` Robert Dewar
     [not found]         ` <CxFr5B.K1G@news.otago.ac.nz>
     [not found]           ` <DAG.94Oct10075533@bellman.control.lth.se>
1994-10-11 17:50             ` Norman H. Cohen
     [not found]     ` <373vd2$39n@theopolis.orl.mmc.com>
     [not found]       ` <CxBvq7.GrH@inmet.camb.inmet.com>
     [not found]         ` <37bnic$kj2@gnat.cs.nyu.edu>
1994-10-11 18:02           ` Norman H. Cohen
     [not found] ` <1994Oct7.110309@di.epfl.ch>
     [not found]   ` <DAG.94Oct7204142@bellman.control.lth.se>
     [not found]     ` <1994Oct7.210111.4494@nosc.mil>
     [not found]       ` <374i3o$c87@Starbase.NeoSoft.COM>
1994-10-12 17:37         ` "Tag" (Was: Easily-Read C++? (NOT)) David Emery
     [not found] <3719k1$11gt@watnews1.watson.ibm.com>
     [not found] ` <85C92963672@annwfn.com>
1994-10-11 18:37   ` Easily-Read C++? Norman H. Cohen
1994-10-12 16:54     ` David Emery
1994-10-14 21:13       ` Kevin Cline
1994-10-21 14:38         ` Thomas M. Breuel
1994-10-22  3:10           ` Michael M. Bishop
1994-10-26  0:39             ` -mlc-+Schilling J.
1994-10-27 14:54               ` Bob Duff
1994-10-27 15:35                 ` Richard Kenner
1994-10-27 23:09                 ` Robert Dewar
1994-11-01 21:19                 ` Adam Beneschan
1994-11-02  0:46                   ` Bob Duff
  -- strict thread matches above, loose matches on Subject: below --
1994-10-12  3:06 Easily-Read C++ Ken Garlington
1994-10-14 10:50 Easily-Read C++? Bob Wells #402
replies disabled

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