nacozarina a day ago

C++ is so bloated that every project must outlaw multiple parts of it from being used on their project. Using the whole language is an explicit antipattern.

Every project must colonize a valley of the language, declare a dialect, and bit-fiddle their own thing.

It might be a measure of popularity, but not of unity.

  • jcelerier 2 hours ago

    > Every project must colonize a valley of the language, declare a dialect, and bit-fiddle their own thing.

    this is really not true in my experience. I don't remember last time I worked a project which outright banned specific C++ features or had a "dialect".

  • estimator7292 a day ago

    That's how all programming languages work. Have you used 100% of the features in any language you've used? Ever?

    • smeeagain2 a day ago

      Hell, look at Rust. Try bootstrapping that POS with verbose logging enabled, and watch the screenfuls of command line options scrolling by for every source file in the giant multi hour compile. It's got 30 years of cruft packed into a "new" language. Just think of how ridiculously complex it would become after an actual 30 years of real world use. That's the garbage you want me to replace C or C++ with? LOL

      C++ sucks, but I'll take it over Rust any day.

      • pornel a day ago

        Bootstrapping of the rustc compiler from scratch is a very different experience than using the language as a user. Bootstrapping requires building a C++ mrustc proto-compiler, which is where the tons of flags are needed. The rustc compiler has a custom multi-stage build system to make it and its standard library built with itself, which multiplies the time it takes. It's designed to be consistent and optimized, since most users download a pre-built binary.

        However, once you bootstrap it (or willing to trust someone who did), it's a breeze to build Rust projects with Cargo: `cargo build` just works with no extra flags for the majority of projects. The only finicky builds are ones that rely on C or C++ deps.

        • smeeagain2 20 hours ago

          > Bootstrapping of the rustc compiler from scratch is a very different experience than using the language as a user.

          And...? I'm the distro maintainer. I'm the guy who sees all the underlying ugliness that the idiot user ignores and pretends doesn't exist. Without even using the language I can already tell you it's garbage, just by going through the bootstrap process.

          When it takes an entire screen full of bizarre command line arguments to compile every single source file, on a language that's supposedly fresh and new, someone is being played for a fool and it isn't me. Not even C is that crufty, and it's ancient.

          Sorry, not interested in believing in fairy tales or subjecting myself to self-abuse. I'll stick with good ole C, thanks.

          • pornel 17 hours ago

            You're harshly judging the entire language based on ease of compiling a 3rd party C++ compiler and the C11 code it emits. These gnarly build commands don't even come from the Rust project, and aren't using the Rust language.

            (I assume you use mrustc, and you're not going the masochist route of recreating all the development steps starting from a 15-year-old Ocaml-based prototype of a language that wasn't Rust yet).

            It's fair to say that bootstrapping of Rust sucks. It really does. The non-Rust bootstrap compiler doesn't get even a fraction of the polish that rustc and Cargo get. But it's not representative of how Rust and Cargo work for basically everyone in the world except you (and a couple of other maintainers who chose to do an independent bootstrap from scratch). Bootstrapping is a one-off pain, and then building Rust with a Rust-based compiler is nice and easy.

            It'd be nice to have a cleaner bootstrap story for Rust, but it will take a while (waiting for gccrs C++ reimplementation to advance enough to replace mrustc).

            • smeeagain2 17 hours ago

              When you Rust rocket scientists have succeeded in producing your own replacement for LLVM, or for GCC--the C++ components that, far from replacing, you absolutely depend on--then maybe someone will take your Very Broken language seriously as a serious systems programming language. That someone won't be me however. The future isn't Rust.

              • pornel 4 hours ago

                There is a cranelift backend written in Rust.

                Rust is pragmatic about its implementation. The goal isn't some ideological purity (despite the reputation Rust has), but to empower users to make safe and efficient systems software. LLVM works well for that, so replacing it isn't a priority. The cranelift backend exists to make debug builds faster.

          • sheepscreek 15 hours ago

            > I'm the guy who sees all the underlying ugliness that the idiot user ignores and pretends doesn't What’s with all the hate against the end users?

            “idiot end user”?

            Why sign up to be a maintainer when you think so highly of the end user.

            • smeeagain2 15 hours ago

              The distro is built for my own purposes, and for other Linux experts who are deemed worthy of using it, i.e. not the common idiot on the street. For those people I recommend Microsoft/Redhat/Ubuntu (but I repeat myself) along with an unpatched Chrome or Firefox.

      • ahartmetz a day ago

        Yeah, no. That is not a fair description of Rust. It's got far fewer mistakes than C++ and, get this, it has a mechanism for tentative features that can get revised and fixed based on usage experience. It doesn't always work especially for far-reaching decisions (I hear that async is considered problematic), but it prevents a lot of stupid mistakes that C++ is carrying along forever - with a few exceptions (e.g. garbage collection support, extern templates) and some very notable inclusions (the kind of botched module system, suboptimal unordered_map, std::string which is more of a byte/word array).

        I like C++ because I like the fairly unique high performance low level feature set, not because I particularly like most of the detailed design decisions that went into it. Rust has the same goals, but is better thought out IMO. I'm sure that I will find some more trouble in Rust as I use it more, but so far the impression is quite good. I have become pretty good at writing C++ code that works after fixing one or two stupid bugs, and that works even better in Rust, mostly without the stupid bugs because you can't forget to null-check a pointer to another subsystem while starting up etc.

        • smeeagain2 a day ago

          You'll learn. One way or another, you'll learn.

          My description of the red herring that is Rust stands as written.

          I also wasn't a fan of Python or Javascript back in the day, for very sound reasons that your type will always just brush away as meaningless, yet in time these languages have proven to be just as flawed as I always knew they were. And yes, C++ is garbage too, as I've also understood, but you don't want to hear me when I tell you Rust is NOT any kind of solution.

          In fact it's a great big joke that is obvious with the least bit of actual analysis. Question: Rust is built on top of LLVM, which is written in which language? ___. Fill in the blank. Hint: it's the language that is supposedly going to be replaced by Rust. lol.

          Rust, the language that is so obviously great the only way to put it everywhere is to force it on people; force it into the kernel against big objections from smart engineers, force it into the browser with the power of Google, force it into the heart of Mesa through writing a critical component in it, etc.

          Sort of like systemd, right? So obviously great that people have to be forced to use it, until the old guard has died off or been silenced and all that's left is the brainwashed youth who never knew anything different. Same old tactics the liars and crooks always used to force their garbage down on people and make them think it was their own idea.

          Always the herd marches in the direction its owners desire, while each individual creature thinks "his" ideas are truly his own and he himself decided which direction he is to travel in.

          I've long had the experience of people "suddenly beginning to discover" things I clearly understood on day one, decades ago. I've also long had the experience of never being given any credit for my actual understanding, instead constantly being told I'm wrong, stupid, have no idea what I'm talking about, blah blah. This is exactly why I don't spend much time hanging out with the hoi polloi anymore. (You Are Here.)

          • vacuity a day ago

            You're naming and lambasting multiple different technologies and their communities without justifying why they are so bad. Few people use C without knowing about the threat of buffer overflows or invalid pointer dereferences, and C can be used productively in spite of these obvious flaws. Instead of trying to drive people away from what they do, if you seek understanding then you should allow others to justify their reasons. If you only test your understanding against your understanding, you're not making an assessment at all. You can find and talk to many smart people here and elsewhere, if you so desire.

            • smeeagain2 20 hours ago

              > You can find and talk to many smart people here and elsewhere, if you so desire.

              Yeah, and you find can smart people on Reddit too. Problem is the low density of intellect in both places.

          • spoiler a day ago

            You're saying "force into this and that" like there's some evil omnipotent entity compelling people to write Rust against their own free will lol. What do you mean by forced? People enjoy writing Rust, so hence it's being written in other projects.

            Saying LLVM is written in C++ doesn't really bring much to the discussion. It was released 25 years ago, and C++ was released 40 years ago (hey, it's older than me lol). Rust was released like 10 years ago. So, yeah... I guess it makes sense that they used C++ back then? I'd have picked C++ back then too.

            I've written C++ for about 15 years, and I don't have a blind hatred for the languge, but going back to it doesn't fill me with joy either, especially after having written Rust for the past few years.

            The module system is more intuitive to use than the preprocessing file concatenation. There's also a nice package manager. I know some people find this a downside though, but I prefer it to fighting autoconf or CMake.

            Syntax highlighting for Rust code doesn't lag 10+ seconds.

            Symbol search doesn't require three different third-party tools to work.

            Documentation is built in AND nice (no doxy doesn't count as nice, not in any universe).

            Testing is built in. There's a (mostly) homogeneous build system

            The borrowing rules are things you think about in C++ anyway, but Rust just makes it so you don't forget them; there's some clang lints that help with this in C++ anyway.

            The syntax, while sometimes a bit noisy, is nicer in the average case, but C++ has been getting better in that regard.

            There's much fewer API gotchas with Rust than with C++ (from the top of my head: closures, std::optional, std::variant, iterators, {a..z}values, a managerie of constructors, SFINAE, all these things have pain in the ass built in as a core principle). I also despise function overloading.

            The macro system, while I don't like it too much in Rust, makes things

            The type system in Rust is so much better it's not even comparable.

            But anyway, Rust has some downsides. It requires you to change how you design solution sometimes. The compilation times are crap (but the compilers also does so much).

            • smeeagain2 20 hours ago

              > You're saying "force into this and that" like there's some evil omnipotent entity compelling people to write Rust against their own free will lol.

              No, I'm saying that you never had free will to begin with. It was always an illusion. Read Brave New World. You have never been in control of anything. You do the things you do, support the things you support, and buy the things you buy because you were told to do so. Very little to nothing of what you do was your own actual original idea. I don't care what kind of creative genius you imagine yourself to be; I know how you've been controlled your entire life by your media owners.

              Rust "has some downsides"? In point of fact it is complete garbage. A joke of a language, that is in no way a suitable replacement for C or C++. This is what I'm trying to point out to you.

              It's a joke in exactly the same way Tesla's Cybertruck is a joke. You think that is a real product, that is really meant to be successful? You call me a troll? The Cybertruck was and is a giant troll. I'm just telling you the unvarnished truth.

              Can you really think of NO way in which every single programming language in existence today, including Rust, Zig, and everything else, can be described as total garbage? No? Well then maybe you need to step into the nearest cryo pod.

              After you wake up in 100 years, look around and see if anything has improved. Yes? You see some kind of improvement in the status quo? Nobody's using Rust anymore, and in fact have long forgotten about it? Well then. I guess that means some other people must have had greater vision than you of what the future will hold, yes?

              • ReflectedImage 17 hours ago

                The military isn't going to allow C++ anymore due to it being a massive security hazard. You can't get away with buffer overflows, use after frees, data races, etc. forever.

                Due to an evil entity called the military industrial complex, you are going to be using Rust in the future.

                • smeeagain2 17 hours ago

                  No, son, I really won't. And yes, I am glad we are agreed that the military industrial complex is evil and should not be supported in anything.

                  • ReflectedImage 16 hours ago

                    Well it's in Windows, Linux and Mac OS kernels. So you moving into Retro computing?

                    • smeeagain2 15 hours ago

                      No, I just forked the last sane Linux kernel, because I was tired of the bugs and instability in 5.x and beyond. See, I like stable systems, not giant piles of increasingly complex garbage "maintained" by maniacs.

    • Bridged7756 a day ago

      It's not the same though. The breadth is wildly different. In the case of things like JavaScript, C, or Go it can be said that you use -most of it- in a day to day to basis, sure, not the most magic, deep crap, but not the same can be said about C#, Rust, C++ etc on which you have a lot of features simply not used.

      • pornel a day ago

        Rust hasn't grown 17 ways to initialize a variable yet. Most projects use most features.

        When projects choose a subset of language features, it's dictated by their needs (like embedded programs disabling the standard library, or safety-critical libraries forbidding "unsafe" code out of caution). There are some people who vocally hate async, but their complaint is usually that everyone uses async even where it's unnecessary (meaning that it actually has very broad adoption).

        This feels very different than having an unwanted C subset, some '98 features that were replaced in '11 and '13, with fixes for them in '20 and '26 and then projects taking years to settle on a new baseline, and still bickering whether exceptions may be allowed or not.

        Rust has "editions" that let new projects disable old misfeatures (which it hasn't got many yet). Rust ecosystem is fully on board with the latest version.

    • mrheosuper 11 hours ago

      not close to 100%, but i think i can say i ultilize most of feature of C, must more than C++.

    • pyuser583 17 hours ago

      As a Python dev, I really hate the whole “Pythonic” idea. There isn’t just one way to do this.

  • psyclobe a day ago

    Honestly... who cares? The dictionary is pretty thick, but I still speak English without much trouble.

  • nitwit005 a day ago

    Open up an old Java code base, and your IDE will tell you to refactoring tons of code, as it was written in an old way it thinks you shouldn't use anymore, uses deprecated classes, etc.

    Javascript is even more dramatic, where it will tell you to fix every single variable declaration, as people decided "var" was a mistake, and there is a whole new way of defining classes.

    • spoiler a day ago

      Var wasn't "a mistake", and there's still (albeit niche) use cases where var makes sense. But for most cases, you do want to write a let/const declaration, even though they're not "free" technically.

  • sidewndr46 a day ago

    I normally disagree with such broad remarks, but in the case of C++ I agree. I sometimes see a less common feature of Python used and have to remind myself of the syntax and its usage. With C++, I start any project with the idea that I will only use a small subset of the available features. When I review other's code I pretty much need a language reference available at all times until I can settle into their particular flavor of C++

  • emigre a day ago

    I wonder if a subset of the language could be formalized, as some kind of opt-in decision. Like when TSR divided Dungeons & Dragons into D&D and AD&D...

  • steve1977 a day ago

    > It might be a measure of popularity, but not of unity.

    Neither of which are great measures probably. What about usefulness?

  • i_am_a_peasant a day ago

    to this day i don’t know what people mean by “features”.

    Lambdas are nice to have, just don’t nest them more than once.

    I kinda wish things like std::variant had shorter syntax.

    if anything i’m not a fan of c++ introducing language features as long verbose functions than to confidently make it an operator or a keyword.

rzerowan a day ago

Yeah C++ isnt going away anytime soon - its not even in the COBOL phase of its lifetime despite the rise of Rust/Go as systems languages.

However it would be imperative for a push such as Carbon[1] to be similar to the kotlin to Java. A modernisation that simplifies , maintains backwards/forwards compatibility and reuses established libraries and tooling.

This however will need a entity that can champion and push it forward with a strong enough project to anchor it in the mainstream.The transitions are doable ,like Android dev from plain java to kotlin , or in OSX moving from Objective-C to Swift.

Additionally borrowing a robust batteries type standard library to reduce the sprawl of coding options and funnel greenfield projects into best practices and less boilerplate.

[1] https://www.infoworld.com/article/2337225/beyond-c-the-promi...

  • smw 9 hours ago

    I think most people wouldn't call Go a systems language? Generally garbage collection lack of explicit memory access would put a language outside the category? Hard to write a device driver, for instance.

    • rzerowan 4 hours ago

      True although there is Ocaml which has been used in OS/driver/Hypervisor development while also having a GC. I always thought the Go equivalents would have perfomance at parity - but never reallyseen that realised so far.

12_throw_away a day ago

Well, if the chair of the C++ standards committee truly believes that C++ has no serious safety issues, it certainly explains why safety proposals have gone nowhere and "profiles" remain vaporware.

raccoonhands 17 hours ago

i personally enjoy it because i just think it's a blast to write and typically understandable and explicit in its language.

with the caveat that i know it could be better. at this point i just think it's simpler than some of the stuff out there from a 'whats happening underneath the hood' perspective

norir a day ago

This is weirdly confident and defensive at the same time. If c++ is so great, why does it need to be so ardently defended and its very obvious problems handwaved away?

I take a very different view about the trajectory of languages given the current trends in software development. The more people rely upon agentic coding processes, the more they will demand faster compilation which will increasingly become a significant bottleneck on product velocity. The faster the llms get, the more important it is for the tools they use to be fast. Right now, I still think we are in an uncanny valley where llms are still slow enough that slow tooling does not seem that bad, but this is likely to change. People will no longer be satisfied asking their agent to make a change and come back in a minute or an hour. They will expect the result nearly instantaneously. C++ (and rust) compile times are too slow for the agent to iterate in the human reaction window so I believe that one of two things will happen over the next few years: llm progress will stall out or c++ and rust will nosedive in popularity.

  • hu3 a day ago

    If [language] is so great, why does it need to be so ardently defended and its very obvious problems handwaved away?

    Every language popular enough is like that.

ramon156 a day ago

All the following statements can live without colliding.

- The current CPP version is extremely bloated

- CPP is not going away anytime soon

- The rise of Rust/Go/Zig is not fighting for CPP's seat

- You can target CPP code using any of these aforementioned languages

- Rust has never claimed to be "safer", it just makes it harder to write unsafe code

  • IshKebab a day ago

    > Rust/Go/Zig are not fighting for C++'s seat

    Of course they are. Go less so, and Zig is really aiming for C. Rust is definitely meant to be a better alternative to C++.

    > Rust has never claimed to be "safer"...

    What? Of course it has (or Rust developers have; a language can't claim anything). And it is much safer.

helltone a day ago

Is there anything like a linter to force you to stay within some subset of c++? I like the language, but it is hard to avoid language constructs that are outdated or enforce a single (or a few) ways of doing things. A c++ subset could be nice.

pornel a day ago

Growth of CUDA gave it a second chance.

  • deeznuttynutz a day ago

    I guess TPUs and JAX give it a third chance, and maybe MLX a fourth, lmao.

paperplaneflyr 2 days ago

So C, C++, and Rust programmers will be in demand, and other languages will shrink? Does this also relate to rising DRAM costs, which will make memory-efficient code more usable as we head into an unseen future?

  • estimator7292 a day ago

    The costs of hardware will take a long time to percolate up to software architecture, if they ever do.

    Until current computers cycle out, people will largely keep their 1-3 year old machine with sane amounts of memory. If we start seeing large numbers of machines in the wild with 4GB of memory, then maybe software will adapt. But that won't be for several years yet.

  • RadiozRadioz a day ago

    It definitely doesn't relate, the time horizon is wrong. The software needs much longer to change, and that change needs much longer to appear in the job market. Compared to the timeframe in the article DRAM prices have only just spiked up now.

    Projecting into the future, hardware expenses have always been dwarfed by salaries. I don't expect that will change enough for it to be noticeable.

singularity2001 a day ago

A subset of the language keeps getting better and better you just need to ignore the demon of many decades of bloated nonsense. So for new projects it can even be pleasant until you run into something that makes you wanna go rust

  • smeeagain2 a day ago

    I like my OS how I like my cars: rust free.

    • ReflectedImage 17 hours ago

      Have you heard of Microsoft's C++ elimination plan? They are building an LLM based transpiler that automatically turns all C++ code into Rust. In a couple of years, there won't be a single line of C++ left... Isn't that wonderful?

      • smeeagain2 17 hours ago

        Yes, and I'm sure they and all their customers will live happily ever after. Finally Microsoft will have reliable software that isn't complete trash. Pigs will fly also, I believe.

        • ReflectedImage 17 hours ago

          Yep, not a single line left. Retired quicker than COBOL. Won't even be any maintenance jobs for legacy systems left.

          • smeeagain2 15 hours ago

            So are they going to magically convert all the COBOL code over also, with their magic conversion system thingy?

            I'm sure this conversation is headed in an academically fascinating direction, but I struggle to see what relevance any of it has to me. I don't use any of Microsoft's worthless software and never will. I'm self employed and use exactly the technology that I choose to use and nothing more. Why on earth would I be concerned about legacy programming jobs going away? Is that something that you concern yourself with?

            I'm guessing you're a common wage slave? Tell me more about what it's like having your entire life planned and controlled by other people, with no hope of any kind of real freedom. Sounds like a miserable way to live. Sounds like slavery.

            • ReflectedImage 8 hours ago

              Well I don't think anyone would pay for the COBOL to Java conversion software.

              Since it's no longer New Years Eve, I'm a bit more sober :p

              Programming language to programming language conversions seems to be one of the things LLMs are actually good at. Whether they can actually do it or not is an open question.

              CEOs will mandate security so the CSOs will mandate Rust over C/C++ and so Rust will slowly take over C++ in next 20 years. Can't see anything in C++'s defense other than it's legacy. The drawback of sticking every feature from every language into your language is that it becomes a massive security hazard.

              huh? I'm currently at $1500 Monthly Recurring Revenue, so I'm currently between seeing if I can increase that or if need to get a job. I'll find out in a couple of months.

              • smeeagain2 6 hours ago

                > CEOs will mandate security so the CSOs will mandate Rust over C/C++ and so Rust will slowly take over C++ in next 20 years. Can't see anything in C++'s defense other than it's legacy. The drawback of sticking every feature from every language into your language is that it becomes a massive security hazard.

                Yes, all this is true, but there's a giant invisible elephant in the room that will disrupt this plan:

                With my language I can import every line of C/C++, from the entire system, then refactor it all with the click of a button. Someone in another thread mentioned how terrible strcpy() is. Why not just remove that function from the entire system and refactor every package using it, with a single command, instantly?

                Rust can't do anything like this, nor can any other systems programming languages that we know of. That's one of several reasons why Rust isn't really a replacement for C/C++, regardless of who is writing what script for which politician/CEO. It is at best a tiny incremental improvement, not a revolution.

                Happy New Year. May your business be a success despite the hurricane-strength headwinds we now face.

    • vovavili a day ago

      I guess you'll be stuck using something like Plan 9 then.

      • smeeagain2 a day ago

        [flagged]

        • vovavili a day ago

          That is an extremely condescending, rude and arrogant response for a harmless comment. HN deserves better.

          • smeeagain2 6 hours ago

            Please, Einstein, tell us more about your armchair psychological analysis of my comments.

            Still waiting on that first guy to explain to me how his comment was entirely harmless and I'm the mean, terrible, bad guy for misinterpreting his intentions.

          • einsteinx2 6 hours ago

            This describes basically all their comments in this thread, which seems to be basically all their comments ever on this 3 day old seemingly troll account.

          • spoiler a day ago

            I found their comment hilarious... I can't tell if it's satire or not. There's just too much going on at the same time for this not to be trolling lol

jokoon a day ago

I am french, good C++ scores on senior tests, still out of a job

I lack a degree though

  • BoingBoomTschak a day ago

    Same city as you, same language. There's work but not much if you don't want to enter the consulting meat grinder.

    • jokoon 7 hours ago

      I am willing to enter the consulting meat grinder, if you have any tip

      I get regularly contacted my them, but they don't hire me

IshKebab a day ago

> in the past three years the global developer population grew about 50%, from just over 31 million to just over 47 million

That's not really plausible. Unfortunately this is all you get on the methodology:

> Our methodology is based on two main pillars. First, we make use of reliable sources of developer numbers or direct indicators of their activity. This includes the number of GitHub accounts, Stack Overflow accounts, and employment statistics from the USA and the European Union. Second, we rely on our Global Developer Survey data, where we directly measure developer activity. So far, we've run 29 waves of this large survey, and in each, we reach more than 10,000 developers globally. We combine these two main sources to derive our estimates.

Plenty of space for them to screw up I think.