3 ms·
"It is more important to allow a useful feature than to prevent every misuse." That's from his "Design Support Rules" section early on in the paper. I am still
by 72deluxe 12y ago
"It is more important to allow a useful feature than to
prevent every misuse."
That's from his "Design Support Rules" section early on in the paper. I am still going through the paper, but this seems like a good rule and a reason why pointers are still allowed despite the protestations of people who hate C++. Sure, you can get into a pickle with them but that's not the language's fault.
Of course, there has been the rule "use references where you can, pointers where only absolutely necessary" but it's a difficult habit to break...
- AnimalMuppet 12y agoTwo that jumped out at me: "C++'s evolution must be driven by real problems" and "Don't get involved in a sterile quest for perfection." Arguably, that philosophy is why C++ went on to rule the world, and Lisp and Haskell remain niche languages.
- judk 12y agoInteresting tat Go has the same philosophy yet is anti-C++ many ways. The difference is that Go doesn't believe "useful" is enough justification-- usefulness is balanced against clutter and complexity.
- AnimalMuppet 12y agoGo has a different perspective on the cost of clutter and complexity - how much it costs in terms of compile time when you maintain a million line code base over two decades. Going from a 45 minute compile to a 10 second compile adds up over a couple decades. But it is still the same philosophy - Go's design is being driven by real problems that people ran into.