- PVSM.RU - https://www.pvsm.ru -

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

Привет всем.

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

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

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

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

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

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

Поэтому обращаюсь к энтузиастам, кому нравятся Паскаль и Дельфи, кто любит кодить для ретро-платформ. Среда XDev [12], которая задумана как база для кроссплатформенной разработки, может оказаться намного более интересным средством, чем вы думали. Она реализует различные схемы трансляции (с разных языков) в целевой код различных платформ, утилиты для удобства разработки, визуализаторы и набор библиотек, как ориентированных на определённую платформу, так и кроссплатформенных. XDev — модульная и компонентная среда, и для разработки под различные платформы применяются подсистемы. Богаче всего (и готовее) сейчас подсистема ZXDev (целевая платформа: ZX Spectrum). ZXDev реализует схему трансляции с языков Оберон и Оберон-2 в Си, и средствами компилятора SDCC [13] уже трансляцию Си и ассемблера в машинный код процессора Z80. В наборе присутствует утилита smartlib [14] (для удобной работы с библиотеками и включения в целевой бинарник только действительно использованного в программе машинного кода) и конвертеры в целевые форматы 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 [15], а, возможно, и какой-то диалект объектного или обычного Паскаля) и целевые платформы. В качестве компонентного каркаса XDev используется Оберон-среда BlackBox Component Builder (Oberon Microsystems) [16], расширяемая и с открытыми исходниками.

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

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

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

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

Как я пришёл к Оберону. Зачем его использую. Есть ли у него преимущества [18]
Обероны и кроссплатформенность [19]
О трансляции Оберона в Си (И зачем писать на Обероне, если есть Си?) [20]
Разработка игр и программ для ZX Spectrum на языке Оберон-2 [21]
Среда XDev: с чего начать? [22]
Будни разработки XDev [23]
Мощная среда ZXDev для разработки на четырёх языках для ZX Spectrum готова к тестированию [11]
Как создать новую библиотеку для ZXDev [24]
Порт графической библиотеки Graph (из Turbo Pascal) под ZXDev [25]
Преимущества ZXDev над Code::Blocks/SDCC для начинающих изучать Си [26]

Автор: Zorko

Источник [27]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/delphi/33254

Ссылки в тексте:

[1] Total Commander: http://www.ghisler.com

[2] Оберон: http://ru.wikipedia.org/wiki/%D0%9E%D0%B1%D0%B5%D1%80%D0%BE%D0%BD_(%D1%8F%D0%B7%D1%8B%D0%BA_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F)

[3] Оберон-2: http://ru.wikipedia.org/wiki/%D0%9E%D0%B1%D0%B5%D1%80%D0%BE%D0%BD-2_(%D1%8F%D0%B7%D1%8B%D0%BA_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F)

[4] Компонентный Паскаль: http://ru.wikipedia.org/wiki/%D0%9A%D0%BE%D0%BC%D0%BF%D0%BE%D0%BD%D0%B5%D0%BD%D1%82%D0%BD%D1%8B%D0%B9_%D0%9F%D0%B0%D1%81%D0%BA%D0%B0%D0%BB%D1%8C

[5] Amiga: http://zx.oberon2.ru/forum/viewtopic.php?f=3&t=39

[6] Atari: http://www.filewatcher.com/b/ftp/ftp.pgp.net/pub/atari/Programming/Oberon-0.html

[7] На Компонентном Паскале я успешно разработал мидлет для Java micro edition: http://zx.oberon2.ru/forum/viewtopic.php?f=27&t=38

[8] публикаций по Оберону на сайте издательства SpringerLink: http://link.springer.com/search?query=Oberon

[9] проект Информатика-21: http://www.inr.ac.ru/~info21/

[10] чего наваяла моя малолетняя племянница после недели разговоров со мной о программировании: http://zx.oberon2.ru/forum/viewtopic.php?f=8&t=97

[11] ZXDev: http://zx.oberon2.ru/forum/viewtopic.php?f=10&t=21

[12] XDev: http://zx.oberon2.ru/forum/viewforum.php?f=8

[13] SDCC: http://sdcc.sourceforge.net

[14] smartlib: http://zx.oberon2.ru/forum/viewtopic.php?f=10&t=34

[15] Modula-2 Revision 2010, Objective Modula-2: https://bitbucket.org/trijezdci/m2r10/

[16] BlackBox Component Builder (Oberon Microsystems): http://oberon.ch/blackbox.html

[17] наш форум: http://zx.oberon2.ru/forum

[18] Как я пришёл к Оберону. Зачем его использую. Есть ли у него преимущества: http://zx.oberon2.ru/forum/viewtopic.php?f=25&t=72

[19] Обероны и кроссплатформенность: http://zx.oberon2.ru/forum/viewtopic.php?f=46&t=88

[20] О трансляции Оберона в Си (И зачем писать на Обероне, если есть Си?): http://zx.oberon2.ru/forum/viewtopic.php?f=8&t=91

[21] Разработка игр и программ для ZX Spectrum на языке Оберон-2: http://zx.oberon2.ru/forum/viewtopic.php?f=10&t=18

[22] Среда XDev: с чего начать?: http://zx.oberon2.ru/forum/viewtopic.php?f=8&t=84

[23] Будни разработки XDev: http://zx.oberon2.ru/forum/viewtopic.php?f=8&t=90

[24] Как создать новую библиотеку для ZXDev: http://zx.oberon2.ru/forum/viewtopic.php?f=10&t=94

[25] Порт графической библиотеки Graph (из Turbo Pascal) под ZXDev: http://zx.oberon2.ru/forum/viewtopic.php?f=10&t=85

[26] Преимущества ZXDev над Code::Blocks/SDCC для начинающих изучать Си: http://zx.oberon2.ru/forum/viewtopic.php?f=10&t=35

[27] Источник: http://habrahabr.ru/post/178257/