Комментарии 32
А я первый свой вебсервер на REXX сделал.
То есть там была некая оболочка на Си под ОС/2, которая умела слушать тисипи, и запускать нечно на REXX. Фактически там в одном флаконе были роутинг, отдача статитки и нечто напоминающии CGI.
Работало всё это хозяйство по http/0.9 — это когда нет заголовка со всякими хедерами типа Host: и т.п. :)

Прикиньте, было время, когда под разные хосты обязательно требовался отдельный ипшник :))
Не прошло и 30-ти лет…
было время, когда под разные хосты обязательно требовался отдельный ипшник

Более того — до сих пор некоторые smtp-серверы футболят запросы от тех, для кого обратный резолв не совпадает с прямым.
Видимо некоторые студенты до сих пор настраивают sendmail по книгам 30-летней давности.

Студенты сендмайл настраивают?
Ух ты! Где таких видели?
Да ладно! От sendmail.cf у опытного человека волосы дыбом встанут, а студенты вообще умрут как только попытаются понять что там к чему.
Ну он-же макросами создаётся. На М4 или как оно там называется.
Ну зачем так категорично? Может постмастеру этого хоста неинтересна ваша почта, если она шлётся с хоста, где прямой и обратный резолв не совпадают. Это их полное право. У меня мейлсервера не принимают почту с Африки и Латинской Америки. Вот вообще не принимают. Нет, я не расист, просто мне так удобно.

Ну, если хостмастер думает, что google, yandex или masterhost всё бросит и будет перепиливать обратный резолв своих серверов на меня…
Может и удобно, не спорю.

А вы точно хотите послать почту этому хостмастеру? И точно уверены, что он хочет эту почту принять? Вы ничего не знаете о причинах, которые побуждают человека принимать то или иное решение. И, кстати, у гугловских серверов прямой и обратный резолв на почтовых серверах таки совпадает, и по IPv4 и по IPv6. Ну и что, что сервер называется mail-lj1-x232.google.com, его не нужно переименовывать под каждого клиента гугла…
Ух, где-то в папочке (с завязками) до сих пор хранятся исходники каких-то скриптов, типа распечатки (на принтере ЕС-1055М) кода/документации на 4-х сторонах фальцованной широкой бумаги.

А вот комплект для переплетных работ (нож и и пресс/зажим) давно утрачен. На работе более современный вариант — пластиковые «пружины», обложки и сам брошюровщик в кладовке лежат, но практически не используются.
Вещь! В своё время под осью что им только не делал! Фэхи тоссил, из мп3 теги выковыривал и наоборот впихивал с заменой кодировки на православную. BBS-list-ы составлял. В файлопомойке по времени или размеру уборку делал. С архивами на арвиде тоже с помощью бобика ковырялся. Порнуху с больших помоек, типа galleries.adult-empire.com тоже с помощью бобика выкачивал. =)
Сейчас под линухом, но бобик установлен. Сменил .cmd на .rex. =)
По поводу ббс и модема на 1200 без мнп можно пустить стариковскую слезу.
Но зачем сейчас Рекс хоть в каком виде, кроме музейного?
Ну, смотря где и для чего.

NetRexx 3.08 GA released — 2019/08/06 — так, для примера.
Ну да, я понимаю что ибм будет поддерживать свои продукты до последнего и ещё где-то в мире есть программисты на Коболе с астрономическими зарплатами. Но в нормальном мире зачем это все?
(Пишу я глядя на свой сертификат IBM DB/2 Programmer)
IBM тут (уже) никаким боком. NetRexx это с 2011 не их продукт — его отдали сообществу (хотя первоначальный автор вроде бы все тот же Майк). И как видите, его развивают прямо сейчас. Я не знаю, зачем его применяют, но в принципе, в экосистеме JVM — почему нет? Хуже оригинального REXX NetRexx не стал, стал лучше — при этом доступен импорт всего того, что написано в экосистеме Java, а этого добра просто навалом за много лет.
Слово «развивается» тут видимо не совсем уместно. Скорее не сдох пока благодаря одному уважаемому человеку, который всю жизнь плотно сидит на IBM, и который сейчас коммитит в НетРекс в свободное от работы время.

