[Info-vax] Free Pascal for VMS ?

Stephen Hoffman seaohveh at hoffmanlabs.invalid
Thu May 10 11:54:36 EDT 2018


On 2018-05-10 00:11:59 +0000, Arne Vajhj said:

> The current VMS world is very different from the general world 
> regarding programming languages.
> 
> If VSI wanted they could also get some data:
> * count c.o.v/I-V questions last 10 years
> * count support calls at HP(E)
> * count in jobs ads requiring VMS

That's all where we were.  Where we are can't be changed.  Where we 
want to be?  That can be changed.

And there's no reason to assume that continuing with longstanding 
OpenVMS traditions and incremental changes will produce a different 
outcome.

But then this also gets to whether VSI seeks to stay with the installed 
base, or to add new apps and new customers and new ISVs.

> If I were to make a guess then I would say:
> 
> First tier: C

Also given that an ever-increasing part of OpenVMS itself is written in C.

> Second tier: Cobol, Fortran, Pascal, Basic

Reasonable and unsurprising list.

> Third tier: C++, Ada, PL/I, Macro-32

Support for clang gets both C and C++, Ada is third-party, PL/I is no 
longer offered and AFAIK didn't get ported, and Macro32 is a sizable 
hunk of OpenVMS.  There's a decent-sized hunk of Ada in the operating 
system.  And the APIs for that part of OpenVMS do need some work around 
complexity and fitness for common uses, but I digress.  I don't recall 
if there's C++ in the base distro, but it wouldn't surprise me that 
there are a few hunks of that around.  There's no PL/I in recent 
OpenVMS versions.

> (only counting traditional native compiled languages - so excluding 
> Java, PHP, Python etc.)

What's the rationale for the distinction between interpreted, JIT'd, 
and compiled?  While in practice there can be run-time performance 
differences, all three of those languages are in common and very 
widespread use.  Having at least Python in the base OpenVMS distro 
would work around some of the issues with and limitations of DCL, for 
instance.  We'd have a better choice for hacking SYSUAF data through 
unsupported RMS access or unsupported output-parsing access for 
instance, and integrated support via $getuai and $setuai within the 
vmspython bits.  Programming languages are programming languages, 
whether interpreted, JIT'd or compiled.  Much like the whole "worm or 
virus or trojan". that difference has become a distinction of little or 
no pragmatic difference.

> If I were asked 20 years ago to make a prediction, then I would have 
> expected C++ to grow wild. But I don't think it has happened - it is 
> very rare to see C++ questions.

I do see a fair number of C++ questions around, though for other 
platforms.   If you're interested in the topic of C++ and haven't 
already encountered him, John Carmack is a pretty good source.   As 
compared with other platforms, there are far fewer developers for 
OpenVMS, and the tools have largely been unmodified in a decade or two 
and down-revision, and most of the developers are either familiar with 
the tools or can run a web search and find an existing discussion.  
There's not been a whole lot of change.  Which is good and bad.    
http://gamasutra.com/view/news/169296/Indepth_Functional_programming_in_C.php 


We'll still be dealing with C and Microsoft Windows and Unix/Linux in 
twenty years.  Other bits and baubles that we'll be dealing with?  Who 
knows?  The next five years is important to the future of VSI.  Then 
the five years after that.  And the decisions and trade-offs can and 
will change, just like the current and likely future economics mean 
that some of the more problematic parts of OpenVMS will very likely be 
replaced and deprecated and removed.

As for the discussion of getting JSON out of stuff that's going in 
parallel, an OO interface into the operating system and frameworks gets 
you whatever you want as output by formatting the objects, whether it's 
JSON or YAML or CSV or smoke signals via USB.  Either directly with a 
built-in formatter, or with the addition of a local method that formats 
the object to your needs.  Think of lib$put_output and its action 
routine on OpenVMS, but where you can pass in a data structure other 
than a descriptor and still get a good result displayed.  Getting JSON 
or YAML from everything is akin to the work needed toward creating an 
OO interface for each of the APIs, without the other benefits of OO.


-- 
Pure Personal Opinion | HoffmanLabs LLC 




More information about the Info-vax mailing list