[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: gEDA-user: pcb plugin smartdisperse fails on load



On Feb 24, 2011, at 8:50 AM, Peter Clifton wrote:

> On Thu, 2011-02-24 at 08:38 -0700, John Doty wrote:
>> On Feb 24, 2011, at 8:22 AM, Peter Clifton wrote:
>> 
>>> Means C didn't find the function, and it assumes it returns integer in
>>> that case. Dumb convention IMO.
>> 
>> "C is quirky, flawed, and an enormous success." - Dennis M. Ritchie.
> 
> True.. very true. I believe the behaviour in question dates back to the
> days where prototypes were very different, and C sometimes had to
> assume.

No, it was always possible to declare the return type of a function in C. But it's here that C shows its heritage: BCPL and B were typeless languages that manipulated machine words. The common culture of the time was that machine words represented integers unless otherwise specified (FORTH uses the same convention). C effectively defaults to B-like behavior when types are unspecified. Remember, C was originally intended as a replacement for B (and less directly, for PL/I) for low level systems programming. Manipulating machine words was its primary job, so the default was reasonable. 

> 
> I've been debugging some problems in a large 3D CAD + FEA system written
> in C++ recently. Give me nice C code that ANY day over that impenetrable
> crap.

Too many modern programmers don't understand the distinction between abstraction and obfuscation. When pressed on this point, they will insist that they do understand, and then continue to demonstrate by their actions that they do not. This seems especially true in the C++ community, where hiding crucial information is a common cultural imperative.

John Doty              Noqsi Aerospace, Ltd.
http://www.noqsi.com/
jpd@xxxxxxxxx




_______________________________________________
geda-user mailing list
geda-user@xxxxxxxxxxxxxx
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user