On 9/1/22 11:22 pm, Rony G. Flatscher wrote:
On 09.01.2022 03:19, David Crayford wrote:
On 9/1/22 2:15 am, Rony G. Flatscher wrote:
On 08.01.2022 01:52, David Crayford wrote:
On 7/1/22 7:53 pm, Rony G. Flatscher wrote:
... cut ...

Well all of your languages miss the support for the message paradigm.
What on earth are you talking about?
Hmm, this sounds quite emotional. :)

Not at all. I don't get emotional about technology. I'm just terribly confused by what you're saying.




Number 7 on my list is support for OO which implies message passing.
Well, this does not mean that the programming language supports the message 
paradigm. If it did it
would have an explicit "Message" class (like there are explicit classes like "Object", 
"Class",
"Method" and the like), hence messages are not FCOs. Compare this to languages 
like SmallTalk or ooRexx.

Maybe it is easier to grasp some of the ramifications by looking at the popular 
fluent pattern
(https://en.wikipedia.org/wiki/Fluent_interface) which needs to be explicitly 
programmed in
languages that do not support the message paradigm, but is "freely" ;) 
available in languages like
Smalltalk and ooRexx.

I'm familiar with fluent APIs. I've been coding C++ and Java for over 25 years. They don't need an explict "Message", "Object" or "Class". In Java every object is a subclass of Obect. C++ is a multi-paradigm language so doesn't require that. To write a fluent interface in C++, Java, JavaScript just return "this" from the class method or member function. In Lua or Python return self. Then you can chain together method calls. This is meat a potatoes stuff in all of the languages I listed.


... cut ...


That's why I have absolutely no interest in NetRexx. I have far better options 
on the JVM.
Well, you mention in another post that you were/are an expert REXX programmer, 
love Lua, use Python
in your shop because of your teams coming with that knowledge from the 
colleges, but nowadays you
would mainly code in Java/Kotlin. Kudos!

What appears to be a little bit strange with such a background is that you have 
obviously never
really assessed NetRexx, as otherwise you could not possibly have come to such 
wrong conclusions.
Why would I invest time into NetRexx. How many NetRexx jobs are there out there?
Why would that be important?
(Besides, due to NetRexx' design philosophy there is not really much time to 
invest, especially if
you have a good REXX background such that you understand already the purpose of 
e.g. the keyword
statement TRACE; you may want to try to trace a program written in Java or 
Kotlin the way NetRexx
allows for.)

The question to ask is: can NetRexx be used to (quickly) create reliable 
professional applications?
The answer is simple: yes. It is available, it is proven, it has been 
successfully used to create
professional programs. (In case you must supply Java source code, you still can 
use NetRexx and have
it eject Java source code.)

NetRexx creates normal, genuine Java classes as does the Java compiler or the 
Kotlin (or the Groovy
...) compiler. All the compiled Java classes (Java bytecode) can interoperate, 
with each other so it
is possible to use NetRexx compiled Java classes from Java and Kotlin (and 
Groovy ...) and the other
way round, NetRexx can use Java classes compiled from Java or Kotlin (or Groovy 
...) programs and
the like. Therefore it does not matter whether everyone on earth is using 
NetRexx or only a single
person.

The question then is: what is the problem at hand, what programming languages 
qualify best to solve
it? And NetRexx can be used for most problem domains, no need to use a language 
with special
features that are not needed to solve the problem at hand.

If I were you (with your background), I would seriously look into NetRexx, 
rather then ignore it.
You for sure would quickly become able to solve most of your programming 
problems with it,
exploiting your REXX and Java knowledge. OTOH, if you do not want to look into 
it, that is fine too,
of course, but then, please do not badmouth technologies you simply have no 
experience with.


Kotlin is not only a first class language for server side it is also the 
language of choice for
building Android applications.
Kotlin and Android is interesting:  Android is a Linux-based operating system 
for which Android
applications have been mostly created in Java for more than a decade, without 
the public even
realizing it (even today). This is the reason why Oracle has been suing Google 
over the use of Java,
although Google used an open source Java implementation from the Apache 
software foundation. Google
used IntelliJ for developing Java applications for Android and even forked 
IntelliJ. The IntelliJ
people came up with Kotlin a few years ago, which is a JVM language compiling 
to Java classes (Java
bytecode), and Google embraced it.

