A Tragic Tale of Web Development Today
Remember the last large web application you saw? It sure was beautiful. This web application worked in every browser, had nice fluid transitions, didn’t even break the back button. This app was amazing, but you knew that it was missing a few killer features that would really make it stand out. You decided you’d volunteer your time to make this web application even better. I bet you thought that beautiful execution was the result of beautiful code. Oh how naive you were..
The moment you opened up that first file you were shocked to see code that could only be described as alphabet soup. There was so much going on that your brain clicked off for a moment. As your brain overloaded and your eyes glazed over, you revisited a simpler time when clients loved flash websites, frames were the bees knees, and no one had heard of AJAX. Your mind wandered to IE5 for mac and you immediately snapped out of your daze. You committed yourself to the project so you took a sip of coffee and dove in.
Exhausted and overwhelmed, you take a break, make a nice dinner, and think about how your dinner looks a lot like the code you were trying to understand. Heck, you know you’re no master chef, and your not proud of it, but you are a proud developer. You start to get angry, you consider this code to be an insult to the business. This anger quickly resides as you bite into your charred chicken parmesan and realize that this spaghetti code was not the developer’s fault. A disheartening calm consumes you. You start to see his perspective. You see that this developer was doomed from the start. You begin to visualize his scenario:
This developer wanted a high-quality web application. He started getting really excited about it; had a hard time sleeping – missed all his classes that week. He pounded out 80% of the web application after two all-nighters. He felt this high from his accomplishment. “This is my mona lisa”, he thought. His code is clear and elegant and his application is beautiful and responsive.
The next day he goes to test his code in IE 7. He opens up the web application. He starts playing around with the UI and his application breaks down. “Why isn’t my canvas working in IE?”, “My videos aren’t working at all!” This developer has heard all about HTML 5 and wanted to take advantage of it in his brand new application. As he researches the problem, he sinks into his chair when he realizes that none of these features are available in IE 7 and most of them aren’t even available in IE 8. He starts googling workarounds and discovers a few fixes, so he adds them to the page. A few hacks later, his application is good to go in IE7. That must be everything he thinks.
He goes to test his application in IE6. His jaw drops – his page is in complete disarray. His floats are all over the place, his transparent PNG’s look like garbage. He learns that transparent PNGs do not work in IE6, he reads about IE6’s float bug and broken box model. He adds some more hacks – a filter hack to fix his PNGs and some obscure CSS code to fix his floats, and a jibberish doctype to get the box model to cooperate. At this point he is drained – he hates that he knows all about quirkmode and that his code is a sloppy mess. Browser incompatibilities ruined his pure code. This young, ambitious developer who got into development because he loved building and sharing beautiful things, got thrown to the waste side by a throng of inconsistencies and poor standardization. He refuses to test his mobile device.
No longer fun
This developer loses interest in his web application and begins aimlessly throwing code at these inconsistence to get a fragile, working copy. He doesn’t care about future development because he can’t see himself ever wanting to deal with this mess again. His once slim and elegant code now suffers from so much bloat that future development is unlikely.
At this point you’ve given up. You think about choosing another profession. Your mother wanted you to be a doctor – maybe that’ll be a less frustrating career choice. You start taking biology classes in hopes that you’ll force your interests to change. You feel like a salmon fighting its way upstream against the current because you have absolutely no passion for what you’re studying. Your mind drifts off – you think about how the world will never see your incredible talent.