Most of their cash register controllers can run on x86, so, it's not dependent on their hardware for the backend.
Their cash registers can run the 4690 OS or Windows/Linux/whatever, but, most choose to run the 4690 Operating System due to its security features.
I worked at IBM in their retail marketing side in the early 2000's, so, it's possible that everything I've typed here is 20+ years out of date.
> I worked at IBM in their retail marketing side in the early 2000's, so, it's possible that everything I've typed here is 20+ years out of date.
4690 is pretty close to dead. Maybe not entirely dead, but closer to that status than it has ever been before. From what I understand, even before IBM sold it to Toshiba, the plan already was to discontinue 4690 and replace it with Linux. At the time of the sale, IBM was in the progress of replacing it with "IRES" (IBM Retail Environment for SUSE); Toshiba has instead chosen as the replacement its own Linux distribution, "TCx Sky", which is a customised version of Wind River Linux.
The terminal release of the 4690 OS was V6R5, released 7 years ago. The latest security update was CSD 2010, released in January 2020. There are probably still some people using it even today, but it is very much a legacy system, with zero plans for any further enhancements; it isn't even clear if there will be any further security updates in the future, or if the January 2020 update was the last one. (I guess it may depend on how many people are still using it, what further security bugs might be discovered, how much those people are willing to pay to fix them, etc).
IBM is a dinosaur company that exists because of embedded connections in government, banking, and defense. They charge 100x the going rate for ancient tech that’s insecure and an absolute nightmare to develop for.
The sooner everyone drops anything associated with IBM or Oracle, the better for everyone. Absolute cancers.
If the only alternative is "AWS, Docker, Kubernetes, Terraform, Spark, Aurora, etc…" I might have to think long and hard about it...
- No devops, you have real sysadmins whose priority is security and system administration, not development.
- Not relearning to invent the wheel every six months. The technology changes incrementally. If you get out of the field for a few years, read the "what's new" sections of the new manuals to catch up.
- Documentation. IBM docs are great, remind me of NASA docs. They have everything you need, you can go days without googling a problem.
- Backwards compatibility. Decades old sources can be compiled, decades old binaries can be run. Architecture changes are handled transparently.
- Simplicity. The interfaces might seem primitive compared to PC OSs, but there's also less complexity, and less attack surface.
- Uptime. Almost everything, including CPUs, is hot-swappable. This doesn't add to the joy, but it's remarkable.
I think it's things like these which makes me thing AWS will remain the top cloud provider for the next few decades.
Azure policies are comparatively a breeze, making it the smart and increasingly obvious choice for any regulated (read: large) corporation.
Consider some ideas which exist in z/OS but not in Unix or Windows:
- record-oriented file system: the filesystem is aware of the record-boundaries of files, whether they contain fixed length or variable length records, etc – and enforces them
- indexed files: key-value type files are built in to the filesystem, not some add-on library
- the catalog: a database mapping file paths (dataset names) to the volumes they are stored on: so you can move a file to another disk volume (or even to tape) without changing its filesystem path. You can kind of approximate this using mount points, symbolic links, etc – but it is a lot messier
- partitioned data sets (PDS/PDSE): like ZIP/TAR files, but again, built-in to the filesystem
- block-oriented terminals: you send/receive data to terminals as a screenful at a time, not a character at a time
- DDnames: your program inherits (the moral equivalent of) file descriptors, but instead of just having numbers, they have names (instead of fd 0, you have a DD called "SYSIN")
You can argue about whether the above features are sensible – the designers of Unix were well-aware of them, but decided they were examples of unnecessary complexity – but sensible or not, they are interesting.
Something that neither UNIX nor Windows have fully embraced to the extent of mainframes/micros.
All the deployments from Java and .NET workloads end up with some kind of compromise to classical UNIX/Windows development.
I think we've had this discussion before. The Language Environment (LE) on z/OS doesn't do that. The Integrated Language Environment (ILE) on OS/400 [0] does do that. But while one part of ILE (the CEE runtime and its API) is common code between z/OS and OS/400 (and also VM, VSE, TPF and OS/2) – that bit doesn't do any of the "keep oldie programs running by recompilation" stuff. Whereas, the parts of ILE which does do that (the OMI to NMI translator, and the NMI to POWER translator), is 100% OS/400 specific, and has no equivalent on any other IBM platform (z/OS included). You seem to be getting led astray by the fact that "Language Environment" means a lot more in OS/400 than it does in MVS – it is a mistake to assume that just because the later uses the same phrase, that it uses it to mean anywhere near the same thing. LE on MVS is just one (relatively small) part of the capabilities provided by ILE on OS/400.
(Also, this "platform independence" doesn't really have anything to do with anything "Language Environment", since it pre-exists ILE entirely – EPM and OPM before it had the same ability. You are associating "Language Environment" with something which was never actually the selling point of ILE, since it was something OPM and EPM already could do, at least in principle. The real selling point of ILE is that it could support recursive/stack-based HLLs such as C and Pascal more efficiently than EPM, and support mixing code from multiple languages much more easily than OPM and EPM allowed. Plus, a lot of its implementation was shared with z/OS and AIX, which was a bonus for IBM – not just the CEE runtime, but also the compiler backend–the later is not considered part of LE on z/OS, rather part of the compiler products)
[0] Yes, IBM i, I know – but I hate that name, it is confusing. IBM should have just stuck with OS/400, it was far more memorable and distinctive.
This is so interesting, having witnessed the commoditization of PCs, the Cloud, and now virtual desktops on the cloud. We're basically reinventing the multiuser mainframe after discovering it actually had good proposals.
The problem is, it's being reinvented with a monstrous degree of complexity and fragility. It's retaking the road not taken, but carrying the other road with as well.