• 0 Posts
  • 5 Comments
Joined 1Y ago
cake
Cake day: Jun 12, 2023

help-circle
rss

He got upset that there was an X button making it look like he could remove the ads, but it didn’t remove the ads.


There are other rarely-used C+±like languages that fit your criteria, and they basically all aim to eliminate the kind of thing I was talking about. If someone was used to one of those and tried picking up C++ for the first time, they’d probably end up with working, but unnecessarily slow C++, having assumed the compiler would do a bunch of things for them that it actually wouldn’t.

The popular low-level systems programming languages that aren’t C++ are C and Rust. Neither is object-oriented. C programmers forced to use C++ tend to basically write C with a smattering of features that make it not compile with a C compiler, and produce a horror show that brings out the worst of both languages and looks nothing like C++ a C++ programmer would write, then write a blog post about how terrible C++ is because when they tried using it like C, it wasn’t as good at being C as C was. Rust programmers generally have past experience with C++, so tend to know how to use it properly, even if they hate the experience.


I’d say this is pretty dependent on the language. For example, with C++, you need to micromanage (or at least benefit from micromanaging) a lot of things that you can get away without knowing about at all with other languages. That stuff takes time to pick up if you’re self-teaching as you can write stuff that looks like it works without knowing its half as fast as it could be because you aren’t making use of move semantics, and if a colleague is teaching you, then that’s time they’re not spending directly doing their own work. On the other hand, someone with Typescript experience could write pretty decent Javascript from the get-go.


The legalese in the US (which might as well be everywhere as you need to have compatible copyright with the US to have a trade deal with the US, and your country is in trouble if it doesn’t have a trade deal with the US) is basically that:

  • If you buy a physical copy, you’ve become the owner of that one copy of the IP contained within. As the owner of that copy, you can do stuff with it like read it, display it, destroy it, or sell it on to someone else thanks to the First Sale Doctrine (but you can’t do other things like copying it, unless it’s a DVD as there’s a specific exemption for the copy your DVD has to make to RAM in order to decode the DVD). There’s nothing the copyright holder of the original can do to stop you exercising these rights.
  • If you buy a digital ‘copy’, you’ve not bought a copy, you’ve bought a licence to use one of the publisher’s copies that they’ve given you permission to have on your device(s). They’ll also have given you permission to do things like read it if it’s an ebook or play it if it’s a video game, but as it’s their copy, not yours, you don’t automatically get rights to do anything they’ve not explicitly permitted you to, and it’s not in their interests to permit you to sell it on unless they think you’ll pay enough more for a resaleable copy that it covers a potential future lost sale.

I’m sure plenty of publishers would love for the second set of rules to apply to things like books, and from a quick googling, it seems like occasionally academic textbooks have included a licence agreement instead of you actually owning the physical book, but I imagine that most publishers are concerned about bad PR from attempting this with a hit novel and also don’t want to be accused of fraud for having their not-a-book-just-a-licence on the shelf next to regular books and thereby tricking consumers into thinking they were buying a regular book. EA attempted to double-dip over a decade ago with Battlefield 3, which included a copy of the game (with regular First Sale Doctrine rights) and a licence key for the online pass (which wasn’t transferrable) and got bad press because of it. Newer PC games often come as a key in a box with no disk or a disk that only runs a web installer, so you’ve not got a copy of the game to claim you’ve bought and obviously only have a licence, and this seems to have caused less upset. This wouldn’t work with a book, though, as you have to fill in the pages at the printing factory, and can’t magically do it only after the user’s got it home.


I’ve yet to find tooling that supports this. Clang format has a setting that looks like it does it, but actually does something else. If I have to press the spacebar a bunch of times each time I add an argument to a function, that’s a pain, and it’s a bigger pain to convince the people I’m working with that that pain’s less bad than using spaces everywhere and having the IDE deal with it.

Until the people making editors and auto formatters acknowledge that the obvious most sensible whitespace style is even a thing, I’m forced to do something else and be really grumpy about it.