Free Pascal для BeOS
SD 13 января, 2003 - 23:25.В свое время фирма Borland превратила Pascal из концептуально–стройного алгол–подобного языка для обучению программированию в мощный инструмент реального прикладного программирования. А появление Delphi было настоящей революцией в RAD (быстрая разработка приложений). И до сих пор количество поклонников Pascal (в основном, тех же дельфийцев) впечатляет. Под BeOS же Pascal практически никогда не проявлялся..
Одна из причин тому — сам BeOS, практически от самых корней до верхушки построенный на C++ и заточенный под C++. Причем не на том уровне, на котором кулхацкер, использующий cout для программы Hello World вместо printf(), утверждает в своем резюме, что он мастер С++, а на действительно объектных принципах.
И если создание над процедурно–ориентированным Win16/32 API надстройки из VLC–библиотек и нового диалекта языка (Object Pascal) было трудозатратным, но прозрачным процессом, то создание полноценного соответствия BeOS C++ API для FreePacal — вещь гораздо менее однозначная. Тому же Borland–у пришлось пойти на ряд ограничений при «противоположном» процессе — создания С++ инструментария (С++ Builder) над библиотеками паскалевских объектов.
Для случая FreePascal, насколько я понимаю, дело еще может быть в отсутствии стандартизации на тему объектности — по сути, Borland Object Pascal — сам себе стандарт.
Тем не менее, нет ничего невозможного — года 3 назад на японском BeOS–сайте я видел обширную таблицу по портированию программ из Delphi в BeOS C++ API.
Тут надо отметить, что порты FreePascal ( http://www.freepascal.org ) под BeOS существуют довольно давно, чуть ли не с 97–го года, но до недавних пор являлись «вещью в себе» — реализуя, в основном, POSIX API — то есть позволяя создавать программы для командной строки.
То есть недостающим элементом были библиотеки, реализующие BeOS API для Pascal–я.
В принципе, ничего тут сложного нет — библиотеки такие могут быть обертками, преобразующими Pascal–евские вызовы в вызовы C++ функций — но работа это долгая и муторная, в основном ручная. Нужно подогнать систему внутренних имен функций, огранизовать перестановку параметров вызова в стеке в обратном порядке, а также создать всю систему заголовочных файлов на основе имеющихся *.h.
За эту гераклову работу взялись два человека — Olivier Coursière (aka oco) и Eric Jourde (aka baldur) — за ее продвижением можно следить на странице BePascal ( http://befpc.sourceforge.net/ ).
К настоящему времени сделаны обертки для основных объектов (BMessage, BApplication, BForm, BHandler, BLooper
) и также некоторый набор инструментов и скриптов для полуавтоматизации этой работы (если раньше на «преобразование» одного объекта уходил целый день, если не больше, то теперь менее двух часов).
После завершения этой базовой работы, ребята мечтают создать и среду быстрой разработки, наподобие Delphi или хотя бы BeXL..
Так как среди русских программеров Delphi пользуется особой любовью, да и многие посетители BeOS–форумов, особенно среди начинающих, постоянно интересовались этой проблемой, хотелось бы надеяться, что может кто–то из наших и присоединится к этой команде :)
-------------------------–
Сам FreePascal для BeOS можно скачать здесь:
http://befpc.sourceforge.net/fpc-1.0.6–ELF.zip
Отправить комментарий