I have been working on several web development projects recently, even doing some coding myself which has been very rare the past few years. As I compare what we are doing now to what we did 15 years ago, it really strikes me that the trends in computing and communications have led us from a state of a very limited tool set where there were a few difficult ways to accomplish something, to a world in which there are too many possible ways to quickly and easily do the very same things that were so difficult years ago.
Take dynamic web sites, for example. In 1997, creating a dynamic web site typically required a programmer, and the programmer would typically use Perl or C to work with CGI directly at a low level. PHP, Microsoft’s Active Server Pages, and Java Server Pages soon offered higher-level constructs that lowered the bar and made it easy for beginning programmers to make quite effective dynamic sites. By the late 1990s there were tools such as HAHTSite and FrontPage that even showed the vision of letting non-programmers create such sites, yet these were quite ridiculous at the time and it took quite some time before that sort of approach bore fruit.
When it became apparent that the Web would be central to human communications, technology supporting it very quickly evolved. With the steady exponential improvement of processing power, bandwidth, storage, etc., the underlying hardware has evolved steadily, while software has moved more in fits and starts, with web and information standards held hostage by proprietary self-interest. Still overall the trend has been continuously upward, such that these days we actually do have software (free software, even) that makes it completely easy for non-programmers to create dynamic web sites.
I am writing this with WordPress, which I think shines as a high-level technology that enables average people to easily accomplish what was once a daunting challenge for advanced programmers. WordPress followed a decade of attempts (commercial and open source) at the same thing… software has gotten really good in some domains.
Probably the most frustratingly slow technology, for those of us developing web sites, has been the web browser itself. While technologies such as WordPress have come of age, the combination of committee-driven web standards with limited efforts from the very small number of browser creators has made browser evolution an extremely slow-moving process.
I tech edited a book, SVG Unleashed, in 2003. With hindsight we should have titled it SVG Leashed. SVG was a wonderful standard, yet it threatened browser makers and software companies more than it inspired them: it had some resonance in the Open Source community, yet it moved slowly even there. Ironically it recently rose from the ashes when Apple, Microsoft, and others saw it as a way to prevent Adobe’s Flash from attaining ubiquity. Funny for the most monopolistic, proprietary companies in the universe to proclaim a love of standards, but that is what they had to do when they found their operating systems threatened by an uppity plugin turned VM.
So now even SVG has finally won the victory we thought would have been much quicker, and there is fantastic technology available supporting the same things we wanted to do years ago. Yet while SVG has evolved, other overlapping technology has also evolved. We now have HTML5 and its Canvas, and CSS3, coupled with the wonderful capability to combine these with SVG, so there are more ways than ever to accomplish things that used to be impossible or could only be done a single (and often cumbersome) way.
There is still programming required to use SVG and HTML5. Much of the human insight required is in fact due to the redundancy of SVG, Canvas, and CSS: you can in many cases produce exactly the same result from an entirely different approach, and the art of picking the right tool for the task at hand is currently best done by humans, yet certainly tools will evolve that make this more automatic. I do not see coding going away completely, yet I love the trend that things get easier over time.
So while fifteen years ago the question was “how on earth can we do this?” now we face more commonly the question “which of the many ways we could do this makes sense in this specific situation?” There are times when it truly doesn’t matter, and times when it matters quite a bit. In the specific domain I work in, online editing, the choices between HTML5 technologies have extreme repercussions, yet we’ve seen in some of the output-only publishing cases where it is truly a tossup. Overall it is wonderful to see things where they are today and I wish I had been born many years later.