Can anyone recomend a good intoduction to C...

Grant Edwards grante at visi.com
Wed Mar 7 20:02:58 CET 2001


In article <983989153.204220 at newsmaster-04.atnet.at>, Werner Schiendl wrote:

>> >What use would it be to check the language?
>>
>> The point is that the more complex the language, the more
>> difficult it is to inspect the application.  You can look at a
>> few lines of C and have a pretty good chance at guessing what
>> they do.  In C++ it's much harder to look at snippet of code
>> and figure out what it's going to do.
>>
>
>At least if the design is bad.
>
>Usually an object oriented program should be easier to read.
>Just because the syntax does more closely resemble the way
>humans think.

It _should_ be easier to read.  But in my experience it isn't.

The problem is that C++ is a very complex language.  It's
difficult to determine by inspection what a piece of code does
because of all the overloading/templating/whatnot that C++
allows.  There are too many times when a line of code doesn't
do what it appears to do to a reader.

Just the problem of deciding whether "foo" is a local, global,
or instance variable can be difficult for a human inspector.
Throw in some cpp tricks and it's hopeless.  I know that C++
was supposed to eliminate the need for cpp, but it still gets
used.

>(But I saw enough examples that demonstrated just the
>opposite...)

In my experience, C++ is too complex a language to allow for
practical, thorough inspection of source code.  And since C++
still allows you to generate dangling pointers, memory leaks,
indexes out of range and whatnot, you _need_ to inspect source
code to detect many of those types of problems.

C also allows you to generate those problems, but the language
is simple enough that inspection is a practical exercise.

OTOH, Python (or Modula-3 or Smalltalk or ....) won't _allow_
you to generate a pointer to nothing or index off the end of an
array.  Additionally, they're far simpler languages than C++, so
other types of errors are easier to spot.

-- 
Grant Edwards                   grante             Yow!  Either CONFESS now or
                                  at               we go to "PEOPLE'S COURT"!!
                               visi.com            



More information about the Python-list mailing list