Pull to refresh

Паскаль, Дельфи и Оберон сегодня

Reading time 5 min
Views 18K
Привет всем.

Начну с того, что на днях пришла рассылка по Delphi и RAD Studio XE4, в которой Delphi декларируется как мультиплатформенное средство для быстрой разработки для компьютеров, ноутбуков, планшетов и мобильных устройств, включая MAC, iPhone, iPAD, также у Embarcadero есть планы сделать поддержку мобильной платформы Android.

Delphi и FreePascal — это Паскаль сегодня. Один из моих любимейших языков программирования. Язык прошёл долгий путь от “игрушки для учёных” до мощнейшего универсального средства разработки, на котором сделаны великолепные проекты, например, Total Commander.

Построенное на здравых решениях, ядро языка Паскаль легко поддалось усовершенствованию и умощнению и пригодно для широчайшего класса практических задач. В России Delphi особенно популярен и всё ещё широко используется. Однако развитие языка идёт по принципу наращивания возможностей, и постепенно Delphi становится всё более громоздким, догоняя по сложности таких монстров как PL/1, C++ и Ada. С большой вероятностью мы можем предположить, что проще язык становиться не будет, ибо нужно поддерживать совместимость с накопившейся базой исходников и т.д. В конце концов такая стратегия развития неизбежно приведёт к трудностям, когда сложность уже невозможно будет контролировать.

В то же время есть язык программирования, получившийся за несколько десятилетий практического преподавания и решения различных задач путём методического и последовательного уточнения Паскаля. Это Оберон — самый красивый из всех минималистичных языков, о котором мало кто слышал. Я смело утверждаю: Паскаль сегодня — это не только Дельфи (полученный методом наращивания), но и Оберон-2 / Компонентный Паскаль (полученные методом отбрасывания, пересмотра и уточнения целесообразности тех или иных средств). Благодаря тому, что над автором языка не довлела необходимость совместимости, он особенно на эту тему и не парился. И получившийся в итоге язык — цельный, компактный, мощный, кроссплатформенный в широком смысле (включая не только современные платформы, но и Amiga, и даже Atari). На Компонентном Паскале я успешно разработал мидлет для Java micro edition, не предвижу трудностей и в разработке для Android. Кроме одной: отсутствие инфраструктуры, да и вообще о таком использовании Оберонов мало кто знает.

Оберон-2 и Компонентный Паскаль — мультипарадигменные языки для системного и прикладного программирования, они модульные, компонентные и объектно-ориентированные. Разработанные на диалектах Оберона операционные системы, компиляторы и другие программы — часто сами по себе произведения искусства. Они красивы, неординарны, компактны и достойны всяческих похвал. Оберон популярен в академической среде как способ записи алгоритмов (пришёл на смену Фортрану) и как минимальный язык для исследований (посмотрите, например, сколько вышло публикаций по Оберону на сайте издательства SpringerLink). Он идеально подходит для обучения программированию. В России есть проект Информатика-21, популяризующий применение Оберона для подготовки будущих программистов, ибо, помимо своих технических достоинств, Оберон даёт хорошее понимание технологий программирования и не зависит от коммерческих интересов крупных корпораций. Посмотрите чего наваяла моя малолетняя племянница после недели разговоров со мной о программировании. Благодаря простоте языка энтузиасты разработали много компиляторов Оберон-диалектов для различных платформ.

Вирт всегда считал правильным конструировать процессоры под языки, а не наоборот. Но, несмотря на это, Оберон-программы хорошо конвертируются в Си, Java, работают как на нативе, так и на .NET/JVM. Разрабатывается компилятор GPCP для LLVM. Мне принадлежит идея ZXDev — среды разработки на Обероне-2 для восьмибитного процессора Z80 и компьютера ZX Spectrum. Самая новая ревизия виртовского Оберона называется Oberon-07. Он ещё меньше по размеру, чем Оберон-2, и адаптирован для ARM-процессоров и архитектур большой разрядности. Вот такое направление развития Паскаля. Малоизвестное широким массам программистов, но красивое как произведение искусства. Уже более семи лет я активно применяю Оберон-технологии с пользой для своей деятельности, и программировать на чём-то другом уже мало хочется.

