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