• 1 Post
  • 452 Comments
Joined 3 years ago
cake
Cake day: August 19th, 2023

help-circle





  • I never understand why you wouldn’t want to read the code. I prevent a massive amount of correct slop by just skimming. The LLM will 10 times out of 10 never ask “this code will be a massive duplication of exact same behavior, do you want to refractor it?” because it’s trained to finish a task without asking if possible.

    Uncle Bob now writes code for his tests instead of tests for his code. I know it’s TDD but it always seemed backwards to me.

    Unit tests for logic, integration tests for outside apis, e2e for features is the sweet spot IMO.





  • To add to the Forgejo circlejerk you can also self host it. It’s managed by a democratic non-profit and has very active development. The UI is also pleasant to look at with nice diff/PR views.

    The self hosting thing is a major safety point since if forgejo somehow fails in 10 years (I think it will be dominant in 10 personally) you can move to a self hosted instance with self hosted action runners. This makes it safe to move company accounts onto it but you might have issues with hard github dependency such as the github API or other organisation features.

    Forgejo should be the first choice when looking for alternatives, although enterprise size companies should also consider Gitlab.


  • I mean, gdscript in godot is very nice and convenient. It offloads a lot of the heavy labor to the engine already and is very well optimised. If you need more speed and type safety C# is the logical next step. C# is very convenient and easy to pick up if you already know Typescript for being a strict language.

    Also the guy’s criticism of C++ is basically that nothing is bundled in and keeping libraries compatible with each other is a PhD level activity. The packages are also allowed to fuck with your code with macros, preprocessing directives etc. on top of being written in a non-compatible standard where they only provide a compiled binary with an ABI instead of giving you the source. Updating dependencies becomes a massive pain also because of the same reason since it can so easily break everything without any reasonable stack trace. You might say “Ok whatever, I’ll just preprocess my C++ and rename all by variables” but dependencies can also break other dependencies with macros so there’s no escape. One dep updates, another one breaks in an 100% unrelated part of the program.

    But for a reasonably sized project where C++ dependencies are already handled by Godot it’s not that bad. Especially if you’re the only developer or have at least good codebase standards on what parts of C++ you will use. I’ve personally not had any issues programming in C++ but that’s probably because I’ve never done anything at any scale whatsoever.

    I don’t have a strong opinion on lower level languages since I work in garbage collected languages but I’ve heard good things about Zig, heard Rust in slow-mo development with a steep learning curve but very robust, C is nice and simple but lacks modern features.

    TL;DR C++ devs would kill to get something like cargo in Rust, not because it’s a package manager but because it’s a standard for sharing code and managing compatability. If that’s not an issue for you C++ is a solid language like any other.