3 ms·
Perhaps it's just a vocal minority, but I see a lot of backlash against anything that smells like large-scale, top-down, enterprise design. People see a concept
by feoren 4y ago
Perhaps it's just a vocal minority, but I see a lot of backlash against anything that smells like large-scale, top-down, enterprise design. People see a concept implemented badly, so they get it in their heads that the original concept was worthless. This is one major underlying force for things like the NoSQL movement and other cyclic fads.
What HN discussions have I been reading? Let's look back:
"Abstraction is Expensive" [https://news.ycombinator.com/item?id=33895178 https://news.ycombinator.com/item?id=33895178]
> I wish it was a meme [to hate abstraction]. The things people complained about decades ago are still happening today, and the practitioners are all too eager to turn a 100 line program into a 1000 line one, while taking weeks to test if it does what it should. The average loud dev is a GoF fanatic in love with inaccessible reflection.
https://news.ycombinator.com/item?id=33897735 https://news.ycombinator.com/item?id=33897735
> I’ve found this “come correct” mindset is used to justify unnecessarily flexible solutions to allow for easier changes in the future … changes that 90% of the time, never actually materialize.
> [a response:] In other words, when the basic assumptions of that fancy abstraction are just not workable with the future requirements, you're hosed. Worse, now you might need to refactor a lot of code building on this abstraction.
https://news.ycombinator.com/item?id=33686475 https://news.ycombinator.com/item?id=33686475
> This view follows quite naturally from another aspect of modern programming thinking (and education), which claims many problems are gross and complex, and thus we need abstraction to make them appear simpler.
From an article that hit the front-page of HN, although this is a little unfair, because this guy is a raging asshole.
https://news.ycombinator.com/item?id=33379079 https://news.ycombinator.com/item?id=33379079
> The Gang of Four on the other hand was an unfortunate turn for the industry. As you say we took it too seriously. In practice very few projects can benefit from the "Factory pattern"
Someone claiming passing a function that takes 0 arguments and returns 1 is too enterprisey and "very few projects" can benefit from it. Passing functions around is an absolutely essential feature for a programming language, and I can't imagine how you could develop good abstractions (or good code at all) without it. And yes, I've worked in a lot of languages that don't support first-class functions; that's how I came to the conclusion that it's absolutely essential.
This also illustrates my point about how something can be done badly (factory pattern) and it poisons the well for the concept (passing a function).
https://news.ycombinator.com/item?id=33406880 https://news.ycombinator.com/item?id=33406880
> ignoring the architectural realities of the hardware is ignoring one of your responsibilities as an engineer to deliver performant software. Now, it's possible to argue that writing performant software is not important ...
The argument in question here is whether every programmer should always know which processor cache every variable they use lives in at all times. I think it's pretty clear this is completely incompatible with even the barest form of abstraction.
https://news.ycombinator.com/item?id=33154568 https://news.ycombinator.com/item?id=33154568