AFAIK most of the Android applications get still created with Java as it takes 
time to learn Kotlin
and as long as Kotlin does not really add great value to the application domain 
it is cheaper to
stick to Java (saving learning curves and new type of coding errors). Besides, 
if you witness the
evolution of the Java language you see that it is not really necessary to 
switch to Kotlin as Java
gains step by step those concepts that programmers find really helpful.

Here a comparison of Java with Kotlin using your Google trends (borrowing your 
idea from below):
<https://trends.google.com/trends/explore?q=%2Fm%2F07sbkfb,Kotlin>.


Who uses NetRexx? Are there any example applications that you can cite? REXX 
has fallen off a
cliff https://trends.google.com/trends/explore?date=all&q=%2Fm%2F06g3m.
Well, following such trends there would be no mainframe, no z/OS, no COBOL, no 
...

Also the trend looks different if taking the last twelve months:
<https://trends.google.com/trends/explore?q=%2Fm%2F06g3m>, it looks quite 
healthy! ;)

It is always important to realize which (subset) and how the data gets 
collected and how the results
get then interpreted. E.g. look at this (comparing Rexx, Basic, COBOL):
<https://trends.google.com/trends/explore?date=all&q=%2Fm%2F06g3m,%2Fm%2F019p2,cobol>.

So following your logic it does not make sense to look/invest into BASIC and 
COBOL and ... yet, your
company, if not mistaken, earns money doing exactly that?


It's niche is the mainframe where it is an important and useful language. The 
reason IBM are
porting languages like Python to z/OS is to keep the platform relevant.
Adding current technologies is always good, if they add value to the table, the 
more open such
technology the better (from a strategic point of view)!

However, it is important to realize that REXX based/ignited technologies like 
ooRexx (REXX++ ;) )
and NetRexx have been originally developed by IBM which made the sources 
available to RexxLA for
open sourcing these technologies, hence ooRexx and NetRexx are there, are 
available, proven,
powerful and allow any REXX programmer to take immediately advantage of its 
(additional) features!

As you may have seen by looking up the little tutorial (links supplied in an 
earlier posting) about
how to get ooRexx compiled for the mainframe to access DB2 on a mainframe, the 
technology is there
and makes it quite easy for mainframe REXX programmers to take advantage of it. 
This is much cheaper
and much more productive than waiting on another programming language to become 
available with the
infrastructure REXX and REXX programmers have been enjoying and exploiting for 
decades on the mainframe.

It would be even better, if the open source ooRexx 5 would get ported to z/OS 
directly. It is plain
C++ (CMake) and it is *very* easy to add external functions using the ooRexx 
C++ APIs (all of the
features of ooRexx become fully available from C++ as well, such that one could 
even send ooRexx
objects/values messages directly from native C++ code, if necessary).

To see oneself what is involved in creating external functions for ooRexx you 
may want to look up
the C++ API samples that get installed with ooRexx (cf. the directory 
"samples\api\c++\external")
which demonstrate how easy it is to create external functions (of any 
complexity). For reference the
appropriate ooRexx documentation can be found in the PDF book entitled "ooRexx 
APIs" carrying the
file name "rexxapi.pdf", "Chapter 1, Rexx C++ Application Programming 
Interfaces".

Maybe for IBM, seeing IBM's support for open source, a port of ooRexx 5 to z/OS 
may be a valuable
project, empowering their mainframe customers (and their own technical 
personnel) to become able to
take advantage of the great features that ooRexx adds to REXX? As the tutorial 
has demonstrated, the
benefits would be immediate! Having a port of ooRexx would allow customers and 
IBM personnel to
check it out and assess it. What could be wrong about such a move?

---rony


--
__________________________________________________________________________________

Prof. Dr. Rony G. Flatscher
Department Wirtschaftsinformatik und Operations Management
Institut für Wirtschaftsinformatik und Gesellschaft
D2c 2.086
WU Wien
Welthandelsplatz 1
A-1020  Wien/Vienna, Austria/Europe

http://www.wu.ac.at
__________________________________________________________________________________

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

Reply via email to