There’s also a whole lot of abstraction layers in software these days. All kinds of frameworks, no code platforms, scripts and engines ask introduce their own delays when running software, all added to make time to market a bit shorter or just because of some tech fetish.
Lol, “the C Programming language is an abstraction of assembly and I for one, won’t have it!”
Some of those frameworks and no code platform bloat are because of that. Most are there to make working on large multi team software projects feasible.
It’s not the first time one team makes a module with an API. The other team needs a few lines of data from that module but the filter in the API is bad, so just retrieve millions of rows and apply your own filter to get the two rows. There is no event trigger, so keep polling those two lines every second. Multiply with dozens of modules and a bunch of politics that refuse to make changes and you get a very sluggish application.
Sure yeah, this stuff happens all the time, and often persists until people start noticing the application being sluggish and they go and investigate and fix the slow points.
Alternatively you have tightly integrated software that only one team can work on and it takes years to come out and every time a feature needs to change its another 6 month job of reworking everything, and debugging and fixing security issues is a nightmare.
In most systems, not just computers, there’s a tradeoff between a highly integrated and high performance design, vs a modularized loosely coupled one that’s more adaptable and resilient.
Just look at automotives, Teslas have a unibody design that makes them cheap to build and low weight, that also makes them enormously expensive to repair and impossible to find aftermarket parts for.
Choosing maximally integrated is rarely the best path, there is always a middle ground, and one important difference between the paths is that it’s usually easier to go from modular to integrated than vice versa.
I’m a software engineer at a large company you may not have heard of, but you almost certainly know at least one of their brands. Abstraction layers are all over the place; they’re not a symptom of open-source software, they’re a symptom of lots of modern software.
Well indeed, if the closed source project has closed SDLC that’s the definition of developed and governed with internally defined goals and abstractions
There’s also a whole lot of abstraction layers in software these days. All kinds of frameworks, no code platforms, scripts and engines ask introduce their own delays when running software, all added to make time to market a bit shorter or just because of some tech fetish.
Lol, “the C Programming language is an abstraction of assembly and I for one, won’t have it!”
Some of those frameworks and no code platform bloat are because of that. Most are there to make working on large multi team software projects feasible.
It’s not the first time one team makes a module with an API. The other team needs a few lines of data from that module but the filter in the API is bad, so just retrieve millions of rows and apply your own filter to get the two rows. There is no event trigger, so keep polling those two lines every second. Multiply with dozens of modules and a bunch of politics that refuse to make changes and you get a very sluggish application.
Sure yeah, this stuff happens all the time, and often persists until people start noticing the application being sluggish and they go and investigate and fix the slow points.
Alternatively you have tightly integrated software that only one team can work on and it takes years to come out and every time a feature needs to change its another 6 month job of reworking everything, and debugging and fixing security issues is a nightmare.
In most systems, not just computers, there’s a tradeoff between a highly integrated and high performance design, vs a modularized loosely coupled one that’s more adaptable and resilient.
Just look at automotives, Teslas have a unibody design that makes them cheap to build and low weight, that also makes them enormously expensive to repair and impossible to find aftermarket parts for.
Choosing maximally integrated is rarely the best path, there is always a middle ground, and one important difference between the paths is that it’s usually easier to go from modular to integrated than vice versa.
Windows OS updates and releases aren’t subject to this as it’s closed source
Whether human or machine, external factors are all internally decided
Why do you assume this can’t be an issue in a closed source?
Describe the abstraction layers of a closed source project in the context of Microsoft
You can’t, unless you work for Microsoft
There’s market forces, which is not what you described; rather tooling and nuance specific to software development
When Microsoft controls the input and outputs, it’s a closed loop affected by Microsoft governance, not random tools, systems or transparent inputs
I’m a software engineer at a large company you may not have heard of, but you almost certainly know at least one of their brands. Abstraction layers are all over the place; they’re not a symptom of open-source software, they’re a symptom of lots of modern software.
How do external factors affect closed source systems, when the entire lifecycle is governed by Microsoft
Because even closed source systems don’t exist in a vacuum?!
Well indeed, if the closed source project has closed SDLC that’s the definition of developed and governed with internally defined goals and abstractions
Literally the definition of
.Net
Ah yes, the open source dotnet as an example of closed source abstractions
https://dotnet.microsoft.com/en-us/platform/open-source
You wanted an abstraction layer, I provided one.
You shared an open source project. Comprehension is a skill
deleted by creator