Personal Computing (2022)

(josh8.com)

9 points | by xk3 1 hour ago

1 comments

  • JuniperMesos 28 minutes ago
    This is a bit of a meandering essay, especially towards the end. But to the extent that

    > Basically the point I'm making is that as programmers there's no line between professional and amateur. We force ourselves to only write the most robust and scalable programs, even if it's just for us. Best practices! We use industrial tools, the same infrastructure that we use at work and to power the world, at home.

    I think this is 1) only as true as any given computer-user wants it to be, and 2) straightforwardly a good thing.

    I am personally a professional software developer, that is the thing I do in order to earn money. So naturally when I write software for my own use on my own computer, I apply many of the same habits that I do when I write software at work in my professional capacity. Often this is because I think those habits are actually good, and will help me out personally (e.g. using version-control with some amount of thought put into commit messages, or using a programming language like Rust with an algebraic type system that lets me encode invariants of my code).

    I do think it's good that I as an individual have many of the same means of production as large software-production corporations. It's good for the same reason it's good that a lot of professional-grade videography and music production equipment is cheap enough to be within the grasp of the hobbyist. It's good that there are people making funny cat videos with their smartphones whenever they happen to see their cat doing something funny; as well as amateurs making high-quality films that rival what Hollywood does.

    > I always see people say that as an industry we've sort of collectively agreed that metaprogramming is a bad idea. Okay, after spelunking in some legacy codebases I can understand why you want code to be as straightforward as possible. That's optimizing for reading, reliability, blah. But why should the technology I use at home when programming by myself for myself, for making my computer do magic for me, be the same as what I do on a team full of people that have to maintain this thing for years to come. For personal computing metaprogramming makes perfect sense. This kind of programming should be fun, it could be witty, it could be whatever we want. IT SHOULD BE FREE.

    There isn't actually a collective agreement among professional programmers that metaprogramming is a bad idea. Metaprogramming often makes code hard to understand, which is bad regardless of whether the people who need to maintain it in the future are a team of professionals or just your future self. But there are ways to do metaprogramming well, and you're already free to apply them to your personal software, or to not do so. There's not an actual problem here.