CO TO JEST REXX ?

REXX jest językiem programowania, który wybitnie wyróżnia się spośród innych przynajmniej trzema cechami: uniwersalnością, elastycznością i prostotą.

Jedną z unikalnych jego zalet jest możliwość stosowania go jako języka programowania wsadowego w różnych systemach operacyjnych oraz języka programowania makroinstrukcji (lub tzw. skryptów) dla różnych środowisk i aplikacji (np. edytorów, baz danych, środowisk komunikacyjnych w tym komunikacji przez sockety czy ftp, przy programowaniu interakcji ze stronami WWW).

Ale na zintegrowaniu ze środowiskiem systemowym czy aplikacyjnym zalety REXXa się nie kończą. Jest on nastawiony na przetwarzanie symboli i w tym względzie chyba nie ma sobie równych pośród uniwersalnych języków programowania. Sprzyjają temu:

Sprawia to, że REXX może być bardzo efektywnie i elastycznie używany w zadaniach przetwarzania informacji symbolicznej, szczególnie o słabo ustrukturyzowanym charakterze.

Szczególną cechą REXXa są również pełna dokładność wykonywania i dowolna precyzja prezentacji wyników operacji arytmetycznych (są one wykonywane "jak na kartce papieru", a liczbę prezentowanych miejsc dziesiętnych możemy ustalić dowolnie np. na kilka tysięcy pozycji po kropce dziesiętnej, ograniczeniem jest tu wyłącznie wielkość pamięci operacyjnej).

Uderzająca jest - przy całej mocy języka - jego prostota i naturalność. Został on bowiem pomyślany jako język głównie dla "normalnych" użytkowników komputerów, a nie tylko profesjonalnych programistów.

KRÓTKA HISTORIA REXXa

Autorem języka programowania REXX (pełna nazwa brzmi Restructured EXtended eXecutor) jest Mike Cowlishow. Język ten został stworzony w firmie IBM na przełomie lat siedemdziesiątych i osiemdziesiątych. W 1983 stał się on częścią systemu operacyjnego IBM VM/SP. Później włączono go do systemu OS/2 jako OS/2 Procedure Language/2. W 1987 IBM ogłosił REXX jako jedną ze składowych SAA (System Application Architecture), co oznacza podtrzymywanie go na wielu platformach (np. VM, MVS, OS/400, S/390, OS/2).

REXX powstał - z dzisiejszego punktu widzenia - w dość odległej przeszłości informatycznej, w czasach triumfów programowania strukturalnego, środowisk znakowych i linii komend. W tych kategoriach zachowuje dalej pierwotną świeżość. Jest kwestią dyskusji jak szybko i czy ostatecznie w ogóle te elementy programowania zostaną wyparte przez GUI i programowanie obiektowe. Są one przecież wciąż zachowywane nie tylko ze względu na przyzwyczajenia rzesz użytowników, ale również dlatego, że w wielu przypadkach są bardziej efektywne zarówno w programowaniu, jak i w działaniu, a dla niektórych rodzajów zadań nie mają alternatywy.
Tworzy to swoistą niszę, w której - pomocniczo traktowany - REXX "tradycyjny" ma ważne zastosowania.
Ale na tym historia i zastosowania REXXa się nie kończą.

Dostępne są rozszerzenia REXXa (np. freeware'owy VREXX), pozwalające na łatwe strukturalne programowanie graficznych interfejsów użytkownika (okienka, dialogi, itp.).
Wizualne środowiska zdarzeniowego programowania w REXXie pozwalają bardzo łatwo tworzyć programy GUI  (np. VX REXX,  VisPro/REXX, GpfREXX, DrDialog, ObjectRexx dla Windows).
Warto zresztą podkreślić, że architektura implementacji języka pozwala go bardzo łatwo rozszerzać o dowolne "dodatki".

Na bazie klasycznego REXXa powstały dwa nowe języki obiektowe:

Ten ostatni (autorstwa Mike Cowlishow'a) pozwala pisać programy Javy (tak, Javy!) dużo prościej i szybciej niż w samej Javie (program w NetRexxie jest kompilowany do pliku .class z zachowaniem lub nie pośredniego kodu źródłowego Javy).

Wszystkie trzy języki: klasyczny REXX, ObjectRexx i NetRexx działają wedle zasady "write once - rum everywhere" na wszystkich platformach systemowych, w tym najpopularniejszych: Linux i Windows.