Язык REXX использует технологию программных агентов 

Автор: Питер Коффи

Дата: 22.08.1995

Источник: Журнал PCWEEK. Беседы о программировании.

 

БЕСЕДЫ О ПРОГРАММИРОВАНИИ

     Концепция программных агентов недавно привлекла к себе доброжелательное внимание благодаря появлению долгожданных инструментов разработки и приложений для операционной системы Magic Cap фирмы General Magic. В Magic Cap есть что-то сексуальное, что-то от импровизированных демонстраций в зале ожидания аэропорта. Поэтому я не виню тех, кто оказался заинтригован.

      Для всего этого шума есть даже некоторые реальные основания. Metrowerks заявляет, что ее утилиты CodeWarrior для Magic Cap позволят разработчикам испытать себя в той области, которая может оказаться огромным рынком,  -  программы для персональных цифровых ассистентов (PDA). Приложения, созданные с помощью этих утилит, могли бы сделать действительно практичными такие игрушки, как PDA Magic Link компании Sony и Envoy компании Motorola. Приложения для PDA, подобные версии Official Airline Guide для Magic Cap, вступят в жизнь тогда, когда их привлекательность для публики уже будет доказана.

      Однако в то время, как Magic Cap поднимает волну, в глубинах скрывается Левиафан в технологии программных агентов  -  Object REXX корпорации IBM. Язык REXX  -  достойный результат лет, потраченных на его управляемую пользователями доводку, в течение которых он без особого шума применялся для написания любых сценариев: от составления бизнес-отчетов до обслуживания атомной физики. Объектные расширения REXX в этом году выйдут для впечатляюще большого количества платформ, основной язык REXX неизбежно будет признан открытым стандартом ANSI и избавится от объятий Голубого Гиганта.

     REXX не привлекает большого внимания печати  -  и это при том, что читатели PC Week, занимающиеся разработкой ПО, используют его почти так же широко, как Паскаль, и наверняка чаще, чем Фортран. Этой весной мы получили примерно 500 ответов от тысячи случайно выбранных читателей рубрики "Разработка приложений" и обнаружили, что 19% из них указали REXX как один из своих языков, при том что 21% хоть иногда пользуется Паскалем и 17% -  Фортраном.

     Однако база данных Computer Library в настоящий момент насчитывает 651 статью с ключевым словом Pascal, 449  -  с Fortran и только 76  -  с REXX, из них 8 из этих статей написаны мной. Позор! REXX  -  это язык диалогов, сочетающий в себе легкость использования Бейсика с некоторыми мощными возможностями, присущими языкам искусственного интеллекта, таким как Лисп.

     Сейчас, когда REXX доступен в командных файлах операционных систем IBM DOS 7.0 и OS/2, а также поставляется от нескольких независимых фирм, следовало бы изучить его повнимательнее.

     Будучи ограничен размерами этой колонки, я не стану пытаться создать учебное руководство но REXX, но позвольте мне поделиться с вами восхищением от двух особенностей языка REXX. Первая: любая переменная в REXX может стать разветвляющейся иерархией значений, которые могут быть использованы в структурах данных так же гибко, как вложенные списки Лисп, или в таком же строгом порядке, как массивы Фортрана. Программа на REXX может динамически создавать имена переменных, состоящие из многих частей, позволяя формировать структуру данных в соответствии с данными, которые получила программа. Это устраняет большой класс программных ошибок, возникающих в случае, если программист делает неправильные предположения о том, что появится в будущем.

      Вторая потрясающая черта REXX  -  встроенная возможность распознавания шаблонов и извлечения данных из конкретных фрагментов шаблона. Это позволяет разработчику проверять потоки данных, не имея детального представления об их глобальном формате.

Обе эти черты свойственны приложениям-агентам, код которых должен выполняться в "чуждой" среде хост-машины.

Сейчас, когда средства написания сценариев становятся ключевыми для повышения эффективности приложений, REXX наконец имеет шансы привлечь к себе то внимание, которого он заслуживает.

 

К Питеру Кофи можно обратиться через MCI Mail: 357-1756 или через CompuServe: 72631,113.