Thursday, October 21, 2010

We don't need no $#@% badges!

My trip home to Boulder took me past Breckenridge, Colorado. Its late fall and the leaves are falling rapidly, with only a sprinkling of yellow remaining on small groves of Aspens. Even though it was late Sunday afternoon the streets of Breckenridge were pretty much deserted, as the town wrestled with catering to an in-between-seasons crowd. As I looked in shop windows however, I couldn’t help but notice how snowboards had completely overtaken skis, and how, even with clothing, the impact of the younger generation and their passion for boarding had relegated almost everything else to the back shelf.

I recall overhearing, just a few years ago, a group of ski fanatics, outfitted in their color coordinated gear, expressing a disgust at the young people who wore jeans fashionably slipping of their hips, snowboards under their arms, messing the fashionable scene of winter sports … clearly, fashions change. But the move away from the difficult to control and just plain scary skis to the simpler, more direct, snowboard represents recognition that in order to grow and attract new adherents, skiing had to accommodate modernization. After all, for our hard-texting youth, its tough to do and hang onto ski poles at the same time!

The picture at the top of the page is of the view from my front porch where the reds of maple trees can be clearly seen between the yellows of nearby snowberry trees. Nothing more dramatic is representative of change than an autumn day. As the temperature dropped I took advantage of the opportunity to page back through older issues of magazines and to catch up on my reading. Liberally sprinkled through the piles of magazines were many car and motorcycle publications and with memories of Breckenridge, and the prevalence of snowboards in evidence around the town, a couple of editorials caught my attention.

In a September 2008 issue of Motor Trend there was a “spy-cam” photo of a new Ford that clearly showed the presence of a paddle shift manual transmission. The writer then waxed lyrical over the potential for “a rear drive 2013 Mustang with a 415-horse EcoBoost twin-turbo V-6, independent suspension, and a six- or seven-speed dual clutch paddle shift transmission. Where do we sign?” However, in the editorial of the September 2010 issue of Car and Driver, the column started with the observation “I noticed an alarming paucity of vehicles offering fully manual transmissions. Even sports-car stalwart Ferrari, of gated-shifter fame, isn’t providing a three-pedal option on the new 458 Italia.”

And then, with a related thought from out of nowhere, the Car and Driver editor adds “Equally distressing, I read in the Washington Post that our nation’s hard-texting youth have pronounced driving seriously lame.” However, the picture becomes a little more clear when the same editor suggests “if teens learned to operate the entire car, not just the steering wheel and occasionally the brakes, I’d bet they’d like driving better. If they knew the sense of control imparted by that third pedal, I’d bet they would strive for its mastery and conquer their fear!” His closing comment? Simply put “let’s train our offspring in the ancient ways of the stick shift.”

Across society there were obviously those who not only didn’t see progress for what it really is, but continued to push hard for legacy technology. This led to another editorial, this time in the latest issue of Vette magazine. In this column, the writer identified with many of us in IT when he wrote “I’ve always been somewhat skeptical of advancing technology, especially when it applies to the automobile. Even so, I think it’s important to distinguish between needlessly complex luxury features that muddle the man/machine interface and well-designed performance- or convenience-based hardware that actually improves the driving experience.” Reminiscent of early impressions about the iPhone, for sure!

What generated this response by the editor of Vette were the very same editorials I had come across. “The initial thrust (of these columns) is that conventional manual transmissions are on the wane, increasingly pushed aside by advanced sequential and dual-clutch automated gearboxes … and the surprising culprit for the old-tech manuals demise: today’s gadget-crazed youth.” In the last statement on the issue of progress, the editor comments “the implication is that manufacturers have taken notice of this generational shift and have retooled their offerings to emphasize visual style over tactile satisfaction (who knew Lamborghini was so well attuned to the buying preferences of 16-year-olds?)”

Readers who may have thought I have spent too much time on the issue of older, legacy, manual transmissions and the school of thought that suggests real drivers only drive manuals, can surely sense where I am going with this. When it comes to programming I can recall many discussions where the talk turned to the programming languages of choice. It’s been a long time since anyone paid me to write code (my last lines of code were in June, 1979 when I was assisting with the installation of a Fujitsu FACOM IBM “plug-compatible mainframe” and I was writing routines for their equivalent of IBM’s BTAM in 370 Assembler) and I wouldn’t encourage anyone to suggest I return to that discipline within our profession. As enthusiastic as I was at the time about the usefulness and precision of Assembler, I would never champion a return to usage of any of these languages.

