Why I dread Web Dev

Thoughts By 5 years ago

When I started coding I was doing PHP, HTML, CSS and Javascript in their very raw forms. This was OK, but eventually I moved onto Java, C/++ and then Objective-C (after wanting to code for the iOS platform). I don’t regret this decision, in fact coding for fixed dimension user interfaces is an absolute blessing.

Now after I have gotten used to procedural/object orientated programming, I find it very hard to go back to web development. There are a number of problems that I currently see with Web Development:

Different Browser Interpretations: This has gotten better in recent years, but basically although languages like HTML are strictly defined in W3C, due to the sheer number of iterations that are possible each human interpretation will be subject to slight variations. These slight variations make it extremely annoying to fix interpretations using different HTML structures to achieve the same user interface. The annoyance here is that in recent years the W3C has shown a willingness to release web standards at a faster rate, but in order to do this they have to allow for a certain amount of backwards compatibility (you can still see this today when browsers recognise the navigator javascript callback (harking back to the days of Netscape Navigator, remember that browser)), once they do not do this it will inevitably lead to some websites rendering strangely on newer browsers, which is not necessarily right given that they may have complied to the standards at the time. Now when I say this has gotten better in recent years, the main reason for this is the willingness of browsers to force updates on their users, while this may seem draconian it’s just hugely important to allow web development to evolve with new features and at the same time allow the users to make use of these features. If you ever wondered why developers hate IE6, it was the absolute worst offender of this, and I can’t fathom how many wasted human hours have been spent trying to support it.

JavaScript and it’s beginnings: Javascript is currently a language that still contains zombie fragments for backwards compatibility as far back as Netscape Navigator (who actually invented it). Javascript is actually called EMCAScript (due to the organisation ECMA that creates the standards), and during 1999 and 2009 was not updated. Javascript had major problems with debugging in its early days, simply due to the inadequate debugging. All this is somewhat soothed by using the JQuery API, however you have to consider that this language was so under developed that developers decided to band together to make programming for this language better without going through standards channels, in a perfect world this just simply would not happen.

Lack of debugging support: This is also somewhat negated these days (Firebug was a godsend to me on Firefox), however back in the day debugging support was seriously lacking. In fact even these days I can become quickly frustrated by JavaScript debugging, although I have to say consoles can be godsend. HTML debugging has also undergone great leaps by realtime editing of the HTML/CSS within the browsers memory (testing different settings to see how they look). You have to understand that back in the day this just was not an option, and the only thing to do was to make the change to the source file and reload the site.

Flashes Power: While I never advocate using Flash in a website unless absolutely necessary, I cannot say it is not a great tool to create rich user experiences on the web. Given that Flash can do so much more than HTML/CSS/JS why do we even use these latter technologies? Well Flash is proprietary, a plugin, but most importantly HTML/CSS/JS development has just been embedded into the economy of web development around the world, and while other languages may actually do a better job at not only compressing code and allowing more complex user interface features. While JS has got to the state where it can almost come close to what Flash can actually do, it cannot do it nearly as fast. See here’s the thing, anyone who hasn’t done NPAPI doesn’t know how hard it is to actually interface to these plugins, but why should we even need plugins? Why aren’t web applications powerful enough to do these things by themselves? Why are we so limited? (Security is a good argument against this)

In the end I just see the current state of web development as technology thats latched on to the fact that the resistance to change will be so great that to even attempt it would be foolish. Perhaps one day the browsers will get together and propose a new web language to run in parallel, but until then I guess we are stuck with what we have got.

  • Tom J

    I wholeheartedly agree – iOS and ObjC are a godsend in comparison to web technologies. Not only are they hard to implement, they are just as hard to maintain (constant security threats, frequent updates required). The ability to drag and drop a UIImageView in a storyboard is fantastic.

    Thanks for a great site.