Post Add43TH2W2phYdc8NE by hrefna@hachyderm.io
(DIR) More posts by hrefna@hachyderm.io
(DIR) Post #Add43TH2W2phYdc8NE by hrefna@hachyderm.io
2024-01-07T21:13:53Z
0 likes, 1 repeats
My instinct, looking at conversations around #ActivityPub and AS2, is that there there's a disconnect when people talk about trying to ensure compile-time type safety with those that prefer systems that lean more toward dynamic, runtime typing.Because I've seen a few cases now where people in the latter group seem to not understand why the first group views the translation into this as such a problem. But this isn't about the preferred tool, this is about where the complexity lives.1/
(DIR) Post #Add43WQMnp4nKR07pQ by hrefna@hachyderm.io
2024-01-07T21:16:13Z
0 likes, 0 repeats
By solving these problems with compile-time type safety you move the complexity to a different part o the development process. This isn't "better" or "worse," but it does have some extremely strong advantages. When solving these things in a language like python or JS you aren't _not solving_ this complexity. You **still** end up dealing with it.You just deal with it at a different place in the code and the process. 2/
(DIR) Post #Add43Za34HbT7KYOps by hrefna@hachyderm.io
2024-01-07T21:18:21Z
0 likes, 0 repeats
The people who are trying to do this are generally of the mind that they want the advantages of moving this complexity up in the chain, and are getting frustrated when the protocol seems to find new and inventive ways to foil them from doing this. It also has a variety of pieces in it that make using tools that make this easy much more difficult. "So why not just use…"Because we aren't actually changing the _amount_ of complexity. In python or whatever I'd still be needing to do this!3/
(DIR) Post #Add43carrh2cSjxb1s by hrefna@hachyderm.io
2024-01-07T21:21:52Z
0 likes, 0 repeats
But I'd do it at a different place in the pipeline and it is in some ways easier to do an _incomplete_ implementation without knowing ahead of time what that incomplete implementation needs to look like. This has some strong advantages too! But it isn't—and shouldn't be—considered the One True Way™. Especially because we all end up making many of the same compromises to the protocol. The difference is _where_ it lives in the code and _when_ you have to deal with it in your process.4/
(DIR) Post #Add43fWixYVdYl2pUG by hrefna@hachyderm.io
2024-01-07T21:24:00Z
0 likes, 0 repeats
You hear about it more from people who like compile-time type checking because for us we encounter that complexity as one of our _very first steps_, and we generally—with the way that #ActivityPub is structured—encounter it more-or-less **all at once**.But the complexity is still there in other tools. But it seems to get solved a little more piecemeal and later in the cycle. Neither good nor bad, but different tradeoffs. 5/5
(DIR) Post #Add4AjntSMUkqqRj3g by FenTiger@mastodon.social
2024-01-07T21:34:29Z
0 likes, 0 repeats
@hrefna Or you could just "make it all really simple", pretend there's no complexity anywhere, and hope for the best.
(DIR) Post #Add4AkgUBOADa9zK9Q by hrefna@hachyderm.io
2024-01-07T21:39:21Z
0 likes, 1 repeats
@FenTiger Ah yes, that's a time honored tradition in software development. "If I just focus on my part right here and completely ignore everyone downstream I can pretend that everything is pure and uncomplicated!" "Well if it is 'cold outside' you should stop opening the doors into winter and only open the ones into summer!"