Gabriel Sechan wrote:

From: Christopher Smith <[EMAIL PROTECTED]>
The six stages of programmer development:

1) Wow, I can do cool stuff with this language!
2) This language has serious flaws. I can't believe the language
designers were so stupid.
3) Wow, this other language addresses all the short comings of the prior
language I was using. The new language is the answer to all my dreams.
It's perfect.
4) Repeat 2 & 3 until enlightenment.
5) Ah, now I get it. Language design is about trade-offs. All languages
have shortcomings.
6) You know, there is a certain combination of design trade-offs that
really suit me. Maybe if I put them together in to a language I can
sucker some programmers in stages 1-3 in to using it.

I'm in stage 6, but someone already wrote the language for me. It's C, compiled with max warning level and warnings as errors. To me its really the perfect language:

Sorry, you're at stage 1. ;-)

Obvious things to poke at in C: clumsy and error prone macro system (and a sucky preprocessor in general... aren't you tired of having to put guards around all your headers?), no easy way to add integer underflow/overflow safety to arithmetic operators when you want it (to do it inefficiently you need to define and use your own functions, to do it efficiently you have to write inline assembly), undefined overflow/underflow behavior with signed types, no boolean type (I think this was fixed in C99, but can't remember), no support for overloading (even function overloading), weak static typing (kind of the worst of all worlds ;-), etc. I used to also have the lack of a built in variable sized array and constant types, but C99 fixed that one. Really, C99 did fixed a number of short comings with C.

--Chris

--
KPLUG-LPSG@kernel-panic.org
http://www.kernel-panic.org/cgi-bin/mailman/listinfo/kplug-lpsg

Reply via email to