On 10.01.2022 14:13, David Crayford wrote:
> On 10/1/22 8:34 pm, Rony G. Flatscher wrote:
>> On 09.01.2022 16:29, Seymour J Metz wrote:
>>>> Well all of your languages miss the support for the message paradigm.
>>> What do you mean by "the message paradigm"? How does it differ from sending 
>>> method invocation
>>> and response messages to objects?
>> The message paradigm as set forth by Smalltalk explicitly defines a class 
>> for messages, allows for
>> intercepting messages, rerouting messages at the will of the programmer and 
>> much more, as messages
>> themselves become objects that the programmer can interact with, if needed.
>>
>> ooRexx implements the message paradigm in full, something that is easily 
>> overlooked as usually it is
>> not necessary to be aware of it.
>
> If it's not necessary then why did you make such a big deal about it?

Well if you have really read the entire post you should know. Without 
implementing the message
paradigm things become clumsy and some important features, if you need them, 
are simply not available.


>
>> As you can see, if there should be need for adding external functions and/or 
>> methods to ooRexx, this
>> can be done with the powerful and easy to use C++ API of ooRexx. As a matter 
>> of fact BSF4ooRexx and
>> dbusoorexx are using those native C++ APIs allowing high speed and using all 
>> that is available in
>> and via the C++ world.
>
> ooRexx will never be high speed because it's implementation is fundamentally 
> ineffecient. 

LOL!

ooRexx for any practical purpose is more than speedy enough! And its speedness 
has been excercised
in quite a few applications I wrote in the past twenty, twenty fiver years.

Have you every tried it out, e.g. for controlling applications, processes, 
having macros dispatched
against hosting applications, for processing MS Office documents, 
OpenOffice/LibreOffice documents,
controlling your Linux infrastructure via DBus, taking advantage of e.g. data 
mining Java class
libraries etc., etc.?

Clearly you have not, hence it is unfortunately ongoing badmouthing without any 
practical experience
knowledge.


> Most scripting languages compile to bytecode which is then processed by a VM. 
> For example, the Lua
> VM is less tha 2K lines of code and can fit into L2 cache which is why it's 
> blistering fast
> https://www.lua.org/source/5.1/lvm.c.html. 

Cool! If high speed is so important then Assembler would be much better, of 
course, forget Lua by
comparison! ;)


> ooRexx chose to use a graph of C++ classes with abstract base classes for 
> every instruction and
> clause. OMG, dynamic dispatch for every instruction!

You seem to not understand - or intentionally ignore - the implications of a 
true implementation of
the message paradigm, the power, the flexibility and the easeness for 
unleashing it.


> https://github.com/ooRexx/ooRexx/tree/master/interpreter/instructions
>
> It's gigantic clump of inefficient code based upon inheritance. 

Badmouthing again. If you really believe that you should go back to text books 
then and read about
oo and inheritance all over and  stop requesting OO-features to be present in 
programming languages
at all, which you have been claiming is so important in the first place...

And while giving us the impression you would be an expert in this field how 
does it compare to
Objective-C?

Now the red herring seems to be clumsiness, high speed, unnecessary 
inheritance, ... unfortunately
distracting and badmouthing again. :(


> The GoF Design Patterns book which dates back to the 90s was a 
> groundbreaking, seminal work which
> had a central theme of introducing patterns to avoid inheritance. 

Please stop giving misinformation (I have read the book decades ago)!

But fighting inheritance, declaring it to be useless, clumsy all of a sudden is 
quite strange to say
the least.


> Modern languages like Rust don't even support Inheritance.

There are assemblers that do neither, so wouldn't they be much better than Rust 
then?  ;)

[Your "name calling" of languages suggesting you would be an expert in all of 
them has not been
really convincing and not really relevant in this context.]


> If you want high speed then use a JIT compiler. The Lua Functional library 
> used with LuaJIT can
> boil a chain of method calls down to a dozen instructions with no linkage 
> overhead
> https://luafun.github.io/intro.html. The Julia programming language can do 
> the same with similar
> syntax. If I wanted to use REXX
> I would use NetRexx to take advantage of the JVM JIT.

Indeed, if high speed is of high priority and you are not able to mix and match 
languages then that
is always a nice path to go: starting out with Assembler of course.

And yes, NetRexx qualifies like Java, Kotlin, Groovy and the like which is 
really great as REXX
programmers can quickly take advantage of the NetRexx language.

If there are segments that need high speed such that ooRexx would not qualify, 
then you can easily
use ooRexx to interface with those high speed libraries and applications e.g. 
DBMS that are
specialized on high speed implementations with an expertise a regular 
programmer would not possibly
have; or would you suggest to implement DBMS rather in Lua because of LuaJIT? ;)

Rather Lua - like Python and other languages - would use high speed 
implementations of libraries
(database, AI, ...).

ooRexx for instance can immediately take advantage directly of all such high 
speed Java libraries
(it is really a breeze).

So please stop using red herrings and seeding misinformation: it is more 
important (and much
cheaper) for humans to use programming languages that are clear, easy to learn, 
easy to code, easy
to maintain. It is more important to have flexibility and patterns available 
that are easy to
understand and to exploit. REXX, NetRexx and ooRexx are programming languages 
with a design
philosophy that puts the human as the most important factor in the center of 
the design. That makes
it so attractive and powerful.

E.g. if a problem at hand needs multiple inheritance to be solvable in an easy, 
clear manner, then
it is important to have that concept available at that point in time. ooRexx 
supports multiple
inheritance. And the way it got implemented in ooRexx is really very easy, yet 
very powerful
(because of the flexibility and power the message paradigm allows for).

If business administration students are able to learn REXX and ooRexx in a four 
hour lecture in a
single semester, thereby becoming able to take advantage of Windows and Windows 
applications like MS
Office on Windows, *and* OpenOffice/LibreOffice, client-server-programming, 
GUI-programming in a
single semester, then we talk about a programming language that is phenomenal 
to say the least!

Therefore it is easy for CS graduates to learn REXX and ooRexx within a week or 
two in depth that
adds SAK problem solving abilities to their toolbox of IT knowledge. To insist 
that they must learn
Lua or must only program in Python is - well let me say that explicitly - quite 
unprofessional!

---

Just a last remark: today's hardware (even smartphones!) is so abmysal fast 
that speed only matters
in certain application domains like DBMS, mass data analysis, AI and the like. 
Such application
domains have their own specialized applications and libraries that can be 
interfaced to and thereby
exploited in full. (The subcommand feature of REXX/ooRexx is just one easy to 
use feature to support
that philosophy that other programming languages lack most of the time.)

This is what REXX and ooRexx have been doing for decades anyway, and they shine 
in doing so. Usually
nothing more is needed, its speed is more than appropriate! :)

---rony

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