(no title)
caseyross | 1 month ago
Physical space itself enforces a set of laws that make any two objects "compatible", regardless of any established interoperability agreements.
However, in software, there is no such constraint. Two randomly chosen software components are, in general, less composable than a chair and a galaxy.
This is the core reason why we have only been able to achieve interoperability in very specific domains. It's not because we're bad at design or planning --- it's because the space of ideas itself is simply so overwhelmingly large that it takes time and incredible coordination to get anything like pre-built IKEA blocks which fit together naturally.
oaiey|1 month ago
There are for example products like keycloak. OpenID/OAuth2/Token/Security IdP in a box.
Why there is not ticket system in a box? Yeah, we all know Jira and friends, but these are products not building blocks.
Another angle is: Why the hack does everyone rewrite their microservice foundation. Inbox/Outbox/Worker Queue/Throtteling/tracing/..... What happened to the application servers of the past?
I am a big supporter of that narrative. Why do I need to write more than my dedicated business logic and wire up some UI (and do not get me started on UI space).
IMHO, this can be a real differentiator for the language platforms. Ruby has parts of it, but is still far of.
procaryote|1 month ago
Auth is a building block you can slot into your system and the shape of the hole isn't all that complex. A framework is something you need to slot your system into, and it has a lot of twists and turns so it ends up restricting how you do all the other things.
There are lots of microservice-foundation-related building blocks. E.g. I use a library somewhere that just does circuit-breaking. I slot that into my app rather than the other way around, and if I wanted to replace it, it's a fairly isolated thing. I don't use any frameworks for it though
Frameworks also tend to grow more and more complex as they evolve. If I as a user want a different auth for example, that needs to be supported by the framework. Over time, all things become pluggable and configurable, until at some point it's complex enough that someone restarts the process, or makes an opinionated spin of the framework.
tga|1 month ago
I think what you are thinking about is a standard API for ticket systems, that would allow you to transparently swap them. Unlike authentication, nobody has bothered to standardize something like that because ticket systems are more varied, not as often integrated into other platforms, and even more rarely replaced.
Traubenfuchs|1 month ago
There exist stable solutions for all of this, at least in the java world. Spring Boot and the exhaustive Spring Boot auto configurations are all about this…
> What happened to the application servers of the past?
It‘s no called kubernetes. With the caveat of it not having first class integration for any language, but second class integration for all languages.
Mikhail_Edoshin|1 month ago
viraptor|1 month ago
hulitu|1 month ago
No, it is, code writers are bad at design, testing and debuging. That's why LLMs are so popular: just throw together some code, see if it compiles.
How many (between them) incompatible GTK or QT versions are there ? Why someone has to come every few years with a new graphics library ? Is the JPEG, TIFF or PNG standard changed ? And who thinks that adding layers of abstractions solve problems ?
mejutoco|1 month ago