4 ms·
I hate C++. I work with it professionally and have for years. The entire language feels like an anti pattern at this point. I’m repeatedly told how incredibly p
by orange_joe 4y ago
I hate C++. I work with it professionally and have for years. The entire language feels like an anti pattern at this point. I’m repeatedly told how incredibly powerful this language is if I only use this preferred set of language sub features. But this whole approach violates the entire premise of a type based language, which is to offload as much complexity as possible onto a compiler so that you can get compile time warnings & errors. What’s the point of a compiled language if half the language constitutes a foot gun.
- cartoonfoxes 4y agoSame here. I keep eyeing Ada and waiting for the compiler prices to drop.
- micronian2 4y agoAre you unaware of the FSF version of GNAT that is part of GCC that is free to use, even for developing proprietary software?
- cartoonfoxes 4y agoI'm aware of it, and I'm not aware of anyone using it for proprietary software in the kinds of projects where Ada would come up in discussion. FSF GNAT + Alire are fine as a hobbyist toy and for open source, but they're not in contention for [workjob]. FSF GNAT isn't just unsupported, but also very thinly documented. And that's if you're only targeting Linux or Windows on x86, and not embedded devices with a cross-compiler you need to build yourself. The basic Windows / Linux versions of the cheapest commercial Ada package only recently dropped to high 4-figures / seat. The equivalent cross-compilers are still $$,$$$.
- devnullbrain 4y agoI don't understand how this comment applies to this link. These features are designed around moving as much computation and verification as possible to compile time without using templates. If you need to.
- chlorion 4y agoIt doesn't, it's just the standard generic "C++ is complex and bad" post that people love to read so much. Every C++ related post will have at least one of these and they are always totally unrelated to anything being talked about.
- ameliaquining 4y agoI think the specific connection to the original post is that there are four separate language features that do related but subtly different things, and the differences and interactions between them are difficult to wrap one's head around. I'd like to think that, if you were designing a language's constant/compile-time evaluation features from the beginning without concern for backwards compatibility, you could come up with something equally powerful but conceptually simpler. (One could argue that this is what Zig has done.)