Building Iron Man in the Basement
This post comes from watching Iron Man this weekend. Wait, wait, bear with me! In Iron Man, eccentric billionaire Tony Stark builds himself a suit of powered armor to battle the forces of evil. The key words in that phrase are “builds himself”. Take away the film’s pretend advanced technology, and what we have is a story of a lone man tinkering around and building something revolutionary and amazing in his basement. Stark also happens to be a bona fide super-genius, which got me to thinking: is being a super-genius now a requirement for success in the DIY world?
To clarify: I’m talking about inventing, about building or coding something new; I don’t mean fixing things around the house or building yourself a deck.
Once upon a time in science, major discoveries could be made and work done by making simple observations about the world with basic equipment. Today, that doesn’t feel true anymore. The low hanging fruit of science has been taken. Discoveries today require much more advanced technology and know-how, neither of which are commonly found among the general populace.
Similarly, in the early days of the web it was possible to build something revolutionary with a very basic knowledge of HTML and scripting. Building any search engine is massively impressive when none existed before. Those first steps were easy pickings, and quickly snatched up. Through the wonder of widgets and other embeddable content, today we’re abstracted several layers from the base code which makes the magic of the web possible. And developing those widgets from the ground up is something requiring a fairly advanced knowledge of techniques and tools. We do still have one advantage over the science example – these tools are available to everybody almost free of charge. Anybody can learn AJAX techniques, the only limiting factor is necessary time. Still, the playing field is not entirely level.
I recently had a conversation with a co-worker about A Connecticut Yankee in King Arthur’s Court. Could that book’s opening take place today? Would a modern man be able to recreate basic elements of our society in the middle ages like gunpowder or the telephone? Or a computer? We’re all much more connected, more dependent on specialized compartmentalized knowledge of others to get something done.
I think it is crucial that we keep a fundamental focus on the basics of web coding and scripting. Doubly so in the library world, where so many workers come from other careers and non-technological educations. It is one thing to be cut and paste an IM widget into your page. It is quite another to have the ability to fix it when inserting that widget blows up other pieces of code on the page. I have yet to come across a WYSIWIG HTML editor like Frontpage or Dreamweaver that doesn’t require at least a small amount of tinkering in raw code to get a site 100% correct. Understanding how each piece works is very important in making divergent systems play nice together. Without such an understanding, I never would have been able to get a Meebo widget working in Facebook.
I also worry about an over reliance on widgets. It is certainly possible to build a useful website almost entirely out of widgets. But what happens if a widget provider goes out of business? Or changes how their widget works? In addition, a widget is never custom built for your task. Sometimes it takes considerable effort to force one into doing what you want. And even then, results are not always ideal. For example, I really wanted to use a Goodreads widget on my site to display the books I’m reading. But ultimately it didn’t offer me enough customization. I just couldn’t make it work in my site’s design.
I’m not saying that widgets are inherently bad, or should be avoided entirely. Use them when it would be time or resource prohibitive to replicate the same functionality with local code. And they’re wonderful things for building a proof of concept model, of testing something out before going with a full blown local programming effort. Basically, just widget wisely.
(Yes, I used widget as a verb! I like verbing words.)
Widgets and other abstracted tools have lowered the barrier to entry for many elements of website development, and that’s an amazing thing. But don’t be afraid to metaphorically build in your basement