• 1 Post
  • 13 Comments
Joined 2 years ago
cake
Cake day: June 17th, 2023

help-circle





  • It only does not have a significant adverse effect because enough people actually do pay for the media that they are able to make a profit off of it. If no one paid for it then they would lose all of their revenue from selling copies, which would definitely be a significant adverse effect on their profits.

    I mean, maybe you don’t consider that to be a problem. Maybe you think that copying media should be free and that instead of making money selling copies people should live off of the money they make from performances and/or patronage, even if this means that there is less money available to create media so in practice there is less of it around. I don’t agree with this position, but I also don’t think it is an inherently unreasonable one as long as you are being honest about it.

    The point is, though, that whatever moral position you take on piracy, you cannot justify it with a claim that only holds as long as other people act differently from you.


  • OP, if you take nothing else away from this conversation, it is that different people have different notions of what exactly the word “socialism” refers to, which in practice makes it a useless word to use in the context of discussing public policy because you just end up with groups talking past each other. In the most extreme case, if someone thinks you are proposing “socialism”, then they might abruptly stop listening to what you are actually saying and assume that what you are actually proposing is to turn over the entire country to a corrupt authoritarian government because that is what the word “socialism” means to them. For this reason, should you find yourself in a discussion about public policy, it is generally better to be very specific about exactly what policies you are saying are good or bad and why you think they are good or bad without resorting to using what are in practice ambiguous and loaded terms like these. (Just to be clear, I am not saying that this state of affairs is reasonable, just that this is how it is at the moment.)






  • It can be nice not to have to worry about types when you are doing exploratory programming. For example, I once started by writing a function that did a computation and then returned another function constructed from the result of that computation, and then realized that I’d actually like to attach some metadata to that function. In Python, that is super-easy: you just add a new attribute to the object and you’re done. At some point I wanted to tag it with an attribute that was itself a function, and that was easy as well. Eventually I got to the point where I was tagging it with a zillion functions and realized that I was being silly and replaced it with a proper class with methods. If I’d known in advance that this is where I was going to end up then I would have started with the class, but it was only after messing around that I got a solid notion of what the shape of the thing I was constructing should be, and it helped that I was able to mess around with things in arbitrary ways until I figured out what I really wanted without the language getting in my way at intermediate points.

    Just to be clear, I am not saying that this is the only or best way to program, just that there are situations where having this level of flexibility available in the language can be incredibly freeing.

    And don’t get me wrong, I also love types for two reasons. First, because they let you create a machine-checked specification of what your code is doing, and the more powerful the type system, the better you can do at capturing important invariants in the types. Second, because powerful type systems enable their own kind of exploratory programming where instead of experimenting with code until it does what you want you instead experiment with the types until they express how you want your program to behave, after which writing the implementation is often very straightforward because it is so heavily constrained by the types (and the compiler will tell you when you screwed up).