| ▲ | caseyross 5 hours ago | |||||||||||||
The real world is infinitely more standardized than virtual ones. 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 4 hours ago | parent | next [-] | |||||||||||||
Yeah, but it does not have to. 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. | ||||||||||||||
| ||||||||||||||
| ▲ | Mikhail_Edoshin 3 hours ago | parent | prev | next [-] | |||||||||||||
I would disagree. Software has certain constraints, or, for the search of a better concept, certain nature. E.g. I myself would say that one side of it is that you always have a very small tool that is supposed to operate on much larger data and can only manage this by doing many-many steps that have to be perfectly orchestrated. This is true to the low-level CPU, but as we move higher we start inventing things and can invent something that is rather different. E.g. on certain levels it may convincingly look that we send a bunch of elves against a bunch of orks. There is a multitude of such concepts, they are vastly different and, of course, incompatible, and it may look that they're all worth each other and what we choose is a matter of preference. Yet among them there is is a single concept that is special, because it is true to the nature of software; or is closer to that truth than others. It is not to be invented, but to be discovered. If we discover it, we will solve the problem of compatibility. | ||||||||||||||
| ▲ | viraptor 2 hours ago | parent | prev | next [-] | |||||||||||||
This doesn't match reality as soon as you start working with things that actually deal with laws and taxation. If physical space was standardised, we wouldn't have 366226723 implementations of asset management systems. Also compatibility depends extremely on the laws - is this chair and that chair the same? Not for taxation purposes because one is rented and the other is still depreciating, so you absolutely cannot say you have 2 of those chairs in the office. | ||||||||||||||
| ▲ | mejutoco 3 hours ago | parent | prev | next [-] | |||||||||||||
I think in a way the OS is the "physical space" of software. This matches common composable interfaces like lines of text, files or http calls (rest). | ||||||||||||||
| ▲ | hulitu 3 hours ago | parent | prev [-] | |||||||||||||
> It's not because we're bad at design or planning 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 ? | ||||||||||||||