The Tower of Babel

Published on 2002-09-06 by Mark VandeWettering

I’ve been working a bit more on my weblog over the past few days, trying to clean up and remodularize the templates that I’ve been working on. As a result, I’ve got a stack of books on my desk regarding the various bits of web technology that I use. And it started me thinking. And as so often happens when I think, I feel the need to rant.

Why in the world do we have to know so much to make an attractive, interesting web page?

It’s really quite simple. None of the existing web technologies really get at the heart of what you (or at least I) want to do on the web.

First, let’s look at the list of technologies that someone needs to understand to be a saavy web designer:

HTML

: HTML had a noble idea behind it: to be a simple markup language to allow the display of information in a reasonable way. Unfortunately, unlike other successful markup languages like TeX or troff, HTML was not programmable, hence ultimately there were severe limitaitons on what HTML
could do.

CSS</p> 

:   CSS was designed with the idea that the presentation of data should be separated from  
    its presentation. Unfortunately, CSS is also not programmable, so many of the transformations that you would like to make are similarly impossible to create using CSS.</p> 
    
    JavaScript</p> 
    
    :   JavaScript is an attempt to make the objects which appear on webpages subject to program  
        control via a simple scripting language. It isn&#8217;t actually all that bad, but it isn&#8217;t well suited to writing  
        large applications.</p> 
        
        Java</p> 
        
        :   Java is a real programming language, and actually, not a bad one, but it isn&#8217;t really targeted  
            toward the needs of creating content. Various libraries help a great deal, but that puts an even  
            greater mental load on programmers.</p> 
            
            Perl</p> 
            
            :   Perl suffers from the same ills as Java, with the additional one that it is an exceptionally ugly  
                programming language.</p> 
                
                XML</p> 
                
                :   XML finally implements an extensible parser at least for structured text. The problem is that  
                    it implements very little else, so it is of marginal utility for solving the truly difficult problems of  
                    application development.</p> 
                    
                    XSLT</p> 
                    
                    :   XSLT finally adds some measure of programmability to the transformations that normally  
                        would have been done with CSS. But it is a far cry from a pleasant language to use, and is in no  
                        sense a general programming language.</p> 
                        
                        MySQL</p> 
                        
                        :   You really need a database to do anything at all, don&#8217;t you? </dl> 
                            
                            The combination of all of these things actually allows some fairly pleasant applications to be written, but it isn&#8217;t a very pleasant experience for the programmer. Why does it take so _much work_ and so _many different tools_ to make reasonable applications like this one?