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.