Hi Chris,

I can simplify this with 3 simple questions. Realize I'm very pro-C/C++ with a 
couple of caveats. I would have preferred C++ for my product if it didn't 
create more problems than it solved. I'm curious about your experience as a new 
convert to C++. Unlike any other applications, z/OS automation has it's fingers 
in everything (most can't even imagine). I suspect that non-z/OS automation is 
still primitive in comparison even though you combined it with z/OS.  

1. Can you name a couple of things that would have been untenable in HLAsm?
2. Can you name a couple of things that were untenable in C++ that required 40% 
HLAsm instead of  C++ inline HLAsm?
3. Were there tenants of IBM philosophy you violated because of inconvenience 
or difficulty? I must admit, I am guilty of this because of influence of 
others. 

HLAsm has a huge number of flaws many of which are painful.  Registers which 
C/C++ solves wonderfully. HLASM macro language needs major improvements. IBM 
wrote PL/s for internal use. The list is far too long. 

Every language has flaws. As developers in the IBM world, we have cardinal 
rules drilled into our heads. RAS, backwards compatibility and simplicity to 
name a few. I find these problematic in C/C++ but most typical C++ enthusiasts 
quietly ignore the problems.

We claim C/C++ is a portable language but ignore exceptions where IFDEF can't 
even solve the problem. I suspect that some of the 40% STC in HLASM could have 
been written in C++ with some inline HLAsm but you made the decision to write 
it in HLAsm.

C/C++ APIs can be problematic. IBM ported C/C++ to z/OS but they didn't use 
traditional solutions. For example, fopen( RECFM=) is a great solution but not 
typical.  Most solve this with new functions so I would expect setFopenRecfm() 
or fopenIBM(). 

An example of RAS problems is message handling in C++. It's not compatible with 
all environments, isn't self-documenting and not a consistent implementation.

With the exception of macro language, C/C++ is by far a superior language 
compared to HLAsm. C++ can be unnecessarily too wordy at times. Even JavaScript 
can have a better API implementation compared to C++.  For example, compare the 
implementation of charting in JavaScript versus C++.

Reply via email to