I’ve been away from the industry for about a decade working from home as a freelancer and on return and looking for new work I find things changed out of recognition and none of the changes are good.
I’ve disliked jargon since middle school, I actually dreaded going to work and picking up a company “lingo,” and software has become worse than anything I dreaded. “Stories,” “refactoring,” “technical debt”; new words for non-new ideas. Absolute bullshit like agile, scrum, TDD, and pair programming; as obvious in their wrongness as a wet cigar butt atop an angel food cake. I never planned on working onsite again but now I have a conviction not to.
I don’t know what you mean by “anti-pattern.” I can guess; I know what a design pattern is, a book of communication shortcuts that could have been a pamphlet but spawned a priesthood, so an anti-pattern must be some sort of negative one. How about “bad idea.” And what everyone is calling “technical debt” I persist in calling “unfinished work.”
I’ve never heard of Dart. It might be the greatest language ever but I already have to learn several new ones to keep my hand in and the 500 or so languages now in use seem to be about 490 too many. I came to like C# with LINQ; I like Go for a number of reasons but I don’t like EOL curly braces and it actually requires them, the first language-mandated formatting since freaking FORTRAN. I hope they change that, and I was disappointed that it wasn’t Go chosen to replace Java for Android.
It’s not changes in the languages that drive my thoughts in this article, it’s obsolete patterns of thought that came from early days of low-rez monitors and restricted variable names, as well as a lot of just plain bad ideas. In one group at Microsoft we had a group of API for porting to music players and all of them were fully spelled out; DM_LicenseSynchronization, DM_Metering. Then one guy was given the secure clock piece and what he checked in was DM_SecClk. Absolutely no reason to omit four letters.
It’s simply astonishing to me that after all these years there is still any controversy around early returns. For me the jury was in a month after I had the idea I present in the last part of my article. My bug counts dropped to near zero and my thinking about structure got vastly clearer.
The positive-going approach to function structure takes a single debugger pass to convince, I see error-going coding as anxiety-driven. We need to question these things, as urgently as we need to question horrible formatting habits like clutter and inversion, but I deliberately didn’t write about formatting because I have other articles on that.
Thanks for reading.