Photo Sharing and Video Hosting at Photobucket
Photo Sharing and Video Hosting at Photobucket

 


Introduction
The Problem
The Solution
The Grand Plan
Who Are We?
Project Leaders
Links
Contact Us

Hawthorne Center Home


 

The Problem

Horribly Traumatic Markup Language

More than a decade ago, Tim Berners-Lee created a simple, tagged language which made it easy for non-programmers to publish content on the Internet. The language was called HTML. It was a subset of SGML, and it was good - as long as you were satisfied with only three fonts, and didn't want anything remotely resembling good design. In the early days of the web the ugliness wasn't a big deal. The average Joe could put up a website, which was neat, and anyone with a computer could read it, which was really neat! That was good enough for awhile. Then the new-car smell wore off and people began to notice that the early Web was a Yugo.

The issues with HTML are easily understood by anyone who's opened Notepad and tried to make something nice-looking with raw HTML. Write a few lines, look at what you've done, and you'll notice something right away - HTML is terrible for publishing. Frames are simply awful, and everyone hates them. Tables are almost as bad. Do you want a couple of nice columns with an intelligently designed gutter between them? Good luck - you'll need it. The work-around, of course, is to use three tables. One smaller table fits between two other tables, creating the illusion of a gutter. Can you get some text-flow with that? Sorry. That's not gonna happen. Your HTML will look even worse (or at least different) in another browser, or on a monitor that's smaller or larger than the one on which you designed your page. And don't get me started about paragraph tags, or the way a piece of text looks with only seven unchangeable text sizes.

Eventually HTML 2.0 was created in a misguided attempt to add some useful stuff to the first version of HTML. HTML 2.0 was fugly too, so they created HTML 3.0. And so on. But they never really fixed the fundamental problems. This resulted in the creation of a system I call the "Trio of Error," which stars HTML as it's first component.

Crawling Shoggoth Sheets

The second member of the Trio of Error is CSS, which stands for Cascading Style Sheets. Wikipedia describes CSS as "a stylesheet language used to describe the presentation of a document written in a markup language," but that doesn't quite convey it's real purpos: CSS is a bolt-on, half-solution to HTML's many faults. It's essentially a system that makes HMTL tags into variables - or something like that, anyway - and it includes a bunch of tiny programs that sometimes make HTML do neat stuff.

The last bit about "programs" is not strictly accurate. Nothing in CSS qualifies as a "program" in the technical sense, but CSS does sometimes do things that make you think you're looking at a program. Unfortunately, most of these behaviors are hard-coded and there's no way to actually use a variable, or a for-next loop, or an if-then statement,, or anything really useful. CSS, like HTML, is interpreted differently by different browsers. It also duplicates some of the functionality of HTML, which results in conflicts and confusion. Once you've learned CSS, HTML is, in fact, easier to use, and it does look better, though only in the same way a pit-bull puppy looks "cute." Congratulations. The new version of your Yugo now has power steering, but only if you've studied hydraulics theory. Unfortunately, it's still a Yugo. HTML and CSS are kinda, sorta integrated, but it's a matter of "dogs and cats living together."

The Middle Child

I hesitate to say that Javascript is the "third" member of the "Trio of Error," because it's definitely "the middle child." Javascript was invented by Netscape in an odd cross-licensing deal involving Sun's Java language. I sometimes think of it as a second bolt-on to HTML which is meant to make CSS tolerable. Bluntly, Javascript is buggy, annoying, and blecherous. Those are it's good qualities.

For the bad qualities, let's start with the multiple implementations of Javascript, each with it's own interpreter, each behaving differently. It's so bad that Javascript programmers routinely write functions to identify which browser is being used. These functions point to different, specific code meant to execute in a particular make or model of browser. So one program written in Javascript is frequently several programs: one for Firefox, one for Internet Explorer, one for Opera, and so on. So far none of these interpreters have accomplished 100% compliance with the actual standard. Another bad quality is the poor security model within Javascript, which is the source of enormous amounts of web-based mischief via cross-site scripting, cross-site forgery, and violations of the "same origin policy." In short, Javascript is awful stuff.

Put HTML, Javascript, and CSS into one document, which is done more frequently than anyone would like, and presto - you have the current World Wide Web, full of ugly pages that never quite look right, laden with browser exploits written in Javascript, and replete with traps for the unwary. The average person can no longer build a website quickly and easily, much less understand the page source for a modern website. To solve this problem there are multiple web-authoring tools, such as Dreamweaver, and Frontpage, each of which produces differently organized, hard-to-read code. If you want to build a nice website quickly and easily, it's a nightmare. Fortunately, there's a solution.


Go back to "Project Introduction"

Continue to "The Solution"