Brackets and Braces and Parentheses, Oh My
Did you ever find yourself nested about seven levels deep in a massive conditional and suddenly realize that you’ve been counting left-parens or right curly-braces for the past 10 minutes? And more importantly, what do all of these punctuation marks have to do with the problem that you’re trying to solve? And even more importantly, why can’t the computer figure this out!!?
I know, I know, these punctuation marks exist to explicitly describe the statements that you want the compiler to compile, bla, bla, bla. But what is the intrinsic meaning of a period? What about 3 periods in a row? Do three of them convey any more information than each one on its own? Their only meaning is in the context of other parts of the program being developed, such as objectDOTlocalVariable or the End of Line or End of Program marker. Same for semi-colons; in most c-derived languages the semi-colon exists simply to identify for the compiler the end of one statement and the start of the next statement. Can’t the compiler figure this out?
And yet for their seeming insignificance, an incorrectly placed period or semi-colon can bring a program to its figurative knees, potentially preventing the release of product, costing thousands (or even millions) of dollars and the loss of reputation and future profits. The same is true for all of the rest of the punctuation used in every programming language.
On top of their potential for causing really expensive failures, all this punctuation diverts our attention from the task that we’re trying to describe onto mundane counting tasks. As discussed earlier in the blogs about the human brain and the limits of our attention, every time we stop to deal with punctuation, we risk losing our train of thought. It is difficult enough to write code that stays on target; every time we manage the trivialities of punctuation, our brains have to dump the current coding details chunk so we can load it with the chunk that deals with punctuation. What a waste of time and mental effort.
Honestly, with all the time that you’ve spent chasing down brackets and braces and punctuation errors, don’t you think you should be able to list working as an Editor on your resume?
Using Human Languages For Development Has Failed
When we started down the path of using human languages as programming language, we inherited both the strengths and the weaknesses of human languages, meaning that we got both the potential for expressiveness as well as all the goofy punctuation marks. The choice to model programming languages after human languages served us pretty well for the first 30 years or so, but it has become increasingly problematic for the last 20 years. I believe the next big program development methodology will not be a new language but a new way of expressing or describing the desired executable program.