Eric Naggum made a good post on his beliefs about why C++ is a bad language. It's relatively inflammatory in tone, but the points are great.
In order to gain the necessary knowledge, we have to run experiments. In testing the vague ideas directly, the programmer can ferret out unwarranted assumptions early. Much like scrolling in a google map which is zoomed all the way out. In the C++ world, the programmer does not have the option to zoom out. Essentially, C++ makes the solution-space of a problem much, much, larger.
also:C++ is philosophically and cognitively unsound as it forces a violation
of all known epistemological processes on the programmer. as a language,
it requires you to specify in great detail what you do not know in order
to obtain the experience necessary to learn it. C++ has taken premature
optimization to the level of divine edict since it _cannot_ be vague in
the way the state of the system necessarily is.
I agree with this. C++ forces the programmer to "cut up the world" into kinds (natural) before she has enough knowledge about the system in question to do so. Naggum's observation that this unjustified categorization is then forced by the language to be blended with justified categories is interesting. Epistemologically, this eliminates all justification whatsoever. Relegating solutions in the language that seem so strong and well specified to nothing more than guesswork. How do you know what needs done, if you don't know what you're operating on?in other words, a C++ programmer is _required_ by language design to express
certainty where there _cannot_ be any.
In order to gain the necessary knowledge, we have to run experiments. In testing the vague ideas directly, the programmer can ferret out unwarranted assumptions early. Much like scrolling in a google map which is zoomed all the way out. In the C++ world, the programmer does not have the option to zoom out. Essentially, C++ makes the solution-space of a problem much, much, larger.
No comments:
Post a Comment