ARexx, OORexx, NetRexx & Rebol R3

PurpleMelbourne · 4003

PurpleMelbourne

  • Newbie
  • *
    • Posts: 31
    • Karma: +0/-0
on: December 11, 2018, 07:08:39 PM
Hello all,

I don't know if everyone is up to date with the evolution of ARexx, or that Carl Sassenrath, the creator of most of AmigaOS (including exec) created the Rebol language. But as I'm not a coder myself, I'm hoping that someone has.

Because I know that ARexx can be updated to OORexx (Object Oriented) or further updated to NetRexx (Rexx+Java). But I don't know if Rebol makes a newer Rexx redundant.

If we were to have greater compatibility with the industrial OS/2 then perhaps updating to OORexx or NetRexx should happen.

Thoughts?



cdimauro

  • Member
  • ***
    • Posts: 164
    • Karma: +26/-1
Reply #1 on: December 11, 2018, 11:39:14 PM
Python is THE "scripting/glue" programming language, with a VAST support and continuously increasing its adoption in practically any area.


It does NOT make sense to spend time/resources on trying to revival A/REXX. Better to port a modern Python version (2.7 doesn't make sense anymore, since it'll be completely EOL 1st January 2020) to AROS.



PurpleMelbourne

  • Newbie
  • *
    • Posts: 31
    • Karma: +0/-0
Reply #2 on: December 13, 2018, 12:49:12 AM
So we can use it to replace ARexx?



Samurai_Crow

  • Junior Member
  • **
    • Posts: 88
    • Karma: +32/-0
  • Hobby coder
Reply #3 on: December 13, 2018, 09:24:08 AM
So we can use it to replace ARexx?
Not yet.  The AmigaOS 4 library hasn't been ported to other Amiga-like operating systems.  Currently AROS uses Regina which is an open source REXX interpreter.



cdimauro

  • Member
  • ***
    • Posts: 164
    • Karma: +26/-1
Reply #4 on: December 13, 2018, 11:02:29 AM
So we can use it to replace ARexx?
Not for everything. Python cannot be used to entirely replace AREXX.
The AmigaOS 4 library hasn't been ported to other Amiga-like operating systems.

OS4 has no AREXX library: it reuses the 68K one directly coming from the Amiga o.s. 3.x.



Samurai_Crow

  • Junior Member
  • **
    • Posts: 88
    • Karma: +32/-0
  • Hobby coder
Reply #5 on: December 13, 2018, 02:02:59 PM
The AmigaOS 4 library hasn't been ported to other Amiga-like operating systems.

OS4 has no AREXX library: it reuses the 68K one directly coming from the Amiga o.s. 3.x.

I meant the Python library it uses to access AREXX ports.



cdimauro

  • Member
  • ***
    • Posts: 164
    • Karma: +26/-1
Reply #6 on: December 13, 2018, 02:18:30 PM

Ah, ok. Now I got it.

In the bounty which I've written for porting Python to AROS, I'd put a link to an old Python port which includes AREXX support. You can download the sources, and searching REXX you'll find the code.


The only problem is that the Python module has a small part written in 68K assembly, that should be ported to x86/x64/ARM, to make it work on AROS.



PurpleMelbourne

  • Newbie
  • *
    • Posts: 31
    • Karma: +0/-0
Reply #7 on: December 14, 2018, 07:13:33 AM
So can Python replace all the functionality of ARexx? Or is it only a 75% overlap?



cdimauro

  • Member
  • ***
    • Posts: 164
    • Karma: +26/-1
Reply #8 on: December 14, 2018, 08:17:24 AM
From a pure functional point of view, Python can do MUCH better than AREXX.


However there are existing AREXX scripts or macros that need the be still executed, and in this case a parser + interpreter is still needed.


Everything else can be covered by Python.



PurpleMelbourne

  • Newbie
  • *
    • Posts: 31
    • Karma: +0/-0
Reply #9 on: December 14, 2018, 10:05:41 AM
A surgeon can do a lot better than a plumber. But they are not the same thing.
OK Python can do things that ARexx.

BUT can it do EVERYTHING that ARexx does? Can it replace the existing functionality?

I'm not asking if Python can do things Rexx cannot. I'm asking if Python can do ALL the things that Rexx can do.
Can Python REPLACE ARexx or can it only add to it?



cdimauro

  • Member
  • ***
    • Posts: 164
    • Karma: +26/-1
Reply #10 on: December 14, 2018, 10:13:36 AM
As I said before, Python CANNOT replace the existing AREXX scripts or macro, for obvious reasons: they are completely different languages.


For the rest, a Python application can create AREXX ports, so being "reachable" by other AREXX-aware applications. And, as well, can send messages to other applications which are reachable through their AREXX ports.


TD;DR: no, Python cannot completely replace AREXX.



PurpleMelbourne

  • Newbie
  • *
    • Posts: 31
    • Karma: +0/-0
Reply #11 on: December 17, 2018, 10:58:58 AM
So although Phython does not deliver compatibility with existing REXX scripts, on a functional level it can do EVERYTHING which you can do with REXX regarding talking between applications using the AREXX ports?

OK then it does sound like going forward that Python can functionally replace ARexx :-)

So no need to upgrade from ARexx to one of the new ones. We would simply keep legacy ARexx, but mostly replace it with Python for the future. If you have existing ARexx scripts, they can be replaced with Python scripts using the ARexx ports.

I suppose its the ARexx ports that matter. It sounds like Python is the sensible general purpose solution.



cdimauro

  • Member
  • ***
    • Posts: 164
    • Karma: +26/-1
Reply #12 on: December 17, 2018, 11:08:01 AM
Exactly.


BTW, it might be possible to create an AREXX interpreter in Python, although it'll be slow in execution, so not suitable for low-end systems (e.g.: 68K machines).



hth313

  • Newbie
  • *
    • Posts: 15
    • Karma: +0/-0
Reply #13 on: December 17, 2018, 04:59:12 PM
Existing ARexx code aside, isn't Lua a better alternative today than ARexx?

Lua is reasonable lean and can interact with applications in some ways that resemble ARexx, at least inside a process, some adaption to Amiga message system would probably be a good idea. It seems to have some momentum too.

Python, as mentioned is a good alternative, very mainstream, but it is a more heavy.

I would prefer moving towards both Python and Lua over ARexx, having used all three to some degree in the past.



PurpleMelbourne

  • Newbie
  • *
    • Posts: 31
    • Karma: +0/-0
Reply #14 on: December 17, 2018, 10:16:34 PM
RUST sounds like a good language in place of C++ to bond nicely with Assembly at the lowest levels. If the Amiga 3.1 source were translated into RUST, would that not make it a new piece of work according to the 15% difference engineering principle? And thus technically it could be an Open Source "original" work?

Python is very popular, and it sounds pretty good for the general purpose. Not sure it quite deserves to be called excellent? Is it that good that keeps with the Amiga spirit? A bit of popularity wouldn't go astray for a change of pace ;-)

Rebol is written by Carl Sassenrath, the father of Amiga's multitasking. It sounds excellent. So if it really is fit for purpose and not just exageration, then it seems part of our heritage to use it. And R3 of Rebol sounds very fit for purpose to do an "Amiga DE" networked ecosystem type of thing.

Does anyone know if Rebol has JIT? Or plans for it if not currently implemented?


Where would LUA fit in as far as the general public go? Should it be a sponsored part, or just another thing you can do if you are interested?
OORexx and NetRexx are sounding like out in the cold as far as going forward.