Did you ever notice that computer programming languages are pretty much failures? Sure, we can use them to create programs that do what we want them to do. Eventually. More or less. But how many hundreds and thousands of development hours were required to make the program do most of what we want?: And how many buggy versions does it take to finally get that fully functional version. You know, the one without too many latent bugs. Because no program of any size and complexity is 100% bug free.
Prove me wrong. Build a tiny, 1,000 line program that compiles and runs bug free. On the first compile. Oh, yeah, and have it do something useful. Compare your results to an electronics hobbyist who will breadboard a small audio amplifier or a light sensor in an afternoon or a backyard mechanic who can remove, mill, and reinstall the heads on his hot rod in a day and have it run the first time.
We are so conditioned to accept that programming languages will generate unusable outputs that we never even notice the failures anymore; we just note the error messages and try again. We blame ourselves and our inability to think flawlessly instead of blaming the tool for allowing us to build invalid programs. It’s like we’re all using hammers with little tiny strike faces and then blaming ourselves because we keep missing the nails and hitting our fingers instead.
Do you know any other development system where it normally takes until version 3.x before a usable product is available? What if version 1.0 of the Oakland Bay bridge had only worked with Chryslers on Tuesdays? What if Model T Fords v1.0 could only turn right and you had to wait for v2.00 to turn either left or right? Can you imagine any sane person buying an airline ticket if the person behind the ticket counter said, “Rebooting the airplane is only necessary now and then. As long as you’re above 5000 feet, you’ll be fine.”
Sure, we’ve gotten a lot of mileage out of programming languages, but isn’t it about time we found a tool that actually helped us generate the software that we want instead of trapping us in a swamp of syntax errors and compilation errors. Programming languages are just the tools that we’ve gotten used to but not the only tools possible.