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

help-circle



  • 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.




  • One thing that I think is missing from the equation is good video games journalism that covers indie games. Video game journalism has never been doing amazing but it’s practically dead now.

    Tying discovery to the same platform that you consume things on is really bad, because it always gives that distributor way to much power. Similar story with spotify, but journalism about underground music is at least in a slightly better place.


  • The problem is that when everyone is using their right to deny access to their works to make people give them money, and there is only so much money you can reasonably spend on entertainment and so on per month, people end up abstaining from a lot of things they could otherwise have taken part in for no extra cost.

    I think that the things we pirate have a value: music, movies and games have a value because they are cultural products and vulture is important, software like photoshop has a value because it is a useful tool. Putting up barriers to accessing these things means destroying this value. Having a system where the main way to make money of e.g. music is to paywall it has the “destruction” of a lot of value as its outcome. In some ways streaming platforms like spotify are better in this regard but then that means giving the platform a lot of power over music discovery for example. Spotify doesn’t really do a good job of paying its artists either which is its supposed ethical advantage over piracy.


  • I think that a system where we should abstain from things that are basically free to reproduce (i.e. things you can pirate) is dumb. There are many movies that I probably wouldn’t pay money to but that I’ve pirated. The companies that own the rights to the movie don’t lose any sale they would have otherwise made but I get whatever enjoyment I get from watching the movie at least, so it’s a net win.

    When I pay may bills at the end of the month I also put some money towards paying for things that I’ve pirated that I like, usually with a focus on smaller creators. It doesn’t really feel meaningful to pay for a marvel movie for example. It’s not really a perfect system but neither is artificially limiting the access to digital media.


  • 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.


  • There will be plenty of jobs in c++ in the foreseeable future, so it’s not a bad language to know from that perspective. I don’t know if it’s the most pedagogical language to learn otoh, python is a better language for getting comfortable with the basics, c is better when it comes to learning a (slightly wrong but close enough) mental model of how a computer works under the hood, and there are many better languages to learn if you want to learn good approaches to thinking about problems.

    Maybe you are leaning c++ because you want to work on something specific that c++ is primarily used in, and in that case go ahead with that project. I think having something tangible that you want to work on is great when it comes to learning programing and that’s worth more than picking the “best” language. Besides, you can always learn different languages later in your career if you want/have to.






  • Pair coding with vim is a skill in itself (for the vim user). You can make things a bit easier to follow by making liberal use of visual mode for example. I have a CoworkerMode command that turns on smooth scrolling via vim-smoothie and cursorline, and I’ve also added some stuff to the neovim right-click menu so that I can explicitly right click go to definition for example. It can be worth switching editor sometimes, but it’s not always worth it if you’re in the middle of something.