Turns out webgl is apparently pretty much the same thing as "OpenGL ES 2.0" which in turn is, afaict, somewhat like OpenGL 2.0 with a lot of old cruft taken out. OpenGL 2.0 seems to have been a pretty major shift in how people thought about the graphics pipeline on consumer hardware, ushering in as it did a complete C-like language ("GLSL") for writing vertex and pixel shaders, in contrast to the pipeline previously having fixed special-purpose blobs of functionality. This was around 2004. So. Yeah. It turns out I have been kind of out of touch with what's been going on in the whole computer gamey mcgamerson world, technologically speaking? As recently noted, the last time I even touched this stuff was last frickin' century.
But here I am, with a fancy computer with a fancy (truthfully: probably not that fancy) graphics card, and I have estimated it gives me about as much FLOPs as the fastest computer in the world in 1990. So that's cool.
The other thing I notice is that OpenGL (at least in its incarnations prior to 3.0 if I am to trust Wikipedia) is The. Most. Imperative. API. Ever.
Would you like to bake a cake? Here is he OpenGL way.
Step one: tell your friend you are about to bind spatula zero to GL_SPATULA_2D.
Step two: hot-glue your spatula to a post-it note bearing the number zero.
Step three: shout "THIS IS SPATULA NUMBER ZERO" to all that might be listening.
Step four: hand spatula to friend number zero. Remember, you only have thirty-two friends, so use them wisely.
...
three hundred steps later you have delicious cake, assuming you haven't set the egg texture wrapping parameters incorrectly or failed to inform the oven whether you were using single-precision or double-precision flour.