I couldn't find Netrexx at  (https://www.netrexx.org), I did find it here
http://www.netrexx.org <https://www.netrexx.org/>

I like it!

On Sun, Jan 9, 2022 at 1:20 PM David Crayford <dcrayf...@gmail.com> 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:
> >>>> Here is my list of must haves for a scripting language. Does REXX or
> ooRexx meet the requirements?
> >>>>
> >>>> 1. Short circuit evaluation
> >>>> 2. Functions as first class objects
> >>>> 3. Mutli-threading
> >>>> 4. Dynamically typed, preferably with type hints
> >>>> 5. co-routintes
> >>>> 6. A module system
> >>>> 7. Support for object oriented programming
> >>>> 8. Regular expressions
> >>>> 9. Libraries for web programming, pegs, JSON/YAML parsing etc
> >>> You also mentioned in your follow up: "Forgot to mention. Support for
> functional programming map,
> >>> reduce, filter etc."
> >>>
> >>> This list reads a little bit like a wish list for concepts found in
> different programming languages.
> >>> Sometimes such features are specific for a particular language (e.g.
> functional programming) and
> >>> then sometimes made available in other languages.
> >> Umm, nope. Here is a list of programming languages that I use that
> support all of my requirements.
> >>
> >>   * Javascript
> >>   * Typescript
> >>   * Lua
> >>   * Python
> >>   * Ruby
> >>   * Kotlin
> >>   * Groovy
> >>
> >> I could go on. Even Java supports functional programming since Java 1.8
> and which introduced the
> >> streams API. It's unusual to see and old school loop in modern Java
> code. Even C++ has lambda's.
> >>
> >> I missed "closures" on my list which code hand in hand with "functions
> as first class objects".
> >> Very powerful, for example in Kotlin you can easily create type safe
> builders (DSLs)
> >> https://kotlinlang.org/docs/type-safe-builders.html.
> > Well all of your languages miss the support for the message paradigm.
>
> What on earth are you talking about? Number 7 on my list is support for
> OO which implies message passing.
>
>
> >   So, does this invalidate all
> > of your languages? Probably not, as each may serve and prove useful for
> the one or other
> > purpose/problem. However it means that e.g. in situations where the
> message paradigm becomes
> > helpful, none of your programming languages/skills qualify. (The same
> pattern you use in your
> > argument, just turned around a little bit. :) )
> >
> > None of the above programming languages are human centric by design,
> such that it is not possible to
> > teach them as quickly as REXX or ooRexx and become productive quickly
> and relevant for as long as a
> > professional life lasts...
> >
> > You must not overlook the fact, that IBM was very lucky in having a
> gentleman hired by the name of
> > Mike F. Cowlishaw who has turned out to be an ingenious language
> designer, and much more. The
> > history of how REXX got developed and how it became so successful also
> explains why it still is in
> > professional use and still serves as a beautiful language to teach and
> to use.
> >
> > (And as you may know, Mike F. Cowlishaw has been very seminal in quite
> different IT related areas.)
> >
> >
> >> 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? Kotlin is not only a first class language for server side it
> is also the language of choice for building
> Android applications. 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.
> 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. A lot of new products coming online
> in the future have a dependency on Python. Ansible etc are written in
> Python. Ansible playbooks are basically built using Jinja2 templates.
> Python skills will be in demand on z/OS.
>
>
> >
> > To explain:
> >
> >    * Mike F. Cowlishaw's (see above) Java expertise has been impressive
> from the early days of Java
> >      which many do not know
> >
> >    * NetRexx got designed by Mike F. Cowlishaw, and as a matter of fact
> it is the first JVM language,
> >      believe it or not, many years before others have appeared (and many
> years before .Net/clr
> >      languages came into existence too)
> >
> >    * NetRexx allows REXX programmers to take advantage of their Rexx
> skills as NetRexx follows the
> >      Rexx philosophy, or with other words REXX programmers can quite
> easily create real Java programs
> >      using NetRexx without a need in coding in Java itself,
> interestingly REXX programmers do not
> >      know and realize that (including yourself it seems)
> >
> >    * NetRexx programmers, if need be, can create Java classes and Java
> methods that other programs
> >      can exploit and use, hence it becomes possible to create Java class
> libraries not in Java, but
> >      in NetRexx only which can be programmed by REXX programmers
> (whereas the learning curve for Java
> >      is probably too steep)
> >
> > To demonstrate the "difficulty" of creating and understanding NetRexx
> programs, here a simple
> > example which probably everyone on this list can understand without any
> further explanation, so here
> > is a NetRex program:
> >
> >      parse version v         /* get the NetRexx version    */
> >      say "parse version:" v
> >      parse source s          /* get the source information */
> >      say "parse source: " s
> >
> >      say "1/3:" 1/3          /* demo Rexx arithmetics      */
> >      numeric digits 100
> >      say "numeric digits now:" digits
> >      say "1/3:" 1/3
> >      say
> >
> >      numeric digits 1000
> >      say "numeric digits now:" digits
> >      sum=0
> >      loop i=1 to 10000
> >         sum=sum+1
> >         sum=sum*i
> >      end
> >      say "sum:" sum
> >      say
> >      say "sum/123456789:" sum/123456789
> >      say
> >
> >      say "using a Java class from NetRexx:"
> >      dim=java.awt.Dimension(123,456)  /* create a value of type
> Dimension */
> >      say "dim:" dim
> >      say "dim.width :" dim.width   /* access field 'width' */
> >      say "dim.height:" dim.height  /* access field 'height'*/
> >
> > If you were to download NetRexx (https://www.netrexx.org, you may check
> out the documents directory
> > which includes the language specifications/explanations) and follow the
> "read.me.first" directions
> > you can save the above NetRexx program e.g. as "hi.nrx" and then compile
> it to a Java class and
> > immediately run it with:
> >
> >      NetRexxC.bat -run hi.nrx
> >
> > which will yield the following output:
> >
> >      parse version: NetRexx 4.01 20 Mar 2021
> >      parse source:  Java method hi.nrx
> >      1/3: 0.333333333
> >      numeric digits now: 100
> >      1/3:
> 0.3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333
> >
> >      numeric digits now: 1000
> >      sum:
> 7.736935969712469619151651477554396939520513287393986175334653566730869651801086564369479958064722713899396967001861352624682
> >
> 5891215847753257250320279897104393906617152735839319941764550748080956718722289678378323298784610059217677757356954522140036192390
> >
> 4049839280690087786339692749299935124528137143751837005231585673849980611344761437273477853592569030307359999423627042239749545273
> >
> 8059487993597949354821431475341953508042319805901872835603980197669360500030780444598140230671120626545538783721813724171382805898
> >
> 8423516525739103184616117008128739522056723495424699379091271191253364564688512189708532851094054189954846455906865383944900886686
> >
> 6224631061105811823775753971217861822189285256508005847845137009771398810859276041023023362369536193745800774766641369366806880385
> >
> 4879692745959247996051540379695463003040977756884207224780403921976688227227785961342888241576864775282480683471864660600729635815
> >
> 115929309041531964123184013000863936300931250923209567131854636472009507870027938546253097930789E+35659
> >
> >      sum/123456789:
> 6.26691819249605594322694678018427722068853847105482888862001227549411612495533685423284413955130706817540586366770
> >
> 1055002072497707343397150662190013697594580554546672417977703918880034272402869373082616759000456694105709331158586811889053304483
> >
> 7280023855476254066569809116478778072650175206203373485094597511784595796821670180596124319843883016720333543609931406803689592334
> >
> 9950034156328129350067410983353975898023878906168725950413457848446388816873356434050036765867783928081194516289058739711901443036
> >
> 1851389070909945383865370351128775672930286524952201980194438669475784858721164744102368658697945955089926580704674447340993566902
> >
> 5784306350801382908242155222729448598506629054007656497246822598621541745247513185431971346753804147811550176778516471440597841028
> >
> 1517106674050925846286124288883905799598875279596084242631987393158297995420623504733124555940207406623613447072763303723367101391
> >
> 2997231618518710468843906157419325083046558044127432514807435634124466526074973088656977737000962416032697E+35651
> >
> >      using a Java class from NetRexx:
> >      dim: java.awt.Dimension[width=123,height=456]
> >      dim.width : 123
> >      dim.height: 456
> >
> > Now one of the cool things is, that the compilation of the NetRexx
> program "hi.nrx" yields a Java
> > (!) class file named "hi.class", which is a plain Java class file. It
> can from now on be directly
> > executed via Java in this way (note that one must not supply ".class" to
> java[.exe]):
> >
> >      java hi
> >
> > The output will be identical to the above.
> >
> > ---
> >
> > So in a nutshell: NetRexx allows REXX programmers to easily create Java
> (!) programs, but not with
> > the Java syntax, but with the NetRexx syntax which is easy, and
> especially easy for REXX
> > programmers, no matter on which platform.
> >
> > One needs to know that NetRexx exists in the first place and what it can
> do in order to be able to
> > take advantage of it. So now you know! ;)
> >
> > It is worthwhile to download NetRexx and try it out. The documentation
> is great and also the wealth
> > of samples in the "examples" directory which demonstrate what can be
> done how the Java world can be
> > easily exploited (and enriched with one own's Java classes created with
> NetRexx programs at any time).
> >
> > ---rony
> >
> >
>
> ----------------------------------------------------------------------
> For IBM-MAIN subscribe / signoff / archive access instructions,
> send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
>


-- 
Wayne V. Bickerdike

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