Tuesday, April 08, 2008

Mouse? What Mouse?

With the CFCC 50th birthday celebration and our department's decision to go with "Information Technology over the past 50 years" I saw my opportunity to crack open the vault of ancient programming languages. (If you don't want to read about the evolution of programming languages, stop reading NOW!)
When I was teaching at Mercer, one of my classes was the Theory of Programming Languages. A large portion of that class was devoted to the evolution of programming languages. Now that I think of it, I guess it is only natural that I find the topic fascinating. My father is a history buff, so perhaps I am, too, except in the very narrow field of programming languages. The dirty little secret is, not only do I know about them, I can also program in them (and have in fact taught many of them too!)
My first real programming language was FORTRAN. Since it was my first it will always be near and dear to me. The fact it is the original scientific programming language and perhaps one of the oldest, makes it even more fun. I have used it as a student, and taught at on the base. I even used a good chunk of FORTRAN on my thesis. For the birthday I had a FORTRAN program I wrote a while back that calculates the day Easter falls on for whatever year you ask it. I know this may SEAM simple, but have you ever REALLY read how they calculate the dates for Easter? Trust me, you NEED a computer program, and probably some advanced math as well.
Beside the FORTRAN is Lisp. While not one of my all time favorites, it is fun to play around with. Lisp is probably the VW Beetle of programming languages. Those who "get it" love it and won't ever let it go. They'll swear up and down they can make it do anything all the other languages can do and more. But when it gets right down to it, they never really do. It's cute, and it's fun, but really, very few people in the real world have much use for it. (Lisp is for those artificial intelligence geeks at UC Berkley.) The Lisp example solved the Towers of Hanoi problem, but taking advantage of Lisp's strong recursive abilities.
Yes. COBOL. All real programmers hoped that Y2K would kill off the last of COBOL, but some jerk went out and created a new version of COBOL and even Object Oriented COBOL. Someone should find who did that and hurt them. I'll gladly contribute $20 to the "Whack The OO-COBOL Creator Fund." For decades I have heard "Reading COBOL programs is like reading a book!" Well that may be, wiz kid, but WRITING COBOL IS LIKE WRITING A BOOK! If I wanted to write books I'd be an English Major! COBOL stinks and if you like it, you must stink to! NEXT!
The cute little flowcharting book represents the paradigm shift from "Unstructured" to "Structured Code". Goto statements are gone. Well not really, but programming classes stopped teaching them. I now regularly tell my students that no matter where and no matter when if they ever use a goto at any time in their lives, I will jump out of the shadows and punch them in the back of the head. Using a goto statement is a clear indication that you don't have a clue what you are doing.
Yes, I currently teach flowcharts in my job. For purely theoretical reasons I'd rather teach Nassi-Shneiderman Diagrams (or "Nasty Schneiderman Diagrams" as we'd call em). But since they pay me to teach em, I guess I'll just go with the flow... charts. (Yes it's a bad pun. Sue me!)
Ah, Pascal. The cute, fun, little teaching language. I squeezed a whole lot out of that language, and made a little money off of it over the years. Eventually, though, I simply HAD to take off the training wheels and step up to the grown ups table.
C++, a real language for real men. After teaching C++ at Mercer for a couple of years and then on the base for about 4 years, I now think in C++ and have to mentally translate it into the current language I am using. Sadly, my school does not teach C++ anywhere, so i am left to write C++ programs for fun. Yes, I write software for fun. There's nothing wrong with that!
I included Ada, not because it is an especially great language or even because it represented some new trend in the evolution of programming. I put it on display as an example of what you get when the government (DoD) decides to make it's own programming language. The language was so bloated and complex and took so long to create that by the time is was "done" no one would use it. The DoD basically FORCED people to use it, but within 10 years even the DoD stopped using it. The problem then was that they had a fleet of aircraft with Ada software on them that had to be maintained. Thus my job teaching Ada on the base, since the Air Force cannot find Ada programmers to maintain code they have to grow their own. That's your tax dollars at work folks! Keep that in mind next week (April 15th)!
Finally we reach Visual Basic. The language we use in our Intro to Programming and Logic course. I more or less taught myself VB while working on the base. I wrote a few programs to help us speed up some of the menial tasks around the office, and to keep my programming skills sharp.
I'd certainly love to crank up a C++ class. (That's actually a pun, but only geeks will get it.) There are a few aspects of VB and the particular book we use that makes my skin crawl. (Global variables, which are almost as bad as Gotos, are standard fare in our text.)
While I certainly got a great deal of enjoyment and satisfaction out of my languages display, I think the only thing that anyone else got out of it was the fact that in the old days of programming, there was no mouse and you actually had to type in words to tell the computer what to do. You lazy kids today with your crazy mouse with not one, but two buttons! You don't know how spoiled you are!
Krystal Lovers like it steamy.

No comments:

Post a Comment