Web development

19 April 2014
Over the last two or so weeks I have been doing a website for my brother. Why it is far from ready for public prime-time, it has nevertheless made me rethink my views of web programming. Historically my views of web programming was that it was easy to do, but hard to do well, with the difficulty in large part due to a disproportionately high proportion of implementation quirks. In addition, website design had a reputation for being a somewhat ‘arty’ part of IT, in part because the HTML for a nice looking site was typically hideous. This was not helped by customers wanting a website having no concept of goodness beyond appearance, and perhaps low cost.

Goodbye MSIE

Contending with MSIE in my first job around a decade ago was enough to put me off web development as a career, but thankfully MSIE is now down to 9% use, and is still on a very negative trajectory. I suspect the only people still using it are sub-prime users such as those browsing from locked-down governmental computers, and that is a clientelle I have zero interest in appeasing. It says a lot that the BBC fell for the hoax that MSIE users are borderline delinquent. The modern trend in any case is towards mobile devices where Microsoft is pretty much absent, and that means proper adherence to standards by every browser that matters.

Joys of modern CSS

Back in 20092007 when I panned CSS, it was in large part due to inconsistent browser support, but these days CSS is a joy to use. Gone are the nasty surprises and all the nasty hacks, and for my recent sites the HTML itself is not much more than paragraphs of text I want to show. What in the past would have involved designing in Photoshop and then slicing up into hideous HTML tables is now more like GUI programming.

Javascript

I am still somewhat conservative about Javascript, because much of the time sites that require it end up doing a lot of crap I don't want to mess around with. Much of the time they only need it because they use some crock of an off-the-shelf
content-management system system, whereas these days CSS is sufficiently advanced and ubiquitous to handle most presentational intentions. Relatively few sites actually need AJAX, and in most cases the gotchas outweigh the benefits.

Having said that, a lot of the effort now going into writing downloadable Android & iPhone applications ought to really target web-hosted Javascript applications. The irony is that a lot of mobile apps have requirements that fit quite well with Javascript & AJAX, not least because a lot of them assume network connectivity for real-time updates. Javascript has a lot of irritations, but it is a lot nicer than the headache of getting together an Android development environment.

PHP

PHP follows the embedded-code model of web programming that these days has been deprecated in favour of Model-View-Controller approaches used in the likes of Django, but for all its faults PHP is still a good fit in a lot of circumstances. When the server-side part of a website is almost entirely AJAX call-back services, the negative parts of mixing code & mark-up that are associated with PHP do not really apply, but when prototyping such an application the ease that PHP scripts can be deployed is a major plus-point. MVC does not make sense for a site that has only 2-3 different URLs.

Career-wise?

Web development may be a lot more fun than it used to be, but the type-casting of my career means that I don't have the know-how needed to make it a day-job activity. Like GUI programming, website design is still very much something don't envisage myself doing for a career. My interests have always been in infrastructure rather than presentation, and this fundamental has not changed.