3 ms·
>The Scalable C book is in many ways a guide to using that library in real projects. I'm not criticizing the book or czmq. I'm sure it's a fine library. I ju
by jasode 11y ago
>The Scalable C book is in many ways a guide to using that library in real projects.
I'm not criticizing the book or czmq. I'm sure it's a fine library. I just found your characterizations of C++ to be strange.
For example: ">, any well-written C code is mutually intelligible to other C programmers."
If you're going to qualify C code with "well-written" to help make your point then can't the same qualification be applied to C++? If so, it means you believe that there is "well-written C++ code" that is simultaneously unintelligible to other programmers. In your opinion, what would be an example of that? (E.g. If you can point to github of unintelligible but well-written C++ source code.)
And your other statement: >, because your particular dialects of C++ tend to isolate you.
I don't know if CryEngine and Unreal game engines are well-written C++ but they seem attract developers. There's also the scuba diving app[1] written in C++ that also has Linus (who you already know hates C++) modifying the source code. I contend there are bigger factors than C++ dialects causing isolation.
The C++ ABI may be more isolating than the C ABI because of C++ name mangling incompatibilities. But I don't see how the C++ dialects (of well-written code) are isolating.
[1]https://github.com/torvalds/subsurface https://github.com/torvalds/subsurface
- microcolonel 11y agoGiven the sheer breadth of approaches and features in C++, any one codebase will only touch some of it. Inevitably this means that if you get used to C++ in one project, you will have more difficulty moving to projects using a different subset.
- PieterH 11y agoSince you ask, I'll admit it: I enjoy trolling C++ users because the language has so often thought of itself as superior to C. Beating on the language always gets lots of discussion going, which is fun. I've nothing against the language, or any other language, as such. Good tools, in the hands of good developers.
- unscaled 11y agoI find it the other way around. It's usually C hackers who tend to describe C++ as the devil incarnate. C++ developers tend to be more pragmatic - we'd happily write in C if necessary, we just find it limited. And since C++ is almost a superset of C, there's rarely any need to use it.
- tamana 11y agoThank you your honesty. Now, C++ developers can stop trying to have a productive conversation with yoir new generation of hipster C programmers crafting smal-batch artisinal bytes, and get back to getting work done.
- felixgallo 11y agoFrom experience, both unreal and cryengine are perfect examples of Pieter's point. They're large codebase with archaeological layers of many different c++ styles and paradigms.
- jasode 11y ago>perfect examples of Pieter's point. Please consider the precise argument I was responding to. Pieter's point is a stronger statement than just the existence of "different styles". (Every significant codebase by multiple people has multiple styles -- e.g. see Linux distribution.) He was stating that there was a cause and effect such that the different styles ("dialects") cause "isolation". If so, it means Apple's Swift compiler written in C++ on github[1] should be getting near zero forks and pull requests. In his theory, Chris Lattner and his dialect of C++ should be "isolated". It's also possibly unintelligible C++ (although I haven't looked at it yet). If it was just one of those throwaway sentences to troll people, then fine. My first impression was that he wanted his programming guide to be taken seriously. I enjoy reading C++ criticisms. The criticisms in the C++ FQA by Yossi Kreinin has interesting points. I'd prefer it if the faults of C++ were accompanied by evidence. [1]https://github.com/apple/swift https://github.com/apple/swift
- felixgallo 11y agoYes, like I said, speaking from experience, different C++ code styles and paradigms absolutely do cause isolation. Having to climb yet another mountain in order to be effective on a different codebase in the same language means people don't do it, so they become experts in a single codebase -- isolated.