Как стать автором
Обновить

Комментарии 12

А не проще ли написать транслятор кода на что-нибудь посвежее?

напиши — озолотишься :)
У Micro Focus такого ещё нет?

Серверы IBM AS/400 и iSeries активно используются в ПФР. Интересно, на чем там софт написан.

В статье достаточно много неточностей.
Например,
«В 1978 году IBM представляет одновременно средний компьютер System/38 и новый диалект языка — RPG III — для него.С этого момента ограничения языка несколько ослабляются и разрешается писать спецификации вычислений в «свободном формате»»
Т.н. «free format», с картинки в статье, появился только в RPG ILE (IV), и не сразу после его выхода в 1994-м, а лишь в версии 5.1 в 2001-м. Мне тогда пришлось преодолеть немало запретов и получить специальное разрешение использовать free в своем коде. Это по-сути был другой диалект языка который рвал на части многие принятые до того стандарты.

Говоря об истории, не стоит забывать об отечественных версиях языка. Например, компилятор с языка был на ЭВМ Минск-32, и я даже когда-то читал книжечку изданную в 70-х про язык РПГ :-).

Eclipse-based клиент, показанный на картинке, назывался «IBM Websphere Development Studio Client», а «IBM Websphere Development Studio» — это прежде всего набор компиляторов на самом мэйнфрейме. В клиенте ничего не компилируется. (вот www.ibm.com/support/knowledgecenter/en/ssw_i5_54/rzau1/rzau1ebwds.htm)

RPG для .NET действительно когда-то был, в 2001-м, если не ошибаюсь. Тогда на него возлагали большие надежды, типа убийца AS400 (ведь программа предполагала еще и перенос софта на мощные сервера по управлением OS Windows). Почила в бозе эта инициатива уже давно, насколько мне известно.

Ну и главное, не раскрыто, почему собственно язык пользуется популярностью до сих пор. В чем его мощь? А она вовсе не в синтаксисе. Она в глубокой интеграции с OS, и прежде всего с БД. Если кто-то был знаком c FoxPro — вот это примерно отдаленно то же, только лучше. Нативно, на уровне синтаксиса, поддерживаются операции ввода-вывода в БД.
Ну и надо сказать пару слов о БД. Дело в том, что в IBM параллельно, в одно и то же время, две разные команды разрабатывали концепцию реляционной БД и язык для него. Кодд делал SQL, а команда AS400 (или тогда еще S/38) свой вариант — DDS. Попытка объединить усилия была предпринята, но, как пишет Ф. Солтис (папа архитектуры as400), Кодд воспринял их идеи холодно и больше они не сотрудничали. В результате AS400 получила свой язык описания моделей БД — DDS. А в качестве языка программ-запросов используется RPG.
Конечно, со временем SQL появился и на AS400. Но в существующих программах преобладает использование DDS.

Стратегически, IBM сейчас нацеливает разработчиков на переход с DDS на SQL. Это, на мой взгляд, сильно нивелирует достоинства языка и становится не понятно, почему например не писать тогда на Java или c++ например?
Дополнительно можно отметить, что язык синтегрирован ещё и со специальным языком для отчётов и с языком для GUI. Но здесь они сейчас полностью просрали полимеры.
Если бы они хотя бы позволили создавать окна произвольного размера (а не только 80х24 и 132х27), то было бы очень круто.
Ведь эти текстовые интерфейсы дико круты для операционистов: всё управляется с клавы, летает и т.д. Но маленький экранчик при современных мониторах не позволяет удобно умещать информацию…
И в части отчётов уже всё везде ушло вперёд, но не на AS400. Я запилил для наших целей либу для формирования отчётов в excel, и пользоваться ей было во многих отношениях удобнее и быстрее, чем «родными» PRTF. Кроме того, что их задёшево нельзя сразу отправить на печать.
Ну, это разговор про DDS, о котором я упомянул. В принципе, все кто хотел, прекрасно заменили RPTF и DSPF на вызов API и трагедии я тут не вижу.
Мне DDS нравится как язык для описания моделей. На самом деле, он ближе к современным подходам, когда модели описываются не в DDL, а на неком языке приближенном к языку приложения. Жаль, что IBM решила его не развивать. Вот такими решениями и убивается платформа. Если я буду писать свои приложения на SQL, модели описывать на DDL, спрашивается, зачем вообще AS400 и RPG?
С этого момента ограничения языка несколько ослабляются и разрешается писать спецификации вычислений в «свободном формате»:


«Свободный формат» появился только в RPG IV.
khandeliants, решите пилить анализатор для RPG, учтите, что у этого языка безумное море своих очень индивидуальных тараканов, которые вряд ли описаны в «стандартных» книжках. Что-то полезное за быстро не запилите. Тараканы в большинстве своём гораздо проще сами по себе, чем разные плюсовые «фичи», но…
Программирование на RPG — это в основном поддержка существующего старого кода, написанного при Царе Горохе, со своими вставками во Free формате.
Новые проекты больше пишется на С/С++, Java и Python, которые также поддерживаются в iSeries.

Не вижу смысла пилить анализатор на умирающий язык, где клиентов раз-два и обчелся.
Однако появилось и множество других инструментов. Среди них — Visual Age для RPG, разработанные IBM и продвигаемые Джоном Пэрисом (Jon Paris) и другими.

Кстати, начиная с версии 7.1 IBM поставляет OpenSource пакет, который включает в себя python, perl, bash, много чего еще, и Orion — бесплатный Web редактор исходного, который поддерживает подсветку rpg синтаксиса. (https://orionhub.org/)
Появляется все больше статей про замену платного RDI в пользу бесплатного ориона :)
Наш сотрудник сделал плагин для Notepad++ (пока α — версия)

Возможности:
— редактирование и подсветка: RPG, Free-RPG, C++
— загрузка, выгрузка файлов
— выполнение SQL
— git, сравнение файлов и версий
Он полностью отказался от RDi-ки

Я разрабатываю на плюсах, использую Sublime, но деплой на сервер осуществляется с помощью gradle. По форматированию кода RDi-ка вообще ни какой инструмент. Отладка в green screen.

Вот альтернативный проект github.com/WorksOfLiam/rpg-intro
Зарегистрируйтесь на Хабре, чтобы оставить комментарий