I was reading one of my favorite blogs again, Todd Hoff’s High Scalability. He has an interesting weekly post format called “Quotable Quotes”. I like them because they’re often choice quotes that highlight some larger truth.
Join 32,000 others and follow Sean Hull on twitter @hullsean.
1. Chasing bloody frameworks
One that caught my eye was this one by Sandro Mancuso:
I hate all these bloody Java frameworks. Why devs keep using them? No, you won’t die if you write some code yourself. #accidentalcomplexity
— Sandro Mancuso (@sandromancuso) October 20, 2015
Frameworks are bad? Aren’t these the foundation of reusable code? Can we build for the web without Ruby’s Rails, PHP’s Laravel or Java’s Spring?
2. Architecture purity or bloat?
Luckily the conversation remained civil. The other side of the isle piped up with practicality. I think Jeff is saying “Hey we gotta get our jobs done.”
— Jeff Maxwell (@jeffreymaxwell) October 20, 2015
3. Look Ma No Frameworks
Then Pablo Chacin jumps in with his slideshare deck, rejecting Frameworks as hugely wastful.
— Pablo Chacin (@pablochacin) October 20, 2015
4. Beware the ORM
Anyone who’s a regular reader of this blog knows that I’ve railed on against ORM’s for a long time. These are object relational mappers, they are a library on to of a relational database. They allow developers to build software, without mucking around in SQL.
@sandromancuso I say yes to frameworks like netty, guice play, say no to all J2EE stuff like hibernate, spring.
— stevesun21 (@stevesun21) October 27, 2015
Hibernate is a famous one. I remember back in the late 90’s I was brought on to fix some terrible performance problems. At root the problem was the SQL code. It wasn’t being written by their team & tuned carefully. It was written en mass & horribly by this Hibernate library.
5. Where’s the oversight?
Perhaps the biggest risk to many startups is that the decision isn’t being made at all. What do I mean by this?
— Guido Schuh (@moolder) October 20, 2015
I think this tweet gets to the heart of it. Often the decision to use a framework or not is simply hidden in plain sight, an assumption albeit a large one, that this is how you build software.
But these decisions are so fundamental because once your scaffolding is built, it becomes very hard to disentangle. Rip & replace becomes terribly expensive, and scalability becomes a painful unattainable dream.