• 0 Posts
  • 100 Comments
Joined 1 year ago
cake
Cake day: June 12th, 2023

help-circle

  • If you’re hobby programming then do whatever you want obviously but if you’re part of some sort of larger project that’s trying to decide between Rust and C++ then subjective aesthetic arguments probably aren’t going to be considered as heavily as technical ones (and rightfully so), which in Rusts case could be that certain classes of bugs are impossible. That’s not to say that it’s not possible to make a technical case for C++ over rust but syntax preferences probably aren’t going to play a large role in how widely used either languages are, which is good.













  • It’s weird to have something that verbose for using in the shell. I don’t want to use verbose commands when just doing stuff interactively, so I never learn how to really use its features as a concequence. Bash, while it has more footguns, is more readable to me because I’m more familiar with the individual commands. For most programing you spend more time reading it than writing it, but that’s not the case for the shell so there it’s the wrong tradeoff imo.





  • This might not be what you mean when you say “addictive”, but since I’ve been addicted to it for the last half year or so, I’m gonna suggest it anyway: Morrowind.

    While the original came out in 2002 for Windows and later Xbox, there’s been a fan remake of the engine which runs on linux (and windows and macos) called OpenMW.

    It’s an open world role playing game about exploring the island of Vvardenfell, which is a strange and alien place that’s easy to lose yourself in. Most of the wildlife is made up of insect- or dinosaur like creatures. There are forests made up of giant mushrooms, and ancient wizard lords who use magic to grow mushrooms into buildings that you have to be able to fly to navigate. It’s a world with a rich history, featuring several different religions, cultures and overlapping and competing political structures.

    Despite its age, it is to this day a game with a very active modding community which can extend and improve the games mechanics and visuals. It also features what is probably the longest running active modding project, Tamriel rebuilt which seeks to add the rest of the province of Morrowind to the game. It’s about half way done and has basically another game worth of content in it at this point.


  • Since the diffs are tree-sitter based, it’s interesting to think about what a tree-sitter based patch would look like. Probably wouldn’t double as a human and computer friendly format like normals diffs. I suppose that you could create patches that are more robust to the source code changing since it wouldn’t care about linebreaks and maybe you could have it so it doesn’t care if you move code around since you could have it so its going by e.g. what the parent function is and not the line number. I gotta wonder how useful that actually is though.


  • There is a lot of fanboying in discussions like these, so I understand if you’re weary of that. That said I don’t think static analysis tools are a very good point of comparison for (what I’m assuming that you’re referring to) Rusts ownership system.

    While static analysis tools certainly can be useful for some classes of errors, there are types of errors that they can’t catch that the borrowchecker can. This is because the language are built around them in Rust. Rusts lifetime analysis is dependent on the user adding lifetime annotations in certain situations, so since c++ doesn’t have these annotations static analysis tools for c++ can’t benefit from the information these annotations provide.

    Furthermore, c++ suffers from being an old language with a lot of features. Legacy features can allow for various loopholes that are hard for a static analysis tool to reason about.

    C++ static analysis tools can find errors, but Rusts borrowchecker can prove the absence of errors modulo unsafe code.

    That said, I don’t have any good data on how much of a problem this is in practice. Modern c++ with a CI-pipeline doing static analysis and forbidding certain footguns is safe enough for most contexts. Personally, I’m exited about Rust more because I think that it’s a nicely designed language than because of its safety guarantees, but it doesn’t really have the ecosystem support for a lot of things, like gamedev or ui at the moment.