5

Kinda often, the ecosystem around C/C++ kinda sucks

Compilers will give you hieroglyphs instead of readable errors.
Including a separate library, or a code generator, into your project is generally hell on earth to set up.
The language server often needs several seconds to come up with suggestions, some of which are complete nonsense.
The language itself lacks many basic features. C++20 will give us so many fancy things but we still can't convert an enum to a string.

I've programmed in C# and lately in Rust, and damn the developer experience there is just so much nicer overall.

Comments
  • 4
    Wait till you try Conan package manager.

    It's hell on earth for anything non-trivial...
  • 2
    @atheist is it better or worse than cmake?
  • 5
    @LotsOfCaffeine ahahaha

    hahahaha

    haha

    Worse.
  • 2
    ecosystem around C is perfect, compiler errors not just readable, they are also understandable

    cmake is not a part of that ecosystem, learn to write makefiles youself

    also you are talking about C++/C#/Rust ecosystem, nothing about C ecosystem
  • 2
    @bvs23bkv33 makefiles are meh, and not portable
    That's why most of what I've encountered uses cmake.

    Not sure what you mean with Rust and C#?
    Completely different story and 10 times nicer to work with compared C and C++ in terms of the build system and tooling
  • 1
    CMake is awful. You really should avoid it.
  • 1
    I've always felt this way for C++, I cannot speak for C since that is honestly a completely different beast and someone like @Fast-Nop can provide more detail.

    But: Configuring anything in c++ is usually a pain, I dabble in game development, and while some things like RayLib are easier to setup, others are not, I consider this to be more of a newbie issue than a language issue per se, but still, there are 30 million ways of doing things in c++, even depending on ide(my main being VS since it is the standard for game dev, i do like VS tho, hate me)

    Compiler errors have come a long way and they are more readable now e.g now you actually get proper messages for constexpr issues, curly braces, shit like that, anything higher than that and you might need some more reading.

    Rust is excellent in that the language learned many of the things that went wrong with c++ in terms of packages etc, but cargo reminds me of npm
  • 2
    @AleCx04 and regarding enums to strings, man I get you, in Rust this is trivial, in c++ you have things like an anon lookup table among other goodies, but still, shit breaks when you don't deal with continuous enums, which might be a pain point depending on your use case scenario.

    It ain't perfect, but I still like my c++. Wouldn't mind if Rust catches up, but at least for game development, we touch on the realm of unsafe code very freaking often, which makes me think that Rust might not be suitable for it at this stage. The language sure is nice tho, and maybe i am wrong.

    Don't come at me mane, I am mostly a web dev and data analyst that is trying to make his way into more low level stuff.
  • 3
    also, no one likes cmake, or makefiles for that matter.
  • 1
    @AleCx04 What type of game dev are you doing? Details!
  • 0
    @AleCx04 what are you doing that you need to touch unsafe for game dev?

    I know that the raylib-rs lib wraps everything in a safe, rust-like manner. Buuuuut it's still on raylib 3.5 and the library is not well maintained. Ive actually wanted to make a similar wrapper for the latest raylib release myself but I haven't gotten far with it yet.

    What kinda game(s) are you making, if its okay to ask?
  • 0
    @Root do you recommend anything over cmake?

    The stuff I've worked with all used cmake (95% of which was C++, not C) with like a few exceptions using autoconf of maybe meson.
  • 2
    @AleCx04 about cargo vs npm. They share a similar concept, but I think it's up to the developers to avoid another pad-left situation.

    I like that with cargo you can just use a directory path to a package and use a git submodule instead of crates io, which is something I generally prefer. Especially at work, when integrating a foss tool into our software, which is generally avoided, we always mirror that software's repo on our local git server and use that to build it. That way even if the original repo is gone we can still work with it.
  • 1
    @LotsOfCaffeine At the risk of sounding stubborn or pedantic, plain Make is enough.

    I’d tag @FrodoSwaggins as that is one of his strong stances, but :<
    I really miss him.
  • 1
    @Root I can gladly say that I have never written a makefile manually.

    It seems a bit simpler than using cmake, to be fair.

    Of course it all breaks if someone goes "but we wanna build on windows too". Although this shouldn't really happen in my field (embedded), hopefully.
  • 0
    @LotsOfCaffeine Why would it break? You can write cross-platform makefiles. It’s a bit more involved, sure, but it’s mostly just tedious.
  • 3
    @Root proof of concept at this point in time, but I am trying to generate a 3d environment in which I can manipulate items in real time with Pico Lisp.

    That in itself is a pretty big project of mine, which is currently on research stage.

    Other than that: bunch of retarded platformers using raylib to play around with neural nets. They do have sprites tho! a friend helped me make them.
  • 4
    @LotsOfCaffeine One of them is sort of a big hobby project of mine: I am trying to generate an environment, 3d in nature that I can manipulate in real time with a Lisp dialect known as Pico Lisp. The other "games" that I have are basic platformers that I use to fuck around with ML, very basic in nature, but from my own design.

    And concerning what is unsafe: everything that I write in c++ is unsafe.....i am not good at c++
  • 1
    @AleCx04 C++? I thought you were doing rust

    @Root personally I've never seen plain makefiles on windows, but maybe that's just my limited experience
  • 0
    @LotsOfCaffeine no homie, I did mentioned Rust, as in I wish Rust would catch up to the C++ ecosystem.
  • 2
    @AleCx04 I’m (trying to find the time to) learn the new tools. Focusing on Godot right now. I’ll probably pick up Blender too.

    Everything is so different :)
  • 1
    Sigh I gotta get into gaming development, been playing throughout most my life lol. Totally hooked on Elden Ring with my strength and dex build (I love my spammy spear stab stab stab lol)
  • 2
    @TeachMeCode Breath of the Wild, Elden Ring. You sir.....have......amazing and great taste in games. Salut
  • 2
    @Root it iiiiis, and godot is amazing. They really hit the ball out of the park with that engine, that is why i want to learn more about engine type development
  • 3
    @AleCx04 I’m excited for Godot 4.0

    They’re finally adding features that I built into my engines in high school 😅

    More seriously though, it’s a huge improvement.
  • 0
    @AleCx04 in what aspects should it "catch up"?

    I haven't worked much with Rust, but to me it seemed a lot better, solely because it's much easier to use and maintain.

    But again, thats just my limited experience
  • 0
    @LotsOfCaffeine on everything really, ever heard of any AAA games built in Rust? what about big indie games? what about famous game engines or libraries? Game Engines, big ones, not small github projects. Documentation? forums? examples?

    Traction, docs, and community usage matter my g
  • 0
    @AleCx04 well game dev ain't everything

    There are projects out there, godot has a wrapper I believe and there's a (outdated one) for raylib.

    Of course rust is a young language and ecosystem, so naturally there's less projects out there.
    It has a lot of traction, though I'm not sold on the "(re)make everything in rust!" kind of attitude.

    In terms of user friendliness I think its great, the compiler, the std lib, the docs and cargo.

    But the linux kernel is considering using it as a second language so I think also speaks for itself.
  • 0
    @LotsOfCaffeine I didn't say it is everything, just that it is one section in which I wish it would be more prevalent since there are a looooot of good things happening in Rust, a lot of great ideas that were implemented from the get go rather than through language evolution (as in C++)

    And while there are libraries out there, they are still a far cry from the ecosystem that we currently have in c++, but only time will tell if they get better and better from the Rust side, hopefully, I really like Rust.
  • 0
    @AleCx04 the number one worst thing about elden ring is malekith. Possibly the worst most broken boss I’ve ever faced! If you want to know what it’s like being an obese housecat with a broken leg facing a giant magical tiger on steroids, this broken ass boss battle has everything you need
  • 0
    Actually fuck Elden ring! The fucking Hoarah loux wwe bullshit boss is fucking cheap as hell. I swear the end game is way too difficult and for that I’m deleting my save file when I’m done with this shitty cheap ass game
Add Comment