Design Abstractions

A few years ago, Joel Spolsky wrote a wonderful article for his site called The Law of Leaky Abstractions, the general idea of which was that while new design technologies such as programming tools that let you build data interfaces by clicking and dragging controls might make things easier for the average professional, they will never replace a solid understanding of the technologies they are built on top of. This is because the tools that do so much work behind the scenes never offer the fine control that the lower level tools will. They also provide an illusion of power that makes it easy to avoid learning the real substance. The article provided some good examples and now I have one of my own to share.

When I started working on the site back in 2000, one of the first things I did was to figure out what software I would use. I’d used Adobe PageMill on an earlier website attempt but that was no longer available and Microsoft FrontPage seemed to offer everything I needed for the right price. I came up with a theme for the site, put together some content and was pretty happy with myself for building a site and registering a domain name to go with it without having to do any of that tedious stuff like learning HTML. This would seem kind of surprising for a programmer like me but that’s the way it was. I just wanted to focus on the content and look and feel of the site and besides, I was busy with Microsoft Access at the time.

It wasn’t until a friend of mine started designing a site of his own and went straight to manually coding the pages that I was more or less shamed into learning the basics of HTML. Even then, after I realized how simple it was and how I could have some finer control when I needed it, I was just as happy to keep using the code generation features in FrontPage.

Now, aside from the way FrontPage writes its own, rather verbose, HTML behind the visual designer interface, there’s another aspect to the abstraction. FrontPage also offers features that would often be done with other scripting tools like PHP and ASP. Instead of using these scripting options, FrontPage uses its own proprietary code. I have my theories about the reasons for this but what it means to the user is that in exchange for the ease of setting up something like a hit counter or dynamic navigation, the pages need to be published on a web server that has the FrontPage Extensions installed which will translate that proprietary code and display it as intended. That was fine with me as it wasn’t too hard to find hosting services that provided FrontPage support.

Then, last year, came the announcement: Now that FrontPage was no longer available, Microsoft had dropped support for the FrontPage extensions on Linux servers which meant there would be no more bug fixes or security upgrades. My hosting service has decided to keep supporting them but will drop them if there are any security problems. That’s pretty nice of them, actually.

So, I finally decided to get off the FrontPage fixation which meant getting back into HTML and figuring out how to do on my own all the things that FrontPage does for me now. I talked to a co-worker who has his own pretty impressive site and he talked about languages like PHP and JavaScript so I figured I’d be looking at those and other options.

I checked out a couple other page and site generation packages and wasn’t really impressed. The best one I found turned out to be buggy and I didn’t want to deal with that. Then there was the issue that I’d already paid for FrontPage so I started to look through it to see how I could use it without using features that would require the extensions. I was pleasantly surprised to find it has some nice features that speed things up once you’re ready to move to the next level of web development and actually do some of the coding yourself.

I won’t be able to use HTTP to upload the site without the extensions which means that I can’t just point FrontPage to and let it sort everything out. FrontPage does upload through FTP, though, and does a decent job of synchronizing the files. My hosting service provides a good control panel interface and I was able to setup a subdomain for testing and an FTP account that would point there so FrontPage could still handle things. The borders that are shared by all the pages and include navigation and the credits are also things that I’ll have to do on my own. FrontPage also made it pretty easy to manage the theme for the site but when I look at how it does it, it’s really just a jazzed-up version of cascading style sheets so, given some time, I can do that on my own.

There are other features that I’m not sure how I’ll do on my own yet but I’m sure I’ll find something. It will be a lot of work and take some time since it’s not the only thing I’m doing right now but in the end, the site will be better for it and I’ll be a bit smarter as a site owner.

Sign up for our newsletter to receive updates about new projects, including the upcoming book "Self-Guided SQL"!

We respect your privacy and will never share your information with third-parties. See our privacy policy for more information.