При всем уважении, но в репе за пару лет добавлено порядка 4 тыс строк.
Ну умер, да умер…
Ну, в общем таких языков, которые как бы живы и как-бы умерли — их не один. На мой сторонний взгляд даже Perl на сейчас не сильно лучше — 6 версию когда планировали? А когда через 100 лет появилась под другим названием — много ли народу на нее перешли?

Ну а так да, наверное zSeries это единственное место, где он реально на сегодня живой — и узкие ниши типа уже тут названных.
Эх, молодость, молодость ). Чуть больше 30 лет назад ещё на ЕС-ке в СВМ написал на рексе базу данных неприводимых представлений федоровских групп для расчёта состава тензорных представлений оных. На ЕС-ке это был возможно наиболее удобный язык для работы со строками.
И я поностальгирую: я в своё время написал на ORexx многопоточный прокси-гейт, который позволял отсылать трафик программ, которые не поддерживали SOCKS, через туннель, открывая порт локально на 127.0.0.1 и перенаправляя трафик в SOCKS. Плюс там были функции анализа проходящего трафика, что-то похожее на зачатки Fiddler.
Эх молодость, молодость… У меня на этом Rexx был мегаскрипт «закрытия дня» в банке — печать кучи документов на матричных принтерах и создание архивов. Этот скрипт пережил меня в банке лет на 8 и окончательно канул в Лету с заменой основного софта (ОДБ).
Zoc — самый наверное продвинутый (и дорогой) эмулятор терминала под Mac скриптуется на REXX.
С языком REXX я познакомился в 1989 году в процессе работы в среде СВМ (Система Виртуальных Машин) на мейнфрейме ЕС <какой-то там номер> (фактически это была OS-360 или 370, конечно).

REXX был языком достаточно удобным и понятным, хотя и не всегда. Например, прочитать строку со стандартного входа, что на языке C выглядело бы так:

s = fgets(in);

на языке REXX выглядело вот так:

parse pull s
'execio 1 diskr in'

Но в целом для своего времени язык был очень хорошим (сейчас, конечно, он морально устарел и начисто проигрывает таким языкам, как Python). В СВМ еще был текстовый редактор XEDIT, в котором можно было писать макросы на языке REXX.

Кстати, существовал клон редактора XEDIT, который работал на персональных компьютерах в среде MS DOS. Он назывался KEDIT, и макросы для него можно было писать на диалекте языка REXX, который назывался KEXX. Я с ним начал работать году в 1990-м.
s = fgets(in);

на языке REXX выглядело вот так:

parse pull s
'execio 1 diskr in'


ну вы тут слегка преувеличили. execio — это прочитать файл, в общем случае с диска и по имени. Для C вам придется файл открыть, прочитать, закрыть, так что в целом будет так на так. Хотя да, эта часть (I/O) не самая лаконичная в rexx, прямо скажем.
Я уже деталей через 30 лет не помню. Этот кусочек кода я взял из одного из своих скриптов тех лет. Возможно, можно было бы и проще сделать.
Ну я тоже подзабыл, но чтение из входного потока все-таки было просто parse pull, и все.
В OS/2, Regina Rexx и OpenObject Rexx это именно так, просто parse pull
Да в общем-то EXECIO это утилита для чтения/записи файлов, что как бы намекает на именованный файл, а не просто входной поток (он же — стек). Ну и в приведенном фрагменте сначала parse pull, а потом EXECIO, так что скорее всего EXECIO относился к какому-то следующему фрагменту кода, а сюда попал по ошибке.

То есть, обычная логика такая:

/* сначала читаем файл, и складываем в стек строки */
'EXECIO DISKR имя тип буковка'
/* а потом их из стека читаем */
parse pull
Спасибо за отличный пост про замечательный и до сих пор современный Rexx! Со времен vm/sp он сильно изменился, за счет внешних средств. Давно появился PIPE, развился EXECIO, GLOBALV, а также, ISPF. REXX внедрили в zOS(MVS)/TSO. Появился компилятор Rexx, и возможность статического анализа нового и «старого» кода. Вообщем, язык жив, планируется (в частности — мною) для дальнейшего использования вместе с HLASM (сильно продвинутый вариант ASMH/ASM2) в новых проектах на современных «VM/SP» и «MVS» вместе с Linux. Кстати, любителей, IBM-кой «инфраструктуры» приглашаю в новый проект.
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.