Diesel Pascal (в прошлом DBI-Builder-Surgy) - кроссплатформенная среда разработки с открытым кодом на языке FreePascal. Цель создания - возможность разработки максимально гибких бизнес приложений, для внесения изменений в которые не требуется перекомпиляция, запуск приложения без перекомпиляции на различных платформах.
Интерфейс и функционал среды аналогичен интерфейсу Lazarus, имеет встроенные интерпретаторы FreePascal и DieselPascal. Оба языка поддерживают ООП. Можно объявлять классы, поддерживается наследование и полиморфизм. Встроенный интерпретатор FreePascal довольно тесно совместим с оригиналом за исключением некоторых нюансов, касающихся перегрузки процедур и функций и инициализации массивов. Приложения дизель-паскаль представляют из себя XML файл содержащий ресурсы (формы, фреймы, модули данных) и код для интерпретатора Free/Diesel Pascal. Приложения выполняются виртуальной машиной, компиляция кода во внутренний формат происходит при запуске приложения (компиляция на лету), поэтому приложения Дизель паскаль будут работать без перекомпиляции и переделок на любой платформе, под которую удастся собрать сам Дизель-паскаль. Сама система задумана как дополнение к Lazarus, предназначена для разработки бизнес программ либо других программ автоматизации какой либо деятельности, но подразумевающей немного иной подход в построении и выполнении приложения. Дизайнер и машина Дизель-паскаль могут загружать приложения как локально, так и по протоколу http, что дает дополнительное преимущество при многопользовательской работе.
В процессе работы над системой появились побочные продукты, благодаря которым мне удалось избавиться от коммерческой зависимости в виде покупных компонент и в конечном итоге от Delphi.
1. Компоненты IBX (InterBase Express). Доработал функционал, до нужного мне уровня. Добавил возможность работы в компонентах TIBDataSet в рамках 2х транзакций по принципу FIBPlus. Добавил поддержку выражений RETURNING (и возвращаемых значений из EXECUTE PROCEDURE), поддержка выражений EXECUTE BLOCK, добавлена поддержка эмуляции Boolean полей, автотримирование строковых значений (свойство AutoTrim), добавлены свойства AutoStartTransaction и AutoCommit. Убран старый баг в TIBStoredProc (
http://www.ibase.ru/devinfo/ibstp.htm). Тут могу сказать только спасибо разработчикам компании Devrice, которые отказались портировать компоненты FIBPlus на Lazarus, а IBDac оказались слишком дорогие. Привести функционал IBExpress до нужного уровня оказалось вполне посильной задачей, иначе я бы не задумываясь продолжал отсегивать деньги за использование FIBPlus...
2. TxDBF - клон TDBF, заточенный на работу с таблицами DBF в кодировках Win1251 и cp866 (В лазарусе вообще существует проблема, когда нужны кодировки кроме UTF-8 ).
3. Перенес свою библиотеку компонентов на Lazarus, добавил компонент TFormsBar с помощью которого можно эмулировать работу MDI интерфейса (в Lazarus MDI нет).
4. Сделал библиотеки для TXMLDoc, которые расширяют возможность чтения XML с кодировками Win1251 и cp866 (Оригинал читает только UTF-8 ), допилил OLE для использования в интерпретаторе (CreateOLEObject, в Lazarus OLE до сих пор толком не работает).
Lazarus оказался отличной штуковиной, приложения сделанные в нем будут работать на любом Linux, без всяких зависимостей и не взирая на версию glibc.
приложение запущено под Linux
Среда разработки:
Спойлер
Windows
Alt Linux Simply
В среде разработки имеется отладчик, можно ставить точки останова и выполнять программу по шагам.
Редактор поддерживает автозавершение кода, а т.ж. MouseLink - удерживая Ctrl и нажимая на ссылки можно переходить к объявлениям переменных и методов и т.д. в общем-то всё как в Delphi/Lazarus.
подсветка синтаксиса работает для обеих языков: Pascal и Diesel Pascal.
В систему встроены классы для работы с XML, Zip, FTP, HTTP, SMTP, POP3, IMAP (сетевые протоколы поддерживают SSL/TLS), LazReport, доступ к другим SQL серверам (кроме FireBird) возможен через ZEOS. Всё бесплатно и кроссплатформенно:
http://www.visual-t.ruВ разделе Загрузка - исходный код Diesel Pascal и компоненты кроме ZEOS, Synapse и LazReport, а т.ж. в папке exe откомпилированные версии под Win32 и Lin32.
Простенькие примеры:
Фрактальная графика:
http://visual-t.ru/files/Fractals.lm9Пример с Excel:
http://visual-t.ru/files/Excel.lm9 (использует OLE, поэтому работать будет только под Windows)
Пример с OpenOffice:
http://visual-t.ru/files/OpenOffice.lm9 (использует OLE, поэтому работать будет только под Windows)
Игра тетрис:
http://visual-t.ru/files/Tetris.lm9 Система может загружать приложения по протоколу HTTP, поэтому адреса ссылок можете добавить в DManager или в дизайнере выполните Файл->Открыть URL и скопируйте ссылку туда (В дизайнере приложения загруженные по HTTP будут только для чтения, чтобы их можно было править, сохраните их локально, для этого в дизайнере выполните Файл->Сохранить проект)
ps:
Пардон за сайт, похерили хакеры...