Complexity is not abstraction
Computer geeks are a strange lot. Often, they take two diametrically opposed ideas and confuse them for each-other. Take complexity and abstraction. They’re just simply not related. In my experience, simplicity is often the result of proper abstraction. For my first example, witness this awe-inspiring stack-trace, which contains 100 lines, maybe more, since I ran out counting and it keeps going off the bottom of the page if you look closely.
Now, to me, this seems like a huge level of needless complexity masquarading as “flexibility and power,” the two watchwords that we geeks use to justify our Rube Goldberg contraptions. Absurd is what it is. What’s even more laughable is the reaction to this—something which should horrify many:
To me this diagram shows the success of Java. We have abstracted away the machinery of moving data and can create code that focuses on the one valuable thing; the business logic. And that single bit of valuable code that the business actually cares about is small – that is a good thing. (From the comments section.)
Seriously. Time to pull our collective heads out of our collective orifices, and understand that while much of this might be solved by JIT technology—and a lot of people say it is, when in fact it’s just hand-waving—it’s not the performance I care so much about. It’s the absurd level of complexity when something goes wrong.
And people, something always goes wrong. There’s a trade-off between proper encapsulation, decomposition and re-factoring, and some of the absurd levels of complexity that come with these “enterprise frameworks”. I read through this, and I see lots and lots of things going through a lot of hoops to handle the programmer’s idea of the 1% case.
[via Ned Batchelder]
This entry was posted at 4:09 pm on 13 June 2006 and is filed under Programming. You can follow any responses to this entry through the post-specific RSS 2.0 feed.
No comments found.
Responses are currently closed, but you can trackback from your own site.