On Fri, 20 Jun 2025 10:46:21 +0100, Jonathan Scott 
<jonathan.scott...@gmail.com> wrote:

>You'd be amazed at what can be done using OPSYN to intercept DC, DS, ORG and 
>EQU! 

I agree that OPSYN is powerful that has solved multiple problems for me but 
remember the solution to the problem changes the problem. This is certainly one 
way to solve the problem.

Macro language has many blemishes and it's not a language that I want to write 
on a daily basis. AIF, AGO and other statements are barely tolerable but macros 
make HLASM a great language. Structured macros (if, else, endif, while, ...), 
I/O and much more.

> I would recommend that rather than defining prefixed labels 
> for each instance it would be much better to use anonymous fields 
> except for the standard DSECT then to use qualified USING statements

No one suggested a qualified USING. Instead, the suggestion was creating unique 
labels that are never referenced (except in chaining if needed) and the USING 
only references. 

What is the downside to labels that never get referenced? For lesser 
experienced, a single statement is far easier to understand than it being 
modified depending upon a macro.

> I've previously written tools to support "object oriented" assembler "class" 
> definitions 
> But admittedly that stuff was very tricky to set up and it took a lot of work 
> to make it sufficiently reliable, 
> robust, well-documented and maintainable to be suitable for official product 
> code, so it's not really a quick solution.

OOP is overrated. So much so that GO does have the concept and Google designed 
the language to require rewriting code over converting it to GO.  

Macro language gives HLASM the ability to emulate and quickly implement 
features from other languages. For instance, our DCB and I/O macros provide the 
important parts of OOP much in the same way as GO.

Reply via email to