4 ms·
People really need to stop pointing this out (it was sort of off the cuff said during an interview). Ken Thompson and Bjarne Stroustrup have some history just l
by rramadass 5y ago
People really need to stop pointing this out (it was sort of off the cuff said during an interview). Ken Thompson and Bjarne Stroustrup have some history just like Linus Torvalds and Andrew Tanenbaum did. All of them are giants and while there are some merits to aspects of their arguments, it is a logical fallacy to use them as "Appeal to Authority" which is just an excuse for lack of knowledge/thought.
- eps 5y agoI've never seen this quote before, but I've been using C++ as my main language since the early 90s and this matches my opinion of it EXACTLY. C++ is a design-by-committee mish-mash language chokeful of everything that was ever thrown at it without any regard to how well it all fits together. In practice it is indeed used in a form of restricted feature subsets, because there's basically no other way to use it. It gets the job done, but it's an ugly bloated monstrosity. Not bad, just ugly.
- rramadass 5y agoThe book Concepts, Techniques and Models of Computer Programming talks about designing a Multi-Paradigm (i.e. different Computation Models) language named Mozart/Oz where the different Concepts/Features are somewhat orthogonal to each other but still exist within a overall comprehensive system. You use what best fits the Problem Domain. Unfortunately Mozart/Oz has not taken off in the Industry but C++ has fulfilled the niche though not as cleanly as envisioned in that book. Paradoxically, the breadth of the language features has become its strength. You can do Imperative/Object-Oriented/Generic/Functional/Concurrent programming all within the same language and using the same toolchains. Moreover, all these higher-level concepts do not prevent you from getting close to the metal if needed. AFAIK, no other "industrial" language even comes close. Alexander Stepanov, the inventor of STL is on record stating that he could realize his vision of a comprehensive, generic, flexible, efficient Algorithms library only in C++ (his attempts using Ada and Scheme both failed). That should tell you something about the power of the language.
- Jedd 5y agoRecent sibling comment has added to the overwhelming tone of HN comments on TFA - that C++ is a poor language. Has Ken Thompson ever retracted those comments? I can't find anything to suggest he had a different assessment. The phrasing used in that interview / book sounds like this is a subject he has deeply considered and well-reasoned - certainly not an off-the-cuff 'C++ is awful'. Ken and Bjarne may have some history, as you say - I do not know - but suggesting that implicitly reduces the legitimacy of his assessment may presuppose an inability to maintain impartiality on technical merits. I note that in the comments I quoted, and in other comments he's made about C++, his arguments are foremost about the quality and features of the language, with some hints about why it got to be the way. Whether it's an appeal to authority, or a deference to someone with unarguable expertise, is perhaps a subtle distinction.
- hdjjhhvvhga 5y agoMoreover, basically anyone who has been programming in C++ for more than a decade would have an opinion similar to Thompson, even without knowing the history of the language. Most programmers I know have chose a subset of the language with some features they feel the most reasonable/useful for them. C++ has so many features that taking over another codebase might actually feel like learning a new language. It is an actual problem, because in order to be efficient in a language you need to actively use it by writing code, and it's hardly possible to actively train in all aspects of C++ on a daily basis.
- pjmlp 5y agoAnyone who has been programming in C++ for more than a decade, knows pretty well how ISO works and how little influence Bjarne has on it. Additionally, anyone who has been programming for more than a decade, is most likely a polyglot developer has is well aware of similar problems in other languages. Which C#, TypeScript, Java, Haskell, OCaml, F#, PHP, Python,... subset do you happen to program on?
- rramadass 5y ago> C++ has so many features that taking over another codebase might actually feel like learning a new language. It is an actual problem, No; People keep repeating this as if it were a truism, but it is not borne out by any empirical evidence. Sure there is some learning ramp to understand a new style of programming but it is far more easier than trying to learn and express oneself fluently in a whole another language. This has been true both in my own experience and most of the people/teams i have worked with. See also the comment from "FpUser" in this thread echoing the same sentiments.