3 ms·
I mean, an example of a truly utilitarian software that solves a nontrivial problem would be good. Abstractions has gotten a bad name and you can certainly go o
by xg15 1y ago
I mean, an example of a truly utilitarian software that solves a nontrivial problem would be good. Abstractions has gotten a bad name and you can certainly go overboard with it, but it's also a tool that you often need to solve more complicated problems.
Also, I think it misses a bit where programming came from. The idea of general computation was an abstract mathematical plaything long before it had concrete use cases.
- al_borland 1y agoWe should also remember that most utilitarian software is built on top of those abstractions. If I make something utilitarian in Apple Shortcuts, my “code” is sitting on top of countless layers of abstractions and frameworks which make it all possible, which are also abstracted away behind a drag and drop interface.
- xg15 1y agoI think that's an interesting point though that is often neglected - not all abstractions are created equal. In a browser, both the DOM, web APIs, etc are abstractions - so are frameworks like React, ect. However, there is usually a lot less anger and attention directed at the former than the letter. My theory why this is the case is that the former is a "hard" abstraction boundary while the latter is "soft": For a web site, it's intentionally not possible to peek below the abstraction layer of the web APIs. However, in exchange, the browser also puts in a lot of effort to make sure that web devs don't have to go below the abstraction layer: By providing watertight error handling for everything below the layer and by giving rich debugging tools that work with the concepts given by the abstraction. In contrast, any frameworks and libraries that build on top of that are "soft", because developers can - and have to - lool into the code of the framework itself if some problem requires it.