ARexx, OORexx, NetRexx & Rebol R3

PurpleMelbourne · 1536


  • Newbie
  • *
    • Posts: 19
    • Karma: +0/-0
Reply #15 on: December 18, 2018, 07:04:58 AM
Converting the Amiga o.s. 3.1 sources to RUST is practically impossible: too much assembly language used, and a lot of work to do that nobody will do. It's not even convenient using AROS sources (C code) for similar reasons: no man power to do it (anyway RUST should first be ported to AROS, and here there's a similar problem).

Regarding LUA, yes: it's much more lightweight compared to Python. No doubt. And it's also a simpler language. That's the reason why it's usually preferred when you need something easier to embedded the scripting language (embedding LUA is trivial) and/or a small footprint (AFAIR its library takes around 200KB. But it passed long time since when I tool a look at it) and/or a simple language.

However the problem with languages such LUA, Ruby, R, Rebol, etc., is that they have not so much audience compared to Python, whereas the latter it's so much widespread now that has a MASSIVE support (many native libraries and wrappers to C/C++/Fortran libraries).

What can happen when you decide to use, say, Rebol, is that you start doing something. Then your script becomes more complex. And while adding new features you may want to use some functionality which you don't find in its standard library neither in some third-party one. Then basically you had to find a proper C/C++ library and write a Rebol wrapper for it: good luck!

So, it's really a practical question: with Python it's way easier to find a package (usually on the standard PIP packages site) for some functionality that you need. And even if you don't find it, there are many ways / tools (ctypes, cffi, cython, C++::BOOST, etc.) to quickly create a wrapper for it.


  • Newbie
  • *
    • Posts: 15
    • Karma: +0/-0
Reply #16 on: December 18, 2018, 08:13:12 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?

It is not practical to take OS 3.1 and rewrite the C parts in Rust. First of all there are assembly language code in 3.1 that you cannot just take, it would violate the copyright. Second, if you where to rewrite it in Rust (translate), then you essentially end up with AROS written in Rust, and how many years have been spent on developing AROS so far?

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.

If we look back to the old days (1970-80), a computer always came with a langauge with the intention that you could program it. This was often BASIC (I would have wished they would have picked Forth, but that is another discussion). All "home" computers were like that. When the Amiga arrived, that thinking was still very much present, which is why it was so important to have a language come with it (Microsoft BASIC). I remember when the Amiga (1000) was introduced that the graphics, sound and multitasking was the big thing. It was like coming from the future and blew everything away. In addition to this, there was also a strong thinking about all the languages you could use on it.

With the IBM PC and Macintosh, this thinking changed as people wanted to use their computers and not program it. Thus, application software and aimed for offices, for productivity.

The Amiga and other computers also came with programs to buy and hopefully "the killer app". But here there was (still) a stronger thinking that you should program it.

Today we get a computer with an operating system with a lot of things bundled with it, just look at anything like Linux, macOS or Windows. Loads of software and colourful icons/launchers to start the programs. Then you may add on some professional productivity on your own. There is not much thinking about languages anymore.

The Raspberry Pi is a bit different here in that it is supposed to be tinkered with and programmed, mainly for kids. The languages of choice seems to be Python and Scratch.

The Amiga originally had its Microsoft BASIC, but it was a dead end. Along came ARexx which became the language for the Amiga, which also had the ability to be used as a scripting glue language. You did not grow out of it even if you switched to a more "serious" language, you could still have it for as making your developed app customized by the end user.

What I am getting at here is that the thinking of computers have changed a lot since the era of the Amiga. But not everything has to be the same. Look at the Raspberry Pi which has a different thinking. Play with it, program it, connect it and have fun. Maybe we should think about where we want AROS to be. Is it a replacement OS for the Amiga, for some old people that have not passed away yet and that cannot let go
of the past? Should it try to compete with the main operating systems with a lot of apps? Maybe it would be better to look at tinkering market, much what RPi is used for? I can see that I could want to make things to interact with the world and do that on a small RPi/AROS box.

Getting back to topic (about languages). I think having a decent range of well supported programming languages could be a key part for AROS. ARexx is well established and should stay, Python is popular, but there is a long list to choose from, Rust, Golang, Scheme, Lisp, Lua and so on, just pick some (few) that are suitable for the platform and try to make them work well.

As I mentioned Lua, I think Lua is what should be picked today over ARexx if we where starting out fresh. Now we already have ARexx, so it has a bit less of a need. However, Lua is a multi-paradigm language that can act as a glue language and it is fairly light weight. I think it fits in quite nicely as an alternative to Python and ARexx.