The cold hard truth of it is that ActivityPub is bad for almost all use-cases, and not great for the exceptions
@boob I am a walking counter-example to your claim of universal preference
@boob email is federated. IRC is federated. Matrix is federated. Git is federated (over email). RSS is federated. People are using all of these things, and none of them use ActivityPub. Any of these alone have been much more successful in their domain than all ActivityPub software combined.
@sir I have yet to see a modern social network that is in any significant way better than Usenet, and in general, they are worse.
@sir Regardless of technical merits, there is value in any protocol that gains sufficient traction. Consensus is the harder problem. You can't federate alone.
@mikegerwitz might does not make right, and neither does being popular. Windows is terrible and Mastodon is better than Twitter, but both Windows and Twitter are the dominant force in their domains.
@sir Federation is one of the few times where popularity is actually important. To overtake the likes of Twitter, we need a sufficient number of users, and enough federated instances to accommodate them. A "perfect" spec is useless if it's not adopted.
Microsoft and Twitter are objectionable on moral grounds. Any replacement is infinitely better, just as a barely-working free/libre program is always superior to a non-free one.
@sir I had to migrate to Mastodon from my years-old GNU Social instance because people stopped federating with OStatus. It didn't matter if ActivityPub was better or worse---I was cut off from the fediverse.
@lanodan that people don't realize they're neck deep in horse shit when they decide to settle down and build a new house on top of it is a major problem in computers
@lanodan we have the absolute worst standards of any engineering discipline, we have a million poorly educated programmers using toy hammers and orbital lasers to build bridges out of popsicle sticks and children's toys out of refined uranium and everything is on fire and WHY ARE WE OKAY WITH THIS
@sir heckin MOOD
Knuth himself argues this point here (https://dl.acm.org/doi/pdf/10.1145/361604.361612). It’s more reasoned and well-put than mine, so before responding, please go and read what he says too :) If only to avoid any miscommunication (I’m writing this at 5am without stimulants like caffeine). Paul Graham also mentions about this in “Hackers and Painters”, which is a good read.
Art isn’t about “emotion” — that’s simply one of the things we choose to express through art. A lot of art can be considered “beautiful” without striking any particular emotion within someone. It’s about creativity, and more fundamentally, about Expression. When we talk about “Good Code”, concepts like “Style” and “Aesthetics” are completely appropriate.
Aesthetics and Style are the reason that there are 40 year old, heated flamewars about Bracing Style (K&R or Allman?), Comment Style (Both on the position and content). It’s the reason why APL or J are seldom used, why someone chooses one language over another. Both APL and J are perfectly functional, efficient languages. Indeed, from an Engineering standpoint, they are ideal! Minimal syntax, so the syntax parser has little work, and you do not have to type much. And the concepts they base off (matrix computations) are ideal for translating to SIMD for the fastest execution time! Not to mention, they’re equivalent to any other language!
Surely, if it’s an Engineering practice, bracing style should not matter? Comments should not matter? Surely, how the language that you use looks, should not matter?
The reason why they are not used is Aesthetics, and Style. The Aesthetics of those languages are unfamiliar, so they’re harder to parse (without training). The style you have to write in, performing matrix computations, is not one most people find easy or useful, and are harder to model in your head. These two things also come into how the communities developed. Look at the difference between C++ and C, the one community developing different Taste in what it was appropriate for the language to do, and how it should act as time went on, drawing a divide.
In a deep way, Programming and Art are about expressing an idea from yourself to someone or something else. I’m going to borrow some ideas from Mathematical Platonism, and talk about the “Platonic Space” for a second.
Imagine a platonic realm filled with concepts about implementation. The mechanisms you can create, the data structures you use, and so on.
When you program, you have to figure out which, of the thousands of ways you could implement this program, to choose. You have to pick the data structures that you think fit the constraints best, from which there are many. Making that choice, is not a logical choice. Often one is as good as the other, or they have tradeoffs that make it impossible to choose through a logical method. Ultimately, it comes down to constraints and Taste. Ultimately, the way you write that, comes down to your Taste as a Programmer. Just like artists do. In the many days I would spend talking to my parents about my programs and them, their art, we slowly realised there is more in common than not.
This is why toy languages and environments like the PICO-8 are so much fun for programmers. This is why learning more programming languages is fabled to make you a better programmer. It offers you experience and familiarity with pulling unfamiliar ideas out of that platonic space, forcing you to choose ideas that you have not implemented before, and seeing how they play out when you do that. It’s about expanding your own knowledge of the possible ideas that exist in that space, and how to implement them.
When I say all of this, I say it as the child of two artists, one of whom is an acclaimed Fellow for the Society of Botanical Art. They have, throughout my entire life, done their utmost to convey their knowledge to me. We have spent long hours talking about our work, and noticing the similarities in how we approach things, and the forms of expression we are given. I have talked deeply, with artists, about this fact.
I do not believe that craftmanship of programming shares any more with Engineering than the act of “Building a Wooden Chair” does. You can do it as an Engineer, and the chair will be well-built indeed. But you can do it with no knowledge about that and still build a beautiful, functional chair. The point of Engineering, and indeed, Computer Science, is to inform our senses when we wonder if a design for a program or a chair is going to work, and to expand our knowledge of what we can craft. but it should never be assumed to be equivalent.
Thanks for reading :)
Also, I don't think art must necessarily carry emotional expression.
My maths teacher used to say "derivatives are a craft, integrals are art" because there's no algorythm or methodology for calculating integrals. You have to guess, and you have to guess correctly.
@portpupper @sir @lanodan I agree but that said I knew multiple people in college who switched from CE because it was a boring plug and chug field. In software development it's much easier for a single person/small team to make a thing that's useful without necessarily needing to pass the same bar as building a bridge, and that's good. People might build a lot of not so solid tools, but there are enough that work well enough that they dramatically improve productivity (hate that term...) and let people do things they previously couldn't.
I definitely sympathize with this mood, but I also think people saying software development should be like CE makes no sense...
"Yeah sometimes your car doors just won't open. Restart it and see if that helps".
"We couldn't make this fridge run on the west coast power grid so we shipped it together with a complete miniature power grid that the user can dock into their kitchen."
"I know this microwave uses 4000W but have you seen the pretty UI?"
@sir I'm curious, why do you think that matrix devs are incentivized to make bad decisions?
@bn4t they are paid to increase exactly one metric through any means possible: the number of users signed up on the matrix.org homeserver
@sir Hmm, isn't it their goal to shut down the matrix.org HS as soon as possible (i.e. when p2p matrix is ready; or at least move people off of matrix.org when nomadic identities are ready)?
From what I've heard they're pretty unhappy with running such a large and central homeserver.
According to them they have it because they want to provide a stable HS for new users and plan to kill it once some "publicly available stable HSes" pop up and account migration exists.
IMO waiting for account migration is not a bad argument to keep matrix.org running for the moment.
Also there currently aren't many public stable homeservers with open signups as far as I'm aware.
@lanodan you are talking about non-technical users.
Are there alternatives that you like better?
I get very excited about reading about this stuff so I am curious
@Alonealastalovedalongthe you can make a federated network inside of a day's work, it's not especially difficult and doesn't really demand some larger meta-protocol
@sir you can say that, but activitypub is a reasonable functional starting point and it gets us part of the way away from solely centralized services.
People and projects need to be encouraged ... Not dumped on for being less than perfect.
Besides, I'm a bit wary of posts which dump on things in such generalized terms as the ones you've used here.
@j1mc bad software apologism
The social network of the future: No ads, no corporate surveillance, ethical design, and decentralization! Own your data with Mastodon!