You are viewing a single comment's thread from:

RE: An open-ended question to @ned and @dan

in #steemit7 years ago

Code that runs fast is quite distinct from code that gets the best out of hardware. C++ is loathed by the most famous kernel coder because C++ tends to lead, especially inexperienced coders, to mistake abstractions for the physical. Abstractions are for convenience, not performance.

My main issue with C++ is it's excessively complex. My most recent study of CS was from a russian friend I met while living on the street in Amsterdam, and his obsession was functional proogramming. I am resolutely a functional programmer now, but I believe that some algorithms are better done procedurally, or using objects, but no matter what other paradigm you work with, in my opinion, if you disrespect the functional rule about messing with the data inside functions, from other functions, you make your code unmaintainable.

C++ tries to encourage programmers to make data private within objects, but it tends to lead to functions within the methods of an object, that are too broadly defined, and lead to 'dirty functions'. The object really should be broken into several distinct sub-objects but the programmer's model mingles them into one, and the bigger these 'objects' get, the more likely they are to become impossible to re-engineer once a model proves to be wrong, because 5 different methods interact with the same variables, creating entropy in the algorithm.

Entropy is death for distributed systems.