3 ms·
> OO buzzwords and programming fads that come and go in "higher-level languages" simply end up making a bigger mess of things as a project grows No, it's not t
by zvrba 14y ago
> OO buzzwords and programming fads that come and go in "higher-level languages" simply end up making a bigger mess of things as a project grows
No, it's not the language features which make a mess. It's people lacking judgement and common sense. (Like, trying to apply patterns everywhere. Been domain-specific [crypto] consultant on such a project and watched it smash the schedule by more than 2x. It wasn't the language [Java], it were stupid people.)
> sounds like he's written multiple lines of C to me
I don't contend that he's written a lot of C. I DO, however, contend that he's written some ANSI C. If you're writing ANSI C, you have to account for AT LEAST all of the following behaviors:
https://www.securecoding.cert.org/confluence/display/seccode/CC.+Undefined+Behavior https://www.securecoding.cert.org/confluence/display/seccode...
https://www.securecoding.cert.org/confluence/display/seccode/DD.+Unspecified+Behavior https://www.securecoding.cert.org/confluence/display/seccode...
For example, if f is some function, then in the sequence
int x = 0;
f(x++, x++);
the call to f is undefined behavior because x is modified twice without an intervening sequence point. Anybody claiming that such language is "high-level" is a moron, regardless of their "accomplishments".
- ehaliewicz 14y agoIn scheme, argument evaluation order is not specified. So, (pretending that set! returns the assigned value), (f (set! x (+ 1 x)) (set! x (+ 1 x)) ) is undefined and unpredictable as well. I don't think anyone would claim Scheme isn't high level.
- zvrba 14y ago"Undefined behavior" in C is much more insidious than merely "unspecified" or "unpredictable". All those security holes and exploits resulting from buffer overflows, stack overwrites, heap spraying, etc. are manifestations of UB made possible by a badly written program. (Or by the interaction between an invalid program and an optimistic compiler, as in the case of assuming strict pointer aliasing.)