Klimov, Arkady (klimov@paragraph.ru)
Mon, 21 Dec 1998 18:39:18 +0300
> -----Original Message-----
> From: Andrei Klimov [SMTP:klimov@spp.keldysh.ru]
> Sent: Saturday, December 19, 1998 11:13 PM
> To: Refal Plus mailing list
> Cc: Sergei Romanenko; Arkady Klimov
> Subject: Re: about books
>
> Леня, добрый день!
>
> >Андрей, если помнишь, моя голубая мечта состояла в том, чтобы Рефал
> >был доведен до того уровня удобства, как в свое время был REXX под
> VM/SP.
>
> Очень хорошо помню! Сам о том мечтал!
>
> Хорошую тему ты поднял. Столь важную, что это письмо стоило сразу в
> mailling list направить. Чтобы привлечь к ней внимание остального
> сообщества и спровоцировать обсуждение, отвечаю через refal-лист.
>
> >Хотя REXX и сейчас под ОS/2 не в загоне, но моя неприязнь к этой
> >системе тебе тоже известна.
> >Но REXX это не то, также как и Perl. Вполне солидарен с точкой зрения
> >Дмитрия на Perl.
>
> Тогда возникает такой вопрос:
>
> А какие нужны средства в Рефале и в Рефал-системе, чтобы его
> использование в качестве scripting language -- как в классическом
> стиле, продемонстрированном REXX-ом, так и в современном стиле в духе
> Visual Basic-а и JavaScript-а -- было реальным и удобным?
>
> Ведь перекрыть удобство REXX-а не так просто! А может вообще для
> данной роли лучше подходят императивные языки (REXX, Perl, Visual
> Basic, Java...) и функциональный язык Рефал мало подходит?
>
> Для затравки обсуждения вот мой список требований и вопросов по
> отношению к Рефалу как scripting language:
>
> 1) нужен внятный и хорошо документированный интерфейс в
> широко-распространенным языком, по-видимому, в первую очередь с С, а
> потом, может и с Java;
[Klimov, Arkady] Здесь, видимо, имеется в виду собственный
внутренний интерфейс Рефал-С, который предназначен прежде всего для
повышения эффективности. Он, конечно, нужен, но не имеет, по-моему,
отношения к "Рефалу как scripting language", так же как не имеет отношения к
интерфейсам Рефал-Corba и Рефал-COM, о которых говорится ниже, и которые,
наоборот, имеют к "Рефалу как scripting language" самое непосредственное
отношение.
> 2) более того, наверное, нужен не просто кабы какой интерфейс с С, но
> возможность определять подсистему, запрограммированную на Рефале, как
> CORBA-объект и/или DCOM-объект, чтобы к ней можно было обращаться как
> локально, так и удаленно, по единообразным правилам;
>
> 3) при этом, и из Рефал-программы надо вызывать CORBA- и DCOM-объекты,
> созданные на других языках;
>
> 4) нужны ли и какие средства автоматической перекодировки данных?
> язык описания интерфейса рефал-объектов с CORBA-объектами, Рефал-IDL?
[Klimov, Arkady] Был бы весьма полезен некий Рефал-IDL, покрывающий
все вышеназванные интерфейсы. Он должен содержать какие-то средства описания
отображения данных и отображения вызовов.
> 5) будет ли этого достаточно, чтобы управлять системными объектами так
> же легко как и из REXX-а? (вспомним, что управляемые из REXX-а
> подсистемы имели специально отработанный интерфейс с REXX-ом в
> терминах строчный команд, которые мог посылать как user с терминала,
> так и REXX-программа) [Klimov, Arkady] Это-то не проблема. Проблема
> только в синтаксисе. В рефале команда - это вызов функции. Если писать
> честно, то надо начинать и кончать угловой скобкой, а между ними - имя
> команды-функции и операнды. Среди операндов могут встречаться другие
> вызовы функций. Вопрос я вижу в том, согласиться ли юзер писать всегда
> внешние угловые скобки. Или нужно дать облегченный формат, где они
> навешиваются автоматически (в Рефале-6 так и сделано в командной моде).
>
> 6) насколько важна динамическая компиляция и загрузка программ для
> роли scripting language? [Klimov, Arkady] Конечно, важна. Более того,
> надо постараться сделать так, чтобы она была вообще незаметна для
> пользователя. Как будто загружаюся и выполняются исходные тексты прямо на
> Рефале, разумеется, динамически. Может, нужна также подсистема управления
> версиями: если исходный файл изменился - он автоматически должен быть
> перезагружен. (Интересно, а в обычных скриптовых языках такое есть?).
> Кроме того, в командном режиме должна быть команда "определить функцию".
>
> И как сделать все это красиво, удобно, с достаточной полнотой.
>
> Какие еще требования к Рефал-системе надо предъявить, какие вопросы
> решить, чтобы Рефал мог конкурировать с REXX-ом, Perl-ом, и т.д.?
[Klimov, Arkady] Думаю, будет достаточно названного, то есть
автоматическая загрузка из исходников и COM-CORBA интерфейсы. Последнее,
естественно, потребует тщательной програботки модели ООП для Рефала. К
счастью, можно обойтись без наследования классов (реализаций), поскольку ни
COM, ни CORBA их не предоставляют.
This archive was generated by hypermail 2.0b3 on Tue Dec 29 1998 - 23:09:23 MSK