Jerry Feldman wrote:
On Tuesday 09 May 2006 2:45 am, Per Jessen wrote:
I used to do some C++, but in my most recent job as a software engineer, I was hired to help migrate a product away from C++ - to assembler. This was on S390.
This was a very bad decision.
As it happens it was the very best decision. V2 (or its succesors) of this product is now running in perhaps +10'000 large mainframe shops around the world. The C++ version was essentially unmaintainable as no or only very little staff existed with the required blend of in-depth MVS/VM and C++ skills. It also performed about 10-12 times worse than the assembler version, which was a major headache. (essentially it made it unsaleable).
It makes the code totally non-portable,
The product would only ever run on S390 or compatible, so portability was not on the list of requirements.
and difficult to maintain.
Nothing worse than the C++ product, I can guarantee you.
Not only is assembler non-portable, it is 100% cryptic (Note that I have written assembler for DEC PDPs, Alphas, Intel IA64)
Funny, that's exactly what we said about the C++ code - "it is 100% cryptic" :-)
but also it can be locked onto a specific model. If you use instructions specific to the S390, that code may not run on earlier IBM platforms.
Of course - you're preaching to the choir. I've spent the last 14-15 years writing system software for MVS, a little VM and some TPF. The project I've mentioned was during my 4 years with StorageTek, now Sun. As for some instructions being specific to S390, IIRC, we kept to S370/XA as the product was also meant to run on a S370-like architecture used in Japan (Fujitsu-built I think it was). /Per Jessen, Zürich