Saturday, April 16, 2011

Jabberwocky

250px-TheJabberwocky
Will it compile? - Courtesy of Wikipedia

by blogSpotter
I’m a software engineer by day and a widely read blogger by night ;-). Being a little “long in the tooth”, I can recall simpler times for business data processing. Back in the early 80’s COBOL was the “lingua franca” for Fortune 500 companies – with a bit of Pascal, ALGOL, and PL/1 thrown into the mix. Some 4th Generation reporting tools like FOCUS and MARK IV rounded things out. Young people from schools as diverse as Harvard, UT or UCLA would be versed in nearly the same coding standards. A lad working at Chevron could pretty easily segue over to Frito Lay.

With the advent of UNIX platforms and client/server computing in the late 80’s, the options multiplied… The language choices were enriched with C, C++, perl, smalltalk, Visual Basic, Shell scripting (in different UNIX “flavors”) - - leaving off many things here. Each new entrant was hyped for various advantages – rapid development, reusable objects, fast execution, etc. The advent of the Internet in the mid 90’s created a dizzying multiplier effect. We added java, javascript, J2EE, HTML, XML to the list. Suddenly we were also picking “frameworks” like JBoss and Spring. As if these weren’t and aren’t enough, we also have proprietary choices such as SAP and CASE tools to compete for our corporate dollars.

Well, variety is the spice of life; whose life isn’t made richer by more choices? Without multiple options, we would never have the story of Goldilocks and the Three Bears. Every enterprise is like Goldilocks, looking for a fit that is “just right”. I myself supported mainframe legacy (“sunset”) applications during the 90’s and supported an aging C++/PowerBuilder application during the 00’s. Like Rip Van Winkle (another fairy tale) I woke from my 17 year legacy-induced coma to an IT world overrun with java beans, dependency injectors and advisor methods. Computer science used to have mathematical precision and concise meaning in its charter; now it seemed more to resemble pop psychology with complex verbiage and obtuse data structures.

“I’ll get to Scotland before you”

When I look at the resulting databases and graphical interfaces from all these advancements, they don’t seem any more sophisticated than what could be done with something relatively simple – a scripting language or a simple HTML. I can’t help but wonder if the value added (which, undeniably there is some) isn’t countervailed by:

• Expensive contractor fees
• Threat of obsolescence for technologies out of the mainstream
• Forced option of replace, not repair for broken systems
• Forced option of “as written” for opaque, unchangeable systems

I just received an O’Reilly email ad -- O’Reilly is the premier retailer of computing texts. The languages and skills advertised were: GIT, R, Gamification, Arduino, MS Expressions and MS Prism. I have never heard of any of these, much less mastered or excelled in them. I know I’m an old dog, but I do wonder how much branching capacity a young software engineer will need to add GIT and R to his repertoire already weighted with J2EE and Hibernate. Maybe they are different animals (“a graphic arts engineer wouldn’t need to know Hibernate!”). I can’t help but remember what Mac, the 63 year old man nearing retirement told me at my first job… K.I.S.S. Keep It Simple Stupid. (or Silly if you take offense at Stupid).

The proof is always in the pudding. That’s true of economics, engineering and computer programming. If we have a difference of philosophy, you do it your way and I’ll do it my way. You take the high road and I’ll take the low road. If someone is full of grandstanding horse manure it will be established by the competitive results. I can’t help but think that KISS wins the race (and I don’t mean Gene Simmons!).

I’m going to close with a snippet from Lewis Carroll's Jabberwocky which has as much clarity as the last advisor method I reviewed:

Twas bryllyg, and ye slythy toves
Did gyre and gymble in ye wabe:
All mimsy were ye borogroves;
And ye mome raths outgrabe


© 2011 blogSpotter

Labels:



2 Comments:

Anonymous Anonymous said...

Few new languages have a purpose beyond aggrandizing their creator.

You can write OO in assembler--I've done it. Anything that can be done in any new, faddish language can be done in assembler, since that is what the silicon really runs.

To me, the only really significant advances in languages where:

COBOL: 1st english like translations to assembly

FORTRAN: Real proceduralism, scientific precisions, and reasonable control of looping, etc.

C++: OO. C, as much as I liked it, was FORTRAN for assembly geeks. C++, once matured, gave a true OO framework that allowed, once compiler technology and processor power allowed, for true software re-usability, rapid development adaptation and elegant designs.

Prolog: The true non-procedural AI language. Comparatively, LISP is for weenies.

8:46 PM  
Anonymous Anonymous said...

Readability and quick understanding used to be goals of coding. A newcomer could peruse your "top down" design and have an idea what the code was doing.

Nowadays I see code that is twenty layers deep, far flung and extremely difficult to decipher or compile. To say, "I'm a java programmer" is kind of a meaningless statement without also specifying workbench, framework, middleware etc etc.

1:16 PM  

Post a Comment

<< Home