Dostępna jest wersja 0.5 portu popularnego języka skryptowego Lua. Najważniejszą nowością w tej wersji jest specyficzny dla MorphOS-a moduł ipc.module, który pozwala z poziomu Lua wysyłać komendy ARexxa do programów i odbierać ich wyniki. Dzięki temu Lua z powodzeniem może zastąpić ARexxa. Zaletami Lua są prosta składnia z możliwością programowania obiektowego, duża szybkość interpretera i – w wersji dla MorphOS-a – napisany z użyciem MUI debuger skryptów LuaExplorador. Jako pokaz działania modułu IPC do archiwum dołączono wersję Lua znanego użytkownikom TVPainta skryptu love.rx rysującego dość złożoną grafikę. Archiwum jak zwykle do pobrania z MorphOS Files.
Zamieszczone przez: admin, 5 komentarzy
Komentarze:
No i bardzo dobrze, że się pojawia. Skończy się gadanie o zapożyczeniach w Morphos-ie. Powodzenia.
O jak fajnie trzeba sie zabrać za Lua już na poważnie jak widze 😉
Czy kiedyś zamiast portów ARexxa będziemy mieć w aplikacjach porty Lua, Pythona czy innego języka skryptowego? 🙂 A może po prostu zawsze zostanie port ARexxa ale nikt nie będzie się komunikował nim przy pomocy Rexxa tylko innych języków. Wtedy może zmieni się nazwę ARexx na coś innego, mniej przywiązanego do danego języka, a kojarzącego się generalnie z komunikacją.
Nazwa jest po prostu tradycyjna. Same porty nie mają w sobie nic takiego, co by je przywiązywało akurat do ARexxa. Owszem przesyłane pakiety wiadomości noszą w sobie pewne „ARexxowe naleciałości”, głównie w postaci nieużywanych pól struktury, ale to wewnętrzne szczegóły implementacyjne. Komendy do aplikacji można przesyłać równie dobrze z poziomu języków kompilowanych. Wysłanie komendy do aplikacji to po prostu wysłanie systemowej wiadomości z odpowiednio sformatowanym pakietem danych do portu. Po otrzymaniu odpowiedzi odbieramy rezultat. Nie ma tu żadnej ARexxowej magii. Przecież już od jakiegoś czasu podobny interfejs ma morphosowy Python. Dlatego nie widzę żadnego sensu, żeby powstawały jakieś inne typy portów do języków skryptowych, w momencie gdy mamy dobrze zdefiniowany, uniwersalny i skuteczny standard.
Co do zmiany nazwy, nieprzypadkowo moduł Lua nazywa się ipc.module (od inter process communication) a nie arexx.module.
Dodam jeszcze, że ipc.module nie zapewnia wszystkiego, co potrafi ARexx. Wykonywanie skryptów, jak najbardziej, ale niektóre aplikacje wykorzystywały ARexxa jeszcze w inny sposób. Programik RexxMast tworzy w systemie port o nazwie „REXX”, do którego można wysyłać fragmenty kodu arexxowego do natychmiastowego wykonania przez interpreter. Lua też potrafi pracować w ten sposób, tylko że nie zmusimy przecież starych aplikacji, żeby zamiast kodu arexxowego wysyłały kod w Lua. Dodatkowo próba napisania jakiegoś LuaMast podszywającego się pod oryginał powoduje dodatkowy problem, taki program nie mógłby działać jednocześnie ze starym RexxMastem bo w systemie nie mogą istnieć dwa porty o tej samej nazwie.
Dla nowych aplikacji, które chcą sobie „wewnętrznie poskryptować” nie stanowi to problemu, bo lua.library pozwala na stworzenie sobie instancji interpretera wewnątrz aplikacji i bezproblemową wymianę danych. Mało kto jednak wie, że na coś takiego pozwalał również i ARexx. Już w 1987 roku!
Dzięki za obszerne i bardzo konkretne wyjaśnienia. Jestem jak zwykle w pozytywnym szoku. Niestety słabo jestem zorientowany w ARexx. Pisałem kilka automatyzujących robotę skrypcików dla ImageFX (a raczej AutoFX) i DrawStudio. Jakoś nigdy nie miałem potrzeby wykorzystania tego bardziej ale czuję moc drzemiącą w tym mechaniźmie. To potęga. Po Twoich wyjaśnieniach wiem, że teraz to potęga do kwadratu. 🙂 Nie trzeba tworzyć nic nowego, bo dotychczasowy standard nie jest kulą u nogi, jest jak najbardziej rozwojowy i da się pod niego podpiąć różne języki (chociaż wystarczy już nam Lua i Python). No rewelacja!
Kurcze, dlaczego AmigaOS nie zarządził światem? 🙁 No przecież to w latach 80 miało kilka elementów, których dzisiaj nie mam nawet w Windows/MacOS. Najbardziej "powerską" sprawą jest to, że na AmigaOS (i potem MorphOS) port ARexxa naprawdę się przyjął i mają go wszystkie liczące się programy. Rexx jest i na Windows tylko co z tego skoro nic z tego nie korzysta. To jak samochód bez dróg, kół, paliwa. 🙂 Najgorszy przyjęty standard jest lepszy od najlepszego ale nieużywanego przez świat. 🙂