Midnight Beach logo

Ethiopia - Boilerplate

These pages under the Ethiopia page are based on a general-audience description I wrote for my homeschooling pages. They will seem very basic to my readers from the technical side of the computer industry, but I have a diverse readership and I dare say these expanded pages will be interesting to those to whom the material is new.

One of the first things every programmer learns is that doing the same thing in two or more places is a very bad idea. For one thing, each duplicate is a possible failure point, a place where you can make a mistake. For another, when (not "if") you need to change the way you're doing something, you have to find every duplicate and change it properly. (You also have to be careful not to change anything that only happens to look like the sort of thing you're changing!) Progress in programming technology has been largely driven by the search for ever better ways to reuse code.

In this regard, HTML was a big step backwards. Every page stands on its own, with no way to "include" boilerplate, except (in limited ways) through JavaScript or Cascading Style Sheets [CSS]. As soon as "this page" becomes "these pages", HTML's boilerplate problems start to limit a site's evolution. I think it's very important that a site have a consistent look from page to page, but that means a lot of boilerplate which varies little from page to page. As we moved from "description lists" to tables, the amount of boilerplate has just grown and grown, which makes it harder and harder to spot the bit in the middle that's unique to this page. This in turn makes it a real pain to update the boilerplate when you change the look of a design element for whatever reason; this pain is only multiplied by having to do it for every page.

So, as the Midnight Beach sites grew, they got harder to improve. It wasn't that I stopped seeing ways to improve the presentation, it was that each new page added inertia, so it got harder and harder to make changes.


Created on May 10, 2003, last updated May 13, 2003 • Contact jon@midnightbeach.com