{"generated_at":"2026-11-12T18:49:12.006Z","source":{"name":"Hacker News public API","url":"https://github.com/HackerNews/API","attribution":"Stories and comments are public Hacker News submissions by their respective authors. HackerHub is an independent reader, not affiliated with Y Combinator.","content_is_untrusted":true},"story_id":50423371,"hn_url":"https://news.ycombinator.com/item?id=50423371","total_comments":89,"returned":20,"scope":"Up to the requested number of top-level comments in Hacker News ranked order. Deleted comments are omitted. Nested replies are not fetched; this is not the complete thread.","comments":[{"id":50424564,"author":"simonask","created_at":"2026-11-09T12:16:12.000Z","text":"Oh, C++.\nC++ feels like an old lover who I think fondly of. We were together many years, until about C++20, through thick and thin. It was exhilarating - blazingly fast, perhaps irresponsibly so, but heck, the ride was wild. It taught me so many things, and shaped me into the programmer I am today. But we went our separate ways when its shortcomings became too large to bear, and its behavior - too often undefined - no longer excusable.\nI keep up with it because I still have love for it, but I have to admit I am deeply concerned about many of the life choices it is making. I should have seen how problematic it was, because I knew its history, but I had hope that it could change, and it just looks like it never will.\nI'm still rooting for C++, even though I am very happy with my new primary language, Rust. I hope it changes to the better, because I really want the best for it, but right now I'm just not seeing it. It keeps repeating old mistakes (e.g., more UB footguns with every new feature), without addressing any of the big flaws (insufficient tools for building robust software).\nI sometimes still write C++, but I'm not excited about it the way I used to be. When I do write C++, it's because I have to. When given the choice, Rust is simply just a better choice for almost everything I do. Right now, I don't see a future for C++ and me.","parent_id":50423371,"replies_count":1,"hn_url":"https://news.ycombinator.com/item?id=50424564"},{"id":50424058,"author":"chris_j","created_at":"2026-11-09T11:17:29.000Z","text":"I'm really torn about C++. I love C++ but there are things that I really don't like about it as well. It's a fantastic language in a lot of ways, but it carries around 40+ years of cruft, of things that you wouldn't do like that if you were inventing a programming language today.\nI haven't written C++ professionally for many years at this point, and my memories of using it professionally (pre C++ 11) are not happy ones: having to agree on a strict subset of the language that we were allowed to use, which avoided features that any of the compilers didn't support well, or that my teammates didn't like. Sadly back then the list of forbidden features included templates and namespaces.\nBut using C++ on personal projects nowadays, and being able to choose which bits of the language to use - and which to avoid - is much more enjoyable. And honestly, the language did get a lot better from C++ 11 onwards.","parent_id":50423371,"replies_count":1,"hn_url":"https://news.ycombinator.com/item?id=50424058"},{"id":50423726,"author":"adev_","created_at":"2026-11-09T10:33:19.000Z","text":"In one word: Power.\nC++ is by far the most powerful language around. And this is for the best and (often) also the worst.\nIn term of generic programming, control on hardware, capacity of abstraction and more generally expressivity: Nothing, even today, come even close to C++.\nIt is a language full of foot guns and it has its fair share of legacy problems.\nBut if you learn to avoid it (throught experience and pain). You can reach a productivity and a level of performance in C++ which is very difficult to beat with anything else, including Rust.\nIronically, I find it particularly true in the age of A.I.\nBecause the amount of C++ around is so tremendous, that agents are currently pretty good at it if guided properly.","parent_id":50423371,"replies_count":4,"hn_url":"https://news.ycombinator.com/item?id=50423726"},{"id":50423698,"author":"mort96","created_at":"2026-11-09T10:30:05.000Z","text":"I enjoy writing C++ code.\nI acknowledge that C++ is a bad language in a lot of ways, but it's a bad language which I know really well, and it fits with how I think about code. And it lets me effortlessly do \"clever\" things with how memory is managed to avoid unnecessary allocations etc. I've already learned most of its idiosyncrasies, handling rvalue references/move semantics, how to go about implementing contracts like iterators and containers, etc.\nI also like writing Rust, and I like how Rust makes sure I don't make mistakes. I think Rust is a better language in many ways and I think it's the future of low-level programming (and I think it's wild that it took so many decades to get a proper competitor to C++!). But I also like how C++ doesn't care and lets me do whatever I want without acting as a nanny. I would never ever dare to write a publicly exposed web server in C++, but a game? Sure!","parent_id":50423371,"replies_count":0,"hn_url":"https://news.ycombinator.com/item?id=50423698"},{"id":50424131,"author":"gignico","created_at":"2026-11-09T11:27:04.000Z","text":"I love C++, in the C++11 days I even organized a local C++ User Group at my university, and I've used it for the last 20 years as my main language.\nI still appreciate its many merits but since a bit more than a year I migrated to Rust and I find it very difficult to look back, except for maintaining my previous C++ projects.\nSurprisingly, it's not Rust's memory safety features that I miss the most when turning back to C++. It's mostly the absence of algebraic data types and pattern matching, and the split between compile-time and runtime polymorphism, i.e. concepts vs virtual classes, where in Rust you just have traits and use them for everything. On top of that the tooling and the ecosystem are just amazing.\nThere's a proposal for pattern matching sitting there under the committee's desk for some years now. With the mess that the standard committee is going through I really doubt they will be able to ship pattern matching for C++29 or even later. Too little too late.\nSo to answer the question, yes, I still appreciate the merits of C++ but I don't enjoy writing it as much as I have in the past.","parent_id":50423371,"replies_count":1,"hn_url":"https://news.ycombinator.com/item?id=50424131"},{"id":50424293,"author":"dotdi","created_at":"2026-11-09T11:47:20.000Z","text":"I agree that C++11 was a big step. This was around the time I was working on a master's thesis, building a distributed optimization framework based around simulated annealing, using hand-optimized CUDA kernels on Nvidia CPUs. Writing CUDA code became a much nicer experience with C++11, and I didn't hate it.\nHowever, it was still a bad choice for all the plumbing, caching, networking, job-management, etc that a useful framework needed, and I started using more and more Python. C++ was frustrating for those bits.\nEventually, after some important work on Numba[0], I was able to replace C++ completely, even for the CUDA kernels, and just write a subset of Python. It wasn't without it's (often quite esoteric) problems, but I was happy to throw out the last bits of C++ code. The thesis was praised and had some outside attention, but fizzled out in the years thereafter.\n0: https://numba.pydata.org/","parent_id":50423371,"replies_count":0,"hn_url":"https://news.ycombinator.com/item?id=50424293"},{"id":50424320,"author":"bulbar","created_at":"2026-11-09T11:50:37.000Z","text":"Still loving writing C++ and generally, it got much better over the years. User-Code (vs. library code) is quite easy to understand and it's easy to avoid pitfalls for the most part when using modern practices.\nMain problem I see is that it has to move pretty slow. Reflection arriving finally now, but some more modern features might take an additional decade.\nIt feels however that around C++23/26, a lot of decade-long developings ( i.e.compile time stuff) are getting close to form a complete system without major limitations for the most part.\nThey also took notes regarding errors and templates, so the user experience also improved a lot (i.e. with concepts).","parent_id":50423371,"replies_count":0,"hn_url":"https://news.ycombinator.com/item?id=50424320"},{"id":50423928,"author":"throwaway81523","created_at":"2026-11-09T10:59:38.000Z","text":"Yes I mostly enjoy it, but I don't do anything critical with it and I'm nowhere near expert level. I use the subset of it that makes sense to me. If I were doing something critical I'd want to use Ada, which I've played around with a little bit.\nI think the lurking question is about Rust. I've read a book about it and it has some attractions but also what I think are some poor decisions. I suppose I'll have to use it for something sometime. C++ is sort of like Perl, it seems to me. A lot of what seems like bloat is actually affordances, so the thing you want is often surprisingly close at hand. Some things of course are awful.\nI wouldn't call C++ a good language but it does most of the things. Enjoyment doesn't always mean productivity anyway. I enjoy using Forth but that's almost like enjoying riding a unicycle. I wouldn't do anything substantial with Forth except for recreation. I do feel fairly productive in C++.","parent_id":50423371,"replies_count":0,"hn_url":"https://news.ycombinator.com/item?id=50423928"},{"id":50423729,"author":"egorfine","created_at":"2026-11-09T10:33:29.000Z","text":"There is C++ and then there is C++. Totally different things.\nOne I enjoy programming. Another I dread.","parent_id":50423371,"replies_count":2,"hn_url":"https://news.ycombinator.com/item?id=50423729"},{"id":50423861,"author":"pjc50","created_at":"2026-11-09T10:50:56.000Z","text":"I'd like to put in a \"no\" after spending many years writing C++; my day job is in C# now.\nThe templating system is more powerful than any other language I have significant experience with, but that also lets people write incomprehensible systems. And the compile times always have been really long.","parent_id":50423371,"replies_count":0,"hn_url":"https://news.ycombinator.com/item?id=50423861"},{"id":50470210,"author":"codynaut","created_at":"2026-11-12T16:44:03.000Z","text":"I haven't been able to work in C++ for a few months now because of work and other projects, but I still love it, mostly because of how far down it lets you go. The last thing I used it for was reverse engineering Tarkov, only the PvE mode and not PvP because I'm not a dickhead, after a friend of mine was using a cheat there and I got curious whether I could build something similar myself.","parent_id":50423371,"replies_count":0,"hn_url":"https://news.ycombinator.com/item?id=50470210"},{"id":50435423,"author":"cookiengineer","created_at":"2026-11-10T02:40:38.000Z","text":"Personally, I've never seen anyone write C++ codebases without boost. As you pointed out, the only practical way seems to be to constraint its feature complexity through meta programming.\nComing from the embedded C++ world where resources are scarce, C++ and its debugger ecosystem have been really nice. There were usually strong vendor provided SDKs and cross compilation toolchains available.\nThe issues I had with the language were mostly dependencies on vendors, not effectively being able to fix problems in SDKs, and as you also mentioned the footguns.\nLots of frustrations came from codestyle, branch conventions and type conventions we tried to encode into templates, which new team members had to learn before they could write any production code. So from a team perspective a lot of productivity came from reproducible build pipelines and setups. Having one team member on Windows and the other on macOS or Linux was as painful as it can get, especially with getting gcc's ecosystem to work properly. So you were also really dependent on Docker cross architecture images. And setting those up just for the sake of compilation was also unnecessary overhead.\nThese days I've migrated towards Go for pretty much all tasks I can think of, mostly for the tight integration with the C ABI ecosystem and tinygo and the easy possibility to cross compile into fat binaries.\nWhat I miss though is a \"real IDE\" like the old Visual Studio, or geany or whatever. Most IDEs are not symbol based anymore, which makes them really painful to use in terms of what I expect an IDE to offer to be able to call itself an IDE. But maybe this is just my C++ heart bleeding all over the place because I miss good and typed API documentation examples that I can explore through clicking rather than having to google every function all the time.","parent_id":50423371,"replies_count":0,"hn_url":"https://news.ycombinator.com/item?id=50435423"},{"id":50424551,"author":"zagal","created_at":"2026-11-09T12:14:52.000Z","text":"I only used it for bare-metal embedded and Linux user space where efficiency was important.\nSome features are nice. Some arrived too late, like std::optional in C++17 [0] or std::expected in C++23 [1], and some features requires too deep knowledge of the language, like std::move unable to optimize for containers of structs without \"noexcept\" in their constructors. [2]\nBut honestly, the reason why I don't enjoy it is unrelated to the features added to each new standard. It's the build system. I just want to cross compile easily, add sanitizers to testing, and the minimal third party libraries I may need. I think I don't have to explain here how complicated it can get when you have to use CMake/Meson/Bazel, compared to other build systems.\n[0] https://en.cppreference.com/cpp/utility/optional\n[1] https://en.cppreference.com/cpp/utility/expected\n[2] https://0xghost.dev/blog/std-move-deep-dive/","parent_id":50423371,"replies_count":0,"hn_url":"https://news.ycombinator.com/item?id=50424551"},{"id":50433150,"author":"nly","created_at":"2026-11-09T22:24:56.000Z","text":"I write and review C++ all day every day.\nThe language has left a lot of people behind, and that's for the best. It's a different beast now","parent_id":50423371,"replies_count":0,"hn_url":"https://news.ycombinator.com/item?id=50433150"},{"id":50424002,"author":"adg001","created_at":"2026-11-09T11:09:30.000Z","text":"I never enjoyed programming in C++. I feel its (original) syntax and approach to OOP to be obnoxious. I never looked into C++11, though; I hope things improved. The first love was always for C; notwithstanding all its shortcomings, I feel at home writing C, and I would still enjoy doing so.","parent_id":50423371,"replies_count":0,"hn_url":"https://news.ycombinator.com/item?id=50424002"},{"id":50423995,"author":"cjfd","created_at":"2026-11-09T11:08:26.000Z","text":"I like coding in C++ a lot. I think it is great that it can both be a high level language an a low level one. One has control of the bits if one wants that but there are also a lot of goodies to make things happen automatically. I think RAII is the greatest invention in programming ever.","parent_id":50423371,"replies_count":0,"hn_url":"https://news.ycombinator.com/item?id=50423995"},{"id":50423838,"author":"pjmlp","created_at":"2026-11-09T10:48:33.000Z","text":"Yes, on side projects where I get to use concepts or modules, or even ranges.\nLanguages like C++, Scala, Haskell, is where I get the most fun coding, unfortunately the question can be reformulated as \"Do you still enjoy coding?\", as we get pushed to program into natural languages instead.","parent_id":50423371,"replies_count":0,"hn_url":"https://news.ycombinator.com/item?id=50423838"},{"id":50423819,"author":"ketzu","created_at":"2026-11-09T10:46:20.000Z","text":"I really enjoyed writing C++. At least the C++ with for loops, calling functions and the sort. Not so much the c++ of template specifications. I recently saw [1] and the point of C++ building new things with the template mechanics really resonated with me. Features built that way stopped me from using the part of C++ I really liked.\nHowever, I stopped writing C++ once I switched to Rust. I assume I would still enjoy writing C++, as long as I can avoid a lot of the templating features. (I might have a different opinion if I worked on different kinds of C++ projects, eg more people, more library oriented, etc.)\n[1] https://www.youtube.com/watch?v=DZTkT1Cq_aY","parent_id":50423371,"replies_count":0,"hn_url":"https://news.ycombinator.com/item?id=50423819"},{"id":50433360,"author":"ToyKeeper","created_at":"2026-11-09T22:44:31.000Z","text":"I like C. C is great.\nWhen things get too complex for C, that's where C++ should be used... but I'd generally rather use something else instead. A lot of languages have been created to avoid using C++. Take your pick.","parent_id":50423371,"replies_count":0,"hn_url":"https://news.ycombinator.com/item?id=50433360"},{"id":50426709,"author":"beej71","created_at":"2026-11-09T15:09:46.000Z","text":"I can't claim to have ever liked it, sadly, as much as I like C. The language has a significant number of footguns (the FAQ is unbelievably expansive and would require superhuman effort to internalize).\nBut really it's the error messages. I remember them being awful in the early 90s, and they're still awful today. It is an inevitable comment from students who hadn't yet been exposed to it.\nI'd greenfield in Rust over C++ every time today, especially with LLMs involved. If I'm going to have slow compiles, I might as well get as much proof of correctness from the compiler as I can.","parent_id":50423371,"replies_count":0,"hn_url":"https://news.ycombinator.com/item?id=50426709"}]}