Wed 30 May 2007
Libraries, Frameworks, Components… OH MY!
Posted by Scott Hackett under Programming
1 Comment
I can remember a time when developing an application meant writing everything from the ground up. I had my programming language, and if the core functions of that language couldn’t accomplish some task, then I had to write it myself. All of my developer friends and I had our own little “bag of tricks”… the collection of classes, functions and useful source code snippets that were likely to be reused in the future.
These days I feel like programming is so unbelievably different from what it was even just ten years ago. Frameworks, APIs, third party components, web services and a massive amount of reusable libraries are available, designed to make my programming life easier. But they don’t… they just shift the complexity. Where I once felt like a soloist, I now feel like I’m conducting a complex orchestra.
Being a master of a particular language is a very small piece of the puzzle in today’s software development. My applications now seem more like the glue to bring all of these libraries together. Take the simple example of retrieving XML data and storing it in a database. Right off the bat, I know that I’m going to be using an XML parsing library and a database library. I may be using a socket library to get the XML data, and chances are I’m also using some sort of framework for my user interface, too. By using these libraries, most of the heavy lifting has already been done for me and I can focus on how to coordinate the work they do. Unfortunately, learning how to use the libraries can sometimes be as time-consuming and challenging as learning a new language.
Just like a doctor has to stay on top of the latest research in their field, programmers have to do the same. With the massive amount of “reusable pieces” that exist out there, resourcefulness has gotten to be a key skill of good programmers. With all of the online developer communities it’s easier than ever to find samples of how someone did something similar to what you’re trying to do. Just like a picture is worth a thousand words, a sample project is worth a thousand reference books (and who doesn’t own a thousand reference books?). And if you write something that makes you smile and say “cool”, tell the world about it. You’ll make someone’s day who’s out there wondering, “now how the heck am I ever going to do that?”
August 30th, 2007 at 1:19 am
Very relevant thoughts … I use Qt as my framework for GUI, and some other framework for Message passing … could relate to what you said …