A Tragic Tale of Web Development Today

Introduction

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..

Alphabet Soup

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.

Web 2.0

You peruse over the script files. There are 17 different external script with names like ‘makeMySiteWeb2.0.js’ and ‘cornify.js’. You think about the trend of the day – Web 2.0. You think about how developers are head over heals for javascript. They think progressive enhancement is overrated and don’t understand the semantic value of HTML. You start paging though the stylesheets only to find them riddled with browser hacks and !important rules, making them utterly incomprehensible.

AFK

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:

His Story

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.

Browser Problems

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.

Quirksmode

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.

Current Alternatives

He passes his code onto the first developer that will take it on. You snap out of your daydream to realize that this developer is you. You come to the conclusion that web development has just become too complex. You realize that is has become literally impossible for a single developer or even a small team of developers to create anything great that works on all platforms, while keeping their code clean, fast, and maintainable. You look into the attempts made by the bigger companies. You think of Google’s GWT, a web application compiler that takes the web development out of web applications. With GWT, one writes Java, which then gets rendered into the appropriate HTML, Javascript, and CSS. You remember giving GWT an honest shot one night but quickly discarded the framework because the learning curve was just too steep. You discover the promising Cappuccino Web Framework, something that excites you about the future of the web. You check out 280slides and are blown away. You watch a screencast on Atlas and freak out. You think, “this is how web applications should be.” You see that these applications are built on Objective-J, a web version of Objective-C.  You know that Apple uses Objective-C for their products and remember that you tried learning it twice but failed because its just too different and too tough to learn for your average web programmer. You turn to open source javascript alternatives – you see that the current answer to any web question is to throw more jQuery at it. You wonder if jQuery developers are trying to eliminate CSS and HTML completely. You head down this path for a while adding scripts. None of your webpage shows up until all the javascript is parsed and rendered. You turn off javascript and see your website crumble. You read about the history of HTML, CSS, and javascript and why it was separated in the first place.

Talent Wasted

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.

To Be Continued…

Comments

Emil

Friday, October 8th, 2010

I LOVE the design of your blog. It is really beautiful. I wish I could make a blog-design like this...

Matt Mueller

Monday, November 1st, 2010

That's very kind of you - thanks Emil!

Garrett

Wednesday, November 10th, 2010

This is so upsetting yet so true. I'm a computer science & web developer major and I often think about switching career paths.

We highly recommend you our friends Cpasbien to download any films, movies, songs, books or files you need.