Damn Abstraction - Frameworks, ORM, Filesystems, VMs, etc.
In May 2011 I was asked to do a presentation at GotoCon CopenHagen. Unfortunately due to illness I had to cancel at the last moment. I hope to make up for it in October at GotoCon Aarhus
The slides were already up on slideshare, but now I finally found the time to post them on my blog.
The main theme was that there is the notion in software development that everything can be solved by another level of indirection/abstraction. In a way the cloud are like one of these abstractions. Personally I really like abstraction as they allow you easier thinking about your problem domain. But ... , if things fails you want to understand what happens below the abstractions.
Many people think devops is about automation, that way their job easier will become easier. And some even talk about no-ops as the Walhalla. The truth is that things will fail eventually and you need to be prepared to cope with that. And this is where devops helps: it helps you save time to go faster but by collaborating you can understand these complex systems and by pairing your whole team needs to be aware these things can happen. The right balance between non-functional and functional work stays whether it is automated or not.
Enjoy the presentation :
(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)






Comments
Mike Dzone replied on Tue, 2011/09/06 - 9:53am
Jacek Furmankiewicz replied on Tue, 2011/09/06 - 2:33pm
in response to:
Mike Dzone
Mark Unknown replied on Tue, 2011/09/06 - 5:42pm
in response to:
Jacek Furmankiewicz
Mark Unknown replied on Tue, 2011/09/06 - 5:43pm
in response to:
Mike Dzone
Erwin Mueller replied on Wed, 2011/09/07 - 3:53am
I agree with Edward Tufte and his The Cognitive Style of PowerPoint paper. Powerpoint presentations really make us stupider. This presentation is just a bunch of random pictures with one sentence of "explanation" of it.
The question at the end I have, what was the presentation about? Something about abstraction and a bunch of random phrases and random pictures. Looks computer generated.
That would be a nice project for the winter. "Present Everything App". You choose a topic, enter a collection of phrases, catchwords and pictures and the app will generate a presentation for you.
Patrick Debois replied on Wed, 2011/09/07 - 9:21am
in response to:
Erwin Mueller
Patrick Debois replied on Wed, 2011/09/07 - 9:23am
in response to:
Mark Unknown
Mark Unknown replied on Wed, 2011/09/07 - 5:26pm
in response to:
Patrick Debois
Not always. I would say that piles of code with intermingling of concerns is more complex than a framework.
Which is more complex? Assembler or C? C or Java?
Btw, KISS is Keep It Simple Stupid, not Keep It Simple for Stupid. ;)
Justin Forder replied on Tue, 2011/09/27 - 4:50am
There's a lot of truth in this - I hope there will be a video of your presentation in October.
I think you would enjoy this superb lightning talk from JavaZone in Oslo: "Hibernate should be to programmers what cake mixes are to bakers: beneath their dignity."
I see both sides. I'm happy when projects use Hibernate well, with an understanding of what's going on underneath, keeping an eye on the SQL it generates. On the other hand, I have spent a lot of time sorting out performance problems caused by people using Hibernate without this care, and I've been shocked to see (when profiling a Spring/Hibernate project) over 60 levels of framework method call between the application code and the JDBC driver.
I have felt for years that, despite the use of the best available mainstream frameworks, web applications are far more complicated to build than they should be. The ratio of code doing useful application-specific stuff (essential complexity) to code and configuration that is required by the technology (accidental complexity) is small. So we need more abstraction (away from the technology), but only if it is the right abstraction, and it will still need to be used with an understanding of what goes on underneath.
For a visionary and sobering take on the problems of the software world I recommend Alan Kay's recent talk, "Programming and Scaling".