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%
but also it can be locked onto a specific model. If
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