+I know: Ultrix, blah blah...but seriously no Ultrix wasn't embracing.
+I know: Ultrix, blah blah...but seriously no Ultrix wasn't embracing.
"One of the questions that comes up all the time is: How enthusiastic is our support for UNIX?
Unix was written on our machines and for our machines many years ago. Today, much of UNIX being done is done on our machines. Ten percent of our VAXs are going for UNIX use. UNIX is a simple language, easy to understand, easy to get started with. It's great for students, great for somewhat casual users, and it's great for interchanging programs between different machines.
And so, because of its popularity in these markets, we support it. We have good UNIX on VAX and good UNIX on PDP-11s.
It is our belief, however, that serious professional users will run out of things they can do with UNIX. They'll want a real system and will end up doing VMS when they get to be serious about programming.
With UNIX, if you're looking for something, you can easily and quickly check that small manual and find out that it's not there. With VMS, no matter what you look for -- it's literally a five-foot shelf of documentation -- if you look long enough it's there. That's the difference -- the beauty of UNIX is it's simple; and the beauty of VMS is that it's all there." -- Ken Olsen, president of DEC, DECWORLD Vol. 8 No. 5, 1984
And I can, in fact, verify that what Olsen said about five-foot shelves of manuals too.
And VMS was (and OpenVMS still is) an impressive operating system, some features of which the Unix/Linux ecosystem is just gaining parity with.
That said, It was commodity microcomputer hardware that doomed DEC, not it's faint hearted support for Unix, IMHO.
And he's right. I remember working at a company that had a wall of VMS documentation. It was amazing.
I still feel that way.
Old VMS programmer here. In addition to the above, the thing I remember is that there was more of everything in VMS, and it was all more complicated.
Unix has files which are just strings of bytes. VMS had those, but also several (or many) other file types with records and indices kind of like a database, and a library of functions for each different file type.
Unix has processes. VMS had processes and jobs -- a job is a group of processes, when you log in you start a job, all the subprocesses you start in that login session belong to that job etc. So there are functions for dealing the jobs as well as processes.
Unix has environment variables. VMS had logical names which could be used in a similar way, but there was a process logical name table, a job logical name table, and a system logical name table, and functions for dealing with all of them.
And on and on in this style. Whether you see this as an advantage or disadvantage depends on whether you have an application that can use some of these features, so you don't have to write them yourself as you might have to in Unix.
In addition to that, as the link above explains, VMS had facilities that early Unixes just didn't have, such as clustering - you could connect several VAXes to a common shared file system and share computational load. Also there was DECNET, a complete networking stack, a parallel universe to TCP/IP (which was not so pervasive in the 1970s and 80s). Each of these contributed a couple of thick binders to that wall of documentation.
The VMS manual set was delivered on a pallet! It was bigger and heavier than most of the later VAX computers.
- At the time Olsen made that statement VMS had shareable libraries (DLLs), and none of the several Unixes I used did. The system administrator had to manually enable sharing of their code pages between processes if you wanted that, but they were there.
- The indexed files mentioned above were called ISAM. There were also utilities to reindex them, and load and save them to flat files with fixed column sizes; since that was the common way data was held in those days, it would be like having automatic conversion to and from JSON, XML and CSV now. At extra cost, there was a SQL-like query language, just different enough from IBM's SQL language not to get sued.
- The compilers were far ahead of Unix's. The FORTRAN77 had a lot of IBM extensions, so scientists could just compile their existing programs. It also had keyword extensions to work with the ISAM files. Later on, a newer and better Pascal came out, as well as an Ada.
- Terminal handling was handled by the kernel, in contrast to Unix where applications went off and read /etc/termcap and the user had to babysit eval tset in their dotfiles. If a command line program was nonresponsive, the input was queued instead of being half-duplex interleaved with program output as Unix still does it.
- The symbolic debugger was far ahead of Unix's adb.
To test new code, all I had to do was create a directory to hold my changes, and copy in just the files I wanted to update. Set the logical name aliasing the code location to search first in my "branch" directory, then in the main directory. Any code in found the top-level search location takes precedence over the main directory.
Boom! Instant branches, but supported at the OS level.
Here's an interesting comparison:
http://www3.sympatico.ca/n.rieck/docs/vms_vs_unix.html
Although it's light on internals.
Much more detail can be had from here:
http://www.hoffmanlabs.org/vmsfaq/vmsfaq_contents.html
If you want to check out OpenVMS for yourself, you can get a "community license" and the code once it's released:
https://vmssoftware.com/about/news/2020-07-28-community-lice...
My first exposure to non-personal computers was via VMS at the university. It was exciting. But then a few months later I got access to a SunOS lab (and shortly after, AIX and HP-UX labs). Mind blown! Instantly in my mind VMS became just a toy, UNIX is where the hacker ethic lived for real. Thirty years later, still on UNIX (BSDs and Linux now). VMS? Yeah..
I worked at a mostly DEC shop for a while. They had a lot of VMS systems, but when it came to Unix, they went with Sun.