There’s a brief thread on Twitter with interesting participants from different parts of the web design world. Not sure exactly where I fit in, but I found I had a perspective to offer, and decided to write a post instead of a sequence of 140-character chunks.
The idea of Bootstrap, as I see it, is to add a layer of standardization between the app developer and the “hardware,” in this case, the user interface offered by the modern HTML 5 web browser. When you view it this way, there’s nothing controversial about it. It’s what engineers always do. When we see complicated chaos, we try to figure out what’s really going on, and produce a simplified and rational view of it. Then all the code that rides on top of the new layer can also be rational and relatively simple.
I want to tie-off the details of how menus work, for example, in one place, and once done, I never have to do it again. But there’s another view of it. If there’s only one place I do menus, and we have a rational abstraction of what a menu is, then we can slip in a whole other implementation behind it, and the upper-level code, unaware of the change, will still work.
Even better if a large base of software agrees on how menus are done. Then people can create tools for authoring menus. So we get to a higher level. Something everyone had to do for themselves at one point, now is part of the toolkit that everyone can build on.
This is how all software is built. Bootstrap is just another instance of this process, and a much-needed one.
Another example, when I write Mac software, I don’t get to say how menus or dialogs work. That’s up to the operating system. That makes the developer’s life easier, but it makes the user’s life easier too. If you only have to learn how to use one type of menu, you can learn to use more types of software. Why waste time learning two ways to do something so common and simple?
Same with dialogs, typefaces, layout, the details of style-creating. Almost everything you see on this website, scripting.com, flows through Bootstrap in some way.
Over time the innovations of the past become commodities, and then are baked into the OS, creating room for innovation at a higher level. When software is flowing properly, this should be a process that’s repeated frequently. Never too soon, never before the pattern of use has emerged, but hopefully not too late. We are ready for what Bootstrap does. It’s good that it exists, and I think it’s something everyone should build on.