|
|
|
|
|
by ykumar6
3900 days ago
|
|
Abstractions are important as they reduce complexity, and simplify operations. The foundation of computing is based off abstraction - using layers and interfaces to hide complexity, so developers can focus on higher-order problems. This article argues against abstractions citing security, performance and cost. But time and again it has been shown that most costly component in software is human time - and simplifying the underlying architecture is worth the trade-offs |
|
...but only when used correctly. Abstraction is a means to an end, not the end itself. Unfortunately, years of CS education seem to have taught most people that it's the other way around, causing massive increases in design complexity that are only justified by dogmatic adherence to "more abstraction is better". Some programming language communities are more disposed to this effect than others (e.g. Java.)
Correct application of abstraction is not common in mainstream software, and rather difficult to describe, but the simplicity and clarity is unmistakable when one encounters it. The occasional articles on HN about seemingly impossibly tiny programs are good examples.
This article is a bit "X considered harmful" reactionary but I see their point - often, software today is on the side of far too much abstraction.