Posted on 10/10/2009 10:35:49 AM PDT by Swordmaker
The first largish program I ever wrote was a text editor in machine language on the Apple ][. I entered all of the code via the mini assembler which allowed line-by-line entry of assembly language statements. As I fixed bugs, if the fixed region of code exceeded the size of the buggy code, I had to substitute a jmp to somewhere unused, insert the new code and jmp back. That's spaghetti code.
One of my classmates was writing an assembler at the same time and V2 of that editor was all in assembly and a lot cleaner.
That IBM "spaghetti" code was so tight that ALMOST 30 YEARS AGO I could run 1.4 million non-trivial IMS (V1.1) ...
Oh, I believe you. One of my friends in college in exactly the same time frame (1981ish) once told me he had a dream about me where I was proclaiming "True Programming is Dead!". And it soon became true. Whether it's the fault of OO (of which I am not a big fan) or just sloppiness in general, technique and skill in programming have declined in general over the years.
Flow of control in strictly procedural languages (coined FBAPP - Fortran, BASIC, ALGOL, Pascal, PL/I by my college advisor Jim Kajiya, now with Microsoft) is fairly straightforward. OO languages starting with Smalltalk and continuing with C++, Ada, etc., flow of control becomes a lot more complex. Flow of control through functional languages like LISP, Icon, etc. can be complex, but it's somewhat simplified in the more limited visibility of global symbols.
Personally, I hate global variables[1] a lot more than I hate gotos or OO virtual functions.
My own example of what Neidermeyer is trying to convey is the Woz Sweet 16 interpreter that was included in the Apple ][ ROM. It was barely over a page of ram (about 280 bytes) and emulated a fully functional 16 bit processor on the 8 bit 6502. Absolutely the finest work of art I've ever seen.
The key thing in this article is "who do you call when things break?" With Microsoft, it's either fix it yourself, or wipe the machine and reinstall from scratch. With enterprise solutions, you have people (like me) standing by 24x7x52 to deal with your issue in real time. That kind of support absolutely costs money.
[1] `errno' is the worst idea introduced with Unix. Fortunately, workarounds have been done over the years so we're not crippled with it.
That's a major issue with Microsoft lock in too.
And speaking of "house of cards", do not get me started on Microsoft email "solutions".
Thank goodness they hadn’t gotten around to that when I worked for them, at least that I could see.
Of course, that was a while ago—it was pre-system/360. We still had a few customers with 704’s and 650’s.
There was a brief time when you could get your hands directly on a small to medium size machine, at least in a University environment, by signing up for it (like a handball court), or just hanging around while some computer jock was running some program during his hour or two timeslot.
At least, that’s how I was able to write some simple programs on an IBM 1620 (at one school) and on a CDC 1604 (later, at another).
Isweartogod, every client's program I was asked to work my magick upon, was written by Italians....
Still, once I had my first professional job post-college, I was one of the privileged few to be allowed my own VT100 on my desk (and more than a few coworkers around my age told me how jealous they were). Most others had to go downstairs to the computer center and find an open terminal.
Things were changing very rapidly though, and within a couple of years, everyone had full computers on their desk at work, and by late 1985, I was running Unix at home :-).
If you pronounce IBM eye-bee-em, how do you pronounce PL/I?
Thank goodness they hadnt gotten around to that when I worked for them, at least that I could see.
Of course, that was a while agoit was pre-system/360. We still had a few customers with 704s and 650s
Every customer-facing front office and education center in IBM
in the early 60s had a UN flag with an American flag
Disclaimer: Opinions posted on Free Republic are those of the individual posters and do not necessarily represent the opinion of Free Republic or its management. All materials posted herein are protected by copyright law and the exemption for fair use of copyrighted works.