7 ms·
After almost 20 years of experience with C++, there are still some gnarly details I wouldn't have imagined. What a God awful language! Kudos to that author for
by marton78 2y ago
After almost 20 years of experience with C++, there are still some gnarly details I wouldn't have imagined. What a God awful language!
Kudos to that author for the great, eye catching title and the in depth detail!
- unwind 2y agoIn case it's not known to everyone, the title is an obvious nod to "I Have No Mouth, and I Must Scream" [1], a 1960s US sci-fi story by Harlan Ellison. 1: https://en.wikipedia.org/wiki/I_Have_No_Mouth,_and_I_Must_Scream https://en.wikipedia.org/wiki/I_Have_No_Mouth,_and_I_Must_Sc...
- bookofjoe 2y agohttps://talesofmytery.blogspot.com/2018/10/harlan-ellison-i-have-no-mouth-and-i.html https://talesofmytery.blogspot.com/2018/10/harlan-ellison-i-...
- _vaporwave_ 2y agoThat plot summary is... dark. Does anyone know how long the story is? Most of the copies I found online are collections of short stories.
- neckro23 2y agoIt's a short story, a brief one (~32 kB): https://gist.github.com/neckro/0f3a9ec60be34e3164c6677d4ecc1cb8 https://gist.github.com/neckro/0f3a9ec60be34e3164c6677d4ecc1... CW though, it is pretty grim. Very early example of the "AI takes over the world, decides humans are redundant" trope though. (Maybe the first?)
- tannhaeuser 2y agoThe question is which IHNMAIMS character the poster identifies with to have deserved his OOP misery, given all protagonists are imprisoned for life (or for eternity, actually, I believe) as a sentence for the bad things they did ;) Note there's also the adventure game created after the book, overseen and with a script also by Ellison.
- tpoacher 2y agopc adventure game was good too (i.e., messed up)
- shadowgovt 2y agoI assume AM is filled with so much hate because it's just three billion lines of C++.
- wavemode 2y agoAlways obligatory https://mikelui.io/img/c++_init_forest.gif https://mikelui.io/img/c++_init_forest.gif
- CoastalCoder 2y agoThanks, I'd never seen that one! So horrifyingly true.
- fouronnes3 2y agoIf you enjoy this, a few years ago I made the "C++ iceberg" meme (with clickable links!). I've been thinking about making an updated V2 with all the "you forgot about X" messages I've been getting. https://fouronnes.github.io/cppiceberg/ https://fouronnes.github.io/cppiceberg/
- throwup238 2y agoGod bless you for making this. I plan to incorporate several of these features at work in the hope of summoning Cthulu and killing the company once and for all. What's your favorite "you forgot X"? You should definitely make an updated v2 because every link I've opened from the bottom half has been absolutely bonkers. Three dimensional analog literals drawn using ASCII? What the flying hell was the standards committee thinking.
- java-man 2y agoelse while is perfectly fine, not only in c++.
- CoastalCoder 2y ago> If you enjoy this Well, I do appreciate your work, and the information is certainly helpful. But it's a bit like a urologist explaining what it will be like when you pass a kidney stone. And then find out that the C++ standards committee is working on a new kidney-stone shape that's backwards compatible, but adds more jagged spikes.
- queuebert 2y agoI should print this and put it on my wall for all those times when I'm frustrated with Rust lifetimes.
- GuB-42 2y agoC++ is a popular multi-paradigm language that is both cutting edge and 40 years old (more if you count C), there is simply no way around that level of complexity. You have "C with classes" that coexist with the "modern" way, full of smart pointers and functional programming. It is popular in embedded systems, video games, servers, and GUIs (mostly Qt). And if you look at the code, it is as if it was a different language, because the requirements are all very different. Embedded system need low level hardware access, video games are all about performance, servers want safety, and GUIs want flexibility. There are less awful alternative to C++. For example C on one end of the spectrum and Rust on the other end. But none of them cover every C++ use case.
- hu3 2y agoZig looks promising too.
- marcosdumay 2y ago> multi-paradigm Well, it does unstructured imperative, structured imperative, and OOP imperative! Except if you count template programming, because that one is pure functional, but only runs at compile time.
- bee_rider 2y agoC++ needs a different name from multi-paradigm. Java is a multi-paradigm language. C++ is an omni-paradigm language. If there’s a paradigm, - There’s at least an ugly library to do it in C++ - There might be support baked directly into the language - Or you could do it in Lisp, but that would be too easy
- codeflo 2y agoAnd if you dare to combine two of the paradigms it supports, you get UB.
- snappythrowaway 2y agoWhat is UB?
- ghosty141 2y agoI've been working with C++ at my job for 2.5 years now and I've already come to this conclusion. Wouldn't wanna use it if there is any other way. The fact that you can do almost anything IS pretty cool, but without having at least one C++ wizard at hand it can drive you nuts.
- ryandrake 2y agoJust another person’s opinion: I’ve been using C++ for my entire career, and to be honest, if I’m starting a new solo project, I reach for it unless there is some major technical reason not to. Yes, it can be messy. Yes, there are footguns. But as a developer, you have the power to keep it clean and not shoot the footguns, so I’m still ok with the language. If I was starting a new work project with a lot of junior team members, or if I was doing a web project, or a very simple script, fine I’ll use a different language. There can definitely be good reasons not to use C++. But I’m at the point in my expertise that I will default to C++ otherwise. I’m most productive where I am most familiar.
- kmoser 2y ago> Yes, there are footguns. But as a developer, you have the power to keep it clean and not shoot the footguns, so I’m still ok with the language. With all due respect to your expertise, the whole idea of a footgun is that it tends to go off accidentally. The more footguns a language contains, the more likely you are of accidentally firing one.
- jeffbee 2y agoI think what he's saying is that C++ users don't need to go to the Footgun Outlet Mall and wantonly brandish each of their credit cards. You can leave the subtle parts of the language on the shelf, in many cases.
- 725686 2y ago"you have the power to keep it clean and not shoot the footguns". Really? Do you think footguns are intentionally shot?
- FreezerburnV 2y ago“There are only two kinds of languages: the ones people complain about and the ones nobody uses.” - Bjarne Stroustrup Not disagreeing that C++ is awful in a lot of ways and super difficult though. But I still weirdly like it, personally. I find it a fun challenge/puzzle to work with.
- zarathustreal 2y agoI find it annoying to have to solve a puzzle to make progress solving my intended puzzle (i.e. whatever I’m computing)
- School-Cotton 2y agoI think we can say Rust is beyond the “nobody uses” stage by now, and it’s much simpler and easier than C++. (And people who use it tend to like it, proving Bjarne wrong).
- fiddlerwoaroof 2y agoOr, because there’s so many languages around now, they just use something else. I really don’t like working with Rust myself and so I use other languages.
- saurik 2y agoI'm sorry; you think people don't complain about Rust? There are tons of articles posted here from people complaining about Rust in various ways. Bjarne wasn't saying whether most people like it... that's orthogonal: I actually like C++, yet I have been complaining about it--at times quite bitterly--since before it was even standardized!
- tomjakubowski 2y agoIndeed, I am a huge proponent of Rust and have been using it since before 1.0 (even contributed to it, in the past) -- and I complain about Rust a lot, too. Trying to restate Bjarne's point here: if I wasn't using Rust, then I wouldn't have any reason to complain about it.
- qsdf38100 2y agoSo you hate C++. Great, thanks for your informative insights.