Поэтому обращаюсь к энтузиастам, кому нравятся Паскаль и Дельфи, кто любит кодить для ретро-платформ. Среда XDev, которая задумана как база для кроссплатформенной разработки, может оказаться намного более интересным средством, чем вы думали. Она реализует различные схемы трансляции (с разных языков) в целевой код различных платформ, утилиты для удобства разработки, визуализаторы и набор библиотек, как ориентированных на определённую платформу, так и кроссплатформенных. XDev — модульная и компонентная среда, и для разработки под различные платформы применяются подсистемы. Богаче всего (и готовее) сейчас подсистема ZXDev (целевая платформа: ZX Spectrum). ZXDev реализует схему трансляции с языков Оберон и Оберон-2 в Си, и средствами компилятора SDCC уже трансляцию Си и ассемблера в машинный код процессора Z80. В наборе присутствует утилита smartlib (для удобной работы с библиотеками и включения в целевой бинарник только действительно использованного в программе машинного кода) и конвертеры в целевые форматы TAP и TRD. Есть несколько библиотек, например, Console, Laser, Basic, Graph. Разработка на ZXDev может вестись как на Обероне-2 или Си с ассемблерными вставками, так и на всех языках сразу, одномоментно.

На всех уровнях XDev в качестве средства высокого уровня используется практически один язык — Оберон-2. Разумеется, для промежуточного представления применён язык Си, а командный язык BAT-файлов нужен для связывания Оберон-компонентов и средств третьих сторон, но, в общем, прицел на моноязычность, особенно с учётом того, что Компонентный Паскаль является правильным надмножеством Оберона и Оберона-2. Поэтому один язык — и для разработки самой XDev, и для программирования целевых платформ. Мы у нас на форуме пытаемся развивать язык Оберон, наращивая его теми средствами, которые кажутся нам необходимыми для практической разработки (например, Оберон-07 утерял различные типы целых, поэтому малопригоден для разработки для 8-битных процессоров).

Но в среде XDev, разумеется, могут быть реализованы и другие схемы трансляции, добавлены другие языки программирования (планируются: Component Pascal, Modula-2 Revision 2010, Objective Modula-2, а, возможно, и какой-то диалект объектного или обычного Паскаля) и целевые платформы. В качестве компонентного каркаса XDev используется Оберон-среда BlackBox Component Builder (Oberon Microsystems), расширяемая и с открытыми исходниками.

Кроме ZXDev также разрабатываются подсистемы WinDev, LinDev, DosDev и JmeDev (в байт-код Java microedition), а, в принципе, нету никаких препятствий сделать подсистему и для целевой разработки под Android/iOS, MSX, ColecoVision, NES/SEGA, Atari, Amiga, Palm OS, да даже под УК-НЦ с ДВК/БК-0011 и под Микрошу с Апогеем/Кристой/РК-86. И у вас есть возможность сделать для XDev поддержку любой интересующей вас платформы, как современной, так и ретро. Вот то моё хобби, к которому в итоге привёло меня многолетнее увлечение программированием. А начиналось всё с Pascal/Fast на УК-НЦ. :)

Так что приглашаю всех желающих на наш форум, узнать больше о нашей деятельности и конечно об Оберон-технологиях. Можете посодействовать разработке XDev, помочь новыми идеями, повлиять на принятые решения, разработать/адаптировать новую библиотеку или добавить новую платформу. Здесь нет никаких ограничений ни на язык(и), ни на что-либо, просто в основу XDev положено желание разрабатывать на модульных языках европейской школы программирования, которые качественно отличаются от доминирующей сегодня на рынке IT американской Си-образной парадигмы. Впрочем, в споры вступать не хочется, если любите Си, то XDev вполне подходит и для разработки на Си, правда, тогда вы наверно предпочтёте традиционную IDE, а не среду XDev.

Спасибо за понимание.

Темы, которые могут вас заинтересовать:

Как я пришёл к Оберону. Зачем его использую. Есть ли у него преимущества
Обероны и кроссплатформенность
О трансляции Оберона в Си (И зачем писать на Обероне, если есть Си?)
Разработка игр и программ для ZX Spectrum на языке Оберон-2
Среда XDev: с чего начать?
Будни разработки XDev
Мощная среда ZXDev для разработки на четырёх языках для ZX Spectrum готова к тестированию
Как создать новую библиотеку для ZXDev
Порт графической библиотеки Graph (из Turbo Pascal) под ZXDev
Преимущества ZXDev над Code::Blocks/SDCC для начинающих изучать Си
Tags:
Hubs:
+41
Comments 153
Comments Comments 153

Articles