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++.