The reason there’s so much discussion on the subject of languages within the NonStop community perplexes me somewhat, and I often come away amused by it all – within a community viewed by the population at large as being on the forefront of technology, why would any time be spent on waxing eloquently over the use of languages long past their “use-by dates.” To be specific, why are there so many within our community passionate over Tandem languages such as TAL and even TACL. “I’ve written this neat TAL routine!” Wow! “I just created this wickedly powerful TACL macro!” Even wower!

The story that get’s lost in these discussions is the drive to greater productivity and to greater maintainability. There will always be arguments over the precision and control that can be exercised using these languages, and there will always be a place for them I suspect deep in the bowels of the system – but for the majority of us who need to meet deadlines, there’s little to be said in continuing to pursue projects using these languages.

There are only two reasons why anyone in the NonStop community would still want to work with legacy languages and tools such as TAL and TACL. I’m sorry, and this will hurt some of my closest friends, TAL and TACL supporters either refrain from learning anything modern because they don’t feel there’s any real value from doing so this late in their life, or they view it in part as job security. With the downsizing and off-shoring that’s taken place over the past couple of decades, someone has to keep the lights on and support the many lines of code that’s still in operations and until the system is replaced, “I can hang in there doing what I’ve always done.” The kids coming in from college know nothing of these languages and will be loathe to be assigned to supporting them, so “it’s cool! I will be alright! Pass the diet mountain dew!”

Seriously, the energy being exerted in the pursuit of modernization isn’t happenstance. It’s a serious subject that generates so much analysis at so many companies. We have moved way beyond any need for inline macros, subroutines, procedures, and even objects. Looking at a modern simulation game I have no idea how they manipulate as much data as they do in real time, but the languages in use today cater for a richness of experience unimagined just a few years ago. And the amount of data that’s coming from the enormous transaction flow we see today calls for languages that are capable of manipulating so many dimensions, it’s beyond comprehension. And the capabilities of these legacy programming environments!  

There’s no badges issued at NonStop events that proudly promote skills in legacy languages. And that’s a good thing. Change is going to keep coming at us even faster and there’s just no way we can cut enough code to process all that must be addressed if we stick with the languages and tools of the past. Even if we could, there would be no resources available to properly QA it all, time and time again, for every little change. I’m not suggesting that Java or C# are in and of themselves the ultimate answer – new languages will continue to surface. The real story is to not dwell too long over anything we have mastered. All of us within the NonStop community need to be aware that improvements in this area will continue to appear.

I have driven cars with modern automated clutches and I have been active on a number of forums strongly advocating wider adoption in cars that I like. I still have cars with stick-shifts but my preference as a daily drive, and indeed, for use on the track, quickly transitioned in support of the newer products. Want to feel like a race car driver? Get a manual transmission. Want to be a race car driver? Get a modern automated manual!

And this is how it should, indeed, must be. No more so than when it comes to IT and programming languages. There’s little to be gained from being the last man standing, when it comes to programming. And there’s no future in training our programming offspring in the ancient ways of Assembler!

1 comment:

Tandem Jim said...

One of the advantages of learning to program in the older languages is that you were constrained in the amount of memory that you could use, and you had to be aware of the environment that you were working in, so that you didn't overlap work space into another program's work space thereby corrupting both programs. The ideal programs were compact, concise, and fast. Memory was measured in K, disk was expensive and tended to be unreliable, and tape (the medium of choice) was both fragile and time consuming. With the newer languages, programmers don't worry about memory size or efficiency. If it doesn't work correctly or as fast as it should, then just throw more memory or faster hardware at it and it will function. Newer hardware is being developed to handle the increased size and complexity of such programs. Granted, the older programs were limited in what they could do, but many of them formed the basis for the newer languages. Unfortunately, the effort required to produce the same quality of code in the newer languages is not being taught, resulting in memory leaks, buffer overflows, and other problems that result in poor results or weaknesses in the code that can cause it to be used by hackers. Programming, like any other skill, still requires a sound understanding of the basics before you can push on to more advanced methods.