I was a software developer before there was a Mac, so I remember something not a lot of programmers do. I remember how the tech industry reacted to it. And for the most part, it was with a fair amount of skepticism. And the interesting thing is that the negative things people say about Bootstrap today sound exactly like the negative things people said about the Mac in 1984. And in both cases, the things that people didn't like were what made them important.
What the Mac realized is that there are a set of things that all software has to do, so why shouldn't they all do them the same way? If they did, software would be easier to develop and debug, but more important -- it would be easier to use. If there was only one way to do menus, then once a user learned how to use the menus of one app, they'd already know how to use the menus of all others. Same with scrollbars, windows, the keyboard, the mouse, printing, sound.
The reason programmers didn't like it, and I was one of them, was that they took what we did and commoditized it. Further, there were limits to the one-size-fits-all approach. There were some apps that didn't take to the UI standards very well. What to do about them? Well, you adapted, that's what you did.
This is a well-known technical process called factoring. If you see yourself doing something over and over, do it one more time, really well, and work on the API so it's really easy and flexible, and that's it. You never do it again. It's how you build ever-taller buildings out of software.
The same patterns are observable in the web. In fact, it's kind of sad how much of a repeat it is, how backward today's development environment is compared to the one envisioned by the Mac. But at least Bootstrap is out there doing the factoring. If I want to put up a menu, I can just use their code that does menus. Sure, my menu looks like all the others, and that's a good thing, for users. No need to learn a second or third way to use a menu.
That this is needed, desperately needed, is indicated by the incredible uptake of Bootstrap. I use it in all the server software I'm working on. And it shows through in the templating language I'm developing, so everyone who uses it will find it's "just there" and works, any time you want to do a Bootstrap technique. Nothing to do, no libraries to include. It's as if it were part of the hardware. Same approach that Apple took with the Mac OS in 1984.
|