Everything can be “fine” relative to expectations, if said expectations are low enough. Did you ever use a PDP-10 real timesharing system?
I am not making up the “control card error” message, but that may have been an early version of TSO, maybe even a beta provided to this particular university. The fact of the matter is that outside of IBM Labs, IBM really never understood timesharing and the real meaning of multiprogramming.
I only used it in a business environment where it worked consistently and well. My only complaint was that the company originally didn’t provide every employee with a terminal. It was a “sharing” system in more ways than one.
We had more issues with the mainframe going down, but that was rare, as well.
The mention of knowing machine code reminds me of the PDP-11 that our dept. had when I was an undergrad. No disk, no magnetic tape. Just used paper tape.
To boot the machine you had to enter a series of machine ops into the switches on the front to set up a primitive boot loader. So you had to mentally translate the hex code to binary. That little program could then read the real boot loader off the tape. And then you could really start loading things. Turning off the machine meant starting over so we tried to avoid that. And a crash would nearly bring people to tears.
Some people memorized the switch positions for each instruction so they could enter the loader in faster. Hex? That’s for wimps.
I’ll point out that multi-programming and timesharing are two very different concepts. When I was talking about DOS/360 & OS/360, TSO was 10 years in the future. You seem to have jumped straight from multiprogramming to timesharing as a use case.
You’re quite right that the early TSO versions were dreadful. Because it wasn’t meant to be what became known as “timesharing”. Despite what the moniker TSO decided as.
I would argue that timesharing is simply the most general implementation of multiprogramming. Multiprogramming just means, effectively, the ability to run more than one program at a time through some simple arbitration mechanism. Timesharing requires the same thing, but adds on tremendous requirements for task scheduling based on many factors like time, priority, and fairness, as well as security and real-time responsiveness. It’s a much, much more challenging environment that IBM’s batch multiprogramming.
There were only two IT paradigms that IBM did well, and I never had anything to do with either of them. One was offline batch processing, and the only online one was transaction processing (e.g.- CICS).
IBM technologies have always reflected their culture, which was always all about business, though I acknowledge the scientific mainframes they produced over the years. Said scientific mainframes being leased to universities at fabulous discounts, the better that the young grad students know and love IBM as equivalent to “computer” when they get into decison-making positions in their careers!
There is an unbroken line of IBM mainframe OSes from OS/360 directly to the current z/OS for current IBM mainframes. MVS is right smack dab in the middle of that lineage. And in one form or another is probably the variant having the longest lifetime to date.
If you’re seriously curious, this is a great start:
VM was a separate animal in that it was what’s now called a hypervisor. it wasn’t an OS exactly. It was a mechanism to virtualize the hardware, and then in each walled-off VM space you could run one of the actual mainframe OSes which in turn supported running your apps. Given the lack of hardware support for virtualization in the early machines, and the overall low performance of 1970s machines by modern standards, VM was quite a dog.
The various OSes for IBM minicomputers System/3, System/36, etc., are also different animals from the OS/360 lineage.
My wife used SAS in several of her past (like in the 2010s) insurance industry jobs as a data scientist, though one of those was starting to slowly move to R.
I taught PDP-11 assembler, and we had a machine for the students. No disk, since we didn’t want them to store anything, but their programs were on punch cards. I also used one for research - that one had a washing machine sized disk drive, and all the grad students got our own platter. Plenty of storage.
The student machine had to be rebooted from switches, but the other one had a little ROM which held the boot program, so you just had to start executing at location 0 and you were all done.
Those were the days when computer scientists learned how to pull all nighters so we could get to the machine when it was not so crowded.
I was using it to do statistics in an academic setting. That has almost been completely replaced by R and Python, though SPSS is still holding on. I’m sure there are outposts of SAS users in academia, but nothing like it was 20 years ago.
I really liked the SAS Stats documentation. Everything was explained in detail, with citations. I think I probably learned more from those books than my stats text books.
I did a CS degree in the early 80’s. Languages there were Fortran (on punch cards), PL/I, COBOL, Lisp, and both 8080 and S/360 assembler. Since the school was an IBM shop we had to learn JCL as well.
First job was COBOL, JCL and a bit of SAS.
Second job was COBOL, JCL, a bit of REXX, and some SAS before
switching roles and becoming a DB2 DBA.
Third job was as a tech support engineer for a DB2 tools company so more DB2 and some SAS. Then switched roles back to development and picked up C and Java.
Fourth job was mostly Java and a bit of C. And various flavours of SQL databases.
Last job was Java, C++ and more SQL.
Happily retired now with no inclination to do any programming.
At a job I worked at from 2006-2013 we all made very heavy use of Interactive Data Language (IDL), which I’d never even heard of before starting there. I’ve also never encountered it since. It resembles MATLAB with quirkier syntax and a less refined user interface.
Not to be confused with VMS, which was used on the DEC/VAX machine I used in the 1980s.
Speaking of DEC… many of the “top” graduates in my EE class were hired by DEC. It was considered the elite place to work at the time. Apparently my GPA wasn’t high enough for me to work there.
Despite the perception in some quarters that Fortran is a ‘dead’ language, it is still in active development including major revisions in 2010 and 2018. While it is no longer taught in schools or in use as a general user application language as it has been superseded by much easier to learn and use interpreted languages like Python or Matlab, and lacks features and libraries for easily integrating with web applications or embedded computing devices, it is the basis for much of the engineering and simulation tools in use today with any heritage going back to the ‘Eighties or before including nearly all commercial finite element and computational fluid dynamics packages, many major computer-aided drawing and solid modeling systems, electrodynamic and magnetoplasmadynamic simulation tools, global climate circulation models, much of the academic software used for astrophysics and geophysics, et cetera, not only due to its extensive heritage but also because of near ‘bare metal’ performance in doing array-type calculations, which was crucial back in the days of mainframe computers less powerful and desktop “PCs” that were less powerful than a cheap commodity laptop today but also important when running enormous discretized problems that are essentially linear algebra problems of massive sparse matrices. It isn’t the language I would adopt for doing new software development today but it is imperative if you are maintaining and developing these codes with extensive heritage that no one wants to redevelop because of the enormous effort to write and validate.
There is an almost endless selection of macro and purpose-built languages that have been fully deprecated and virtually (or in some cases literally abandoned) but the one I used the most was a multimedia package called ToolBook, which was a HyperCard type application for Windows (even somewhat interoperable with HyperCard) which saw broad use in programming kiosk and general graphical user interface applications in the pre-web browser area. The advent of web browsers, JavaScript and interactive HTML schemes, and eventually web development frameworks for general purpose languages like Python have made these types of stand-alone applications totally obsolete (and most weren’t very enduring in the first place) but they made it easy to create interactive windowing graphics applications using a quasi-object oriented framework without really needing to have a deep grasp of OOP philosophy or and understanding of the underlying windowing system of the operating system.
I’ve used and forgotten so many flavors of Lisp that I couldn’t begin to name them all, several Pascal and derivative languages, Perl, many versions of Java (ugh!), C/C++/Objective-C, a number of sequential control and graphical test equipment interface languages, and was once a moderately intensive user of Mathematica and what is now called the Wolfram language. But today I’d estimate that 95% of programming is in Python along with the Matlab I can’t avoid and only occasionally looking at legacy Fortran and C/C++ code because virtually all of the programming I do is data reduction, signal processing, machine learning, and visualization for which Python has powerful and easy to use libraries.
Another APL programmer here. I really liked it. I’ve also used TSO and JCL, although i didn’t really write anything, i just tweaked existing scripts. For that matter, i once had to edit a line of FORTRAN, but i wouldn’t say i ever used it myself.
When i retired, about a year ago, my employer still used SAS. it was getting squeezed between R and SQL, but i had to use it from time to time, and i had co-workers who used it every week.
That takes me back. I learned to program in QBasic as a teen from a library book. Also attempted to write a simple game using the horrible interface on my graphical calculator, but it had so little memory I had to delete it.
At university I opted to do courses in Fortran 90(?) and Java, also learned some C by myself. Haven’t seen a sniff of Fortran since graduating, but I use Java today after an interlude in C#.
My husband used Delphi in his first job, which is an object-oriented version of Pascal. He complained bitterly while learning it, and then again when he had to switch to Java. Pretty much nowhere uses Delphi today.
My dad showed me his programming project from undergrad in the 70s: not sure what language it was, but it was a box of punched cards.
I programmed a slot machine game on my calculator. And not just a “one armed bandit” style but one with mini games. It just about fit into the 32 kB and took ages, given that there obviously was no keyboard; every command was entered via a menu.
However, the primary purpose of the calculator had been for exams. So I took it to my maths exam and put it on the screen “Delete memory Y / N?” The exam moderator took a look at the screen, nodded, and carried on walking.
But I hadn’t actually deleted the memory yet!
I hesitated for a minute, decided it wasn’t worth the risk, and tapped “Y”.