Comments on Computer Languages
by David Barth, 2006
I worked on Y2K with Gates Rubber Company here in Denver, and our work went very well with no problems at the turn
of the century. The interesting thing is that a couple of years after Y2K, Gates management was told by Oracle that
Cobol was outdated, and that Oracle apps could be put in place quickly and efficiently to provide the same
functionality and even greater functionality. Gates management, like most managment, assumed that Oracle's pitch
was accurate.
So, Gates hired an outside vendor to come in and rewrite their apps in Oracle. Oracle's bid was too astronomical
to consider them to do the rewrite. The selected vendor promised that the work would be done in a year. At the
end of the first year, they begged for six more months. Six months later, they begged for another six months.
Gates was bleeding big bucks to pay those 35 rewrite guys, and after two years, Gates management said install it,
bring it live, and get the hell out of our house because we can't afford to go into the third year of rewrite.
Well, it was cripple-ware, and, over the first five years, it was smoothed out, but compared to the original
Cobol, it is a train wreck. Much less functionality than the old Cobol apps.
Converting to a "new" language is a tough row to hoe. I hope that no companies try that trick without a lot
of study (and some luck).
When Grace Hopper described Cobol to somebody many years ago, the person said, "But Grace, then everybody will be
able to write programs!"
I asked a C++/Java programmer how he did maintenance on code that has thousands of lines of gibberish code that
looks like "i(r,q,m)x". He said they carefully determine where the offending code is, surgically remove it, and
rewrite the new code from scratch because existing code is rarely maintainable, let alone, readable.
Once the bugs are worked out of an app, maintenance is in direct correlation to changes in company policy and
procedures. Maintenance that is designed to keep an app up-to-date is necessary, regardless of the language it
is written in. A company that freezes the functionality of its apps can reduce or reassign its maintenance staff,
but most companies don't want to do that.
The problem with C-based languages like C++, Java, C# [C Sharp], and VBA is that there is no language reference
because there are a zillion ways to write code. And, that code is all in shorthand, so it
isn't self-documenting like Cobol is. These languages, as well as VBA, are descendents of C, which was developed
by some guys at Bell Labs who had too much time on their hands. They didn't expect or want that sort of shorthand
code to be used to write massive apps. They wrote it so that they could do little, quickie programs without
getting "writer's cramp."
Now, we have these huge monstrosity programs in Java and C++ that, someday, will fail massively. I think we have
a long way to go before we have a way to write code easily, as we had with Cobol. At least with Cobol, you
could "read," understand, and maintain it, if the original programmer did his job right.
As for "object oriented," a buzzword that ignorant managers jumped on and decided they had to have it, even
though they didn't know what it was, Cobol was given that capability by Fujitsu, but it was too late. Cobol
was considered "old stuff, unworthy of use." So, here we are with gobbledegook C++, Java, and VBA code that
is difficult, if not impossible, to read. I took three college classes on C++ and Java, but I didn't get much
out of them except a feeling that we've gone backwards as far as programming goes.
I had a project a couple of years ago to write some VBA for Excel. I bought $100 worth of books about VBA to
try to write the code I needed to reformat billing statements. I soon found that the books were worthless,
and the only way I could find out how to write it was to do Internet searches. And sure enough, there were
guys out there who had put up blogs saying, "Hey, I accidentally found out how to do such-and-such, and here
is how to do it." Thank goodness for those guys. I found the code I needed in about a dozen different Internet
locations, and was able to complete the project. No one else on the planet can read that crap, but
it works!
Intercom, the magazine of the Society for Technical Communications, has a technical glossary that describes
C++, C# [C sharp], and Java as follows:
"Three variants of a single programming language [C] in which it takes longer to create a printout of the
phrase "Hello World!" than if you were to carve it in stone with a hammer and chisel. Industry critics believe
these languages single-handedly ended efforts to make computers serve humans rather than
vice versa."