4 ms·
I have become very framework-adverse over the past few years as I've switched from corporate programmer to startup programmer, and from OOP programmer to FP pro
by DanielBMarkham 11y ago
I have become very framework-adverse over the past few years as I've switched from corporate programmer to startup programmer, and from OOP programmer to FP programmer. Frameworks, especially OOP frameworks, tend to throw you into a universe of nouns and verbs that can be quite complex and completely of the author's making.
Everything works great -- until it doesn't. And then you're spending your valuable time and brainpower learning about some framework instead of about how to do the job you're trying to do. That's almost always a fail. As the author mentions, it just gets worse: many times you're suckered into thinking the answer for your problem is yet another plug-in or framework. Now you have even more stuff to keep track of.
OOP forces you to answer the question: what does this system represent? Once you do that, then you're left with several metric tons of how to represent it well, which can lead to a _lot_ of stuff. FP, on the other hand, forces you to answer the question: what, exactly, do you want the system to do?
As it turns out, unless you're strictly happy-path, the shortest way to an answer is just to do the work. (Of course, nobody is saying to throw out core libraries and start writing in machine code. But if you're bleeding to death from paper cuts on WhizBang 4.0 that you just downloaded last week, you screwed up.)
- ourmandave 11y agoEsp. when WhizBang 4.0 is a complete rewrite of the codebase so throw out everything you know about WhizBang 3.0.
- DanielBMarkham 11y agoAnd your existing code already has workarounds for 3.0 which are invalidated by the upgrade.
- ourmandave 11y agoDon't worry about those workarounds. They're on features that were deprecated. =)
- lowbloodsugar 11y agoI find that I use OOP to model what I want my system to do rather than naive OOP of "I have a square and a circle". Unfortunately, this invariably leads me to Greenspun's tenth rule.