Większość języków (w tym Java) wymaga, aby programista określił w programie typy zmiennych. Np. czy dana zmienna będzie reprezentować liczbą całkowitą, rzeczywistą, znak czy może łańcuch znakowy.
Takie wymaganie wynika z kilku przyczyn, m.in. z odzwierciedlania w programie architektury sprzętowej (dane różnych typów zajmują różne miejsce w pamięci) oraz z przeświadczenia, że sprawdzanie zgodności typów (czy np. na zmienną typu całkowitoliczbowego nie staramy się podstawić łańcucha znakowego) w trakcie kompilacji prowadzi do szybszego tworzenia niezawodnych programów. Obie te przesłanki są raczej słabe: pierwsza niepotrzebnie zaprząta umysł programisty szczegółami technicznymi, druga jest ostatnio mocno podważana w nurcie tzw. Extreme Programming.
Naprawdę ważne zastosowanie pojęcie typu zmiennej  znajduje  natomiast w programowaniu obiektowym, gdzie programista może tworzyć własne typy danych.
REXX nie jest językiem obiektowym i Mike Cowlishow wybrał doskonałe rozwiązanie: dane w programie nie mają ustalonych typów, są natomiast - zależnie od kontekstu - traktowane jako liczby bądź łańcuchu znakowe. W operacjach arytmetycznych napisy (i wartości zmiennych), które mogą być traktowane jako liczby - są traktowane jako liczby, w operacjach na łańcuchach znakowych (np. konkatenacji lub przeglądaniu znaków łańcucha) wszystkie dane (czy to o charakterze liczbowym, czy to tekstowym) są traktowane jako napisy.