Lazarus

History

Lazarus was started in February of 1999. It was primarily founded by three individuals:

  • Cliff Baeseman
  • Shane Miller
  • Michael A. Hess

All three had attempted to get involved with the Megido project which dissolved. In frustration they started the Lazarus project. It has had a steady growth of supporters and developers during the following years. The founders are not involved with the project any more.

The next oldest member of the team is Marc Weustink. He got involved with the project in Aug. 1999. Following him is Mattias Gaertner who got involved in Sept. 2000. Both of them have been the major contributors to the core of what makes Lazarus tick. More about the history in the Wiki

Lazarus.

Lazarus — это специальная программа с интегрированной (свободной) средой для разработки на основе компилятора Free Pascal. Lazarus — программа с полностью открытым исходным кодом, которая направлена на обеспечение библиотек класса Free Pascal. FP — компилятор интегрированной среды разработки соответствует образцу программе Borland — Delphi — и библиотеки Лазарус, которые эквивалентны VCL. Она смоделирована на Delphi и позволяет импортировать проекты, выполненные в Delphi.

                                          Основные Возможности

Работает на многих платформах
Открытый исходный код для создания любых проектов
Возможность использовать 200 компонентов
Внедрении необходимых компонентов через пакет файлов
Возможность использовать программу для коммерческих целей

Окружающая среда Lazarus подходит для всех разработчиков и особенно для тех, кто намерен создавать программы с нуля. Интерфейс программы очень прост, как для новичков, так и для тех кто уже занимается программированием на профессиональном уровне. Этого удалось достичь принципом перетаскивания выбранного компонента. Программа позволяет создавать приложения с помощью перетаскивания всех необходимых элементов и помещать их в специальные окна. Большим преимуществом этой программы является возможность компиляции для любых операционных систем (Windows, OSX, Linux и Windows CE).

Установка Lazarus на Ubuntu

Ставить Lazarus + Fpc лучше из репозитория сообщества freepascal так как основные репозитории Ubuntu обновляются реже и могут включать в себя не все пакеты.

Установка ключа

Для подключения дополнительного репозитория сначала необходимо установить ключ. По этому ключу репозиторий будет опознан системой. (Что бы злобные хакеры не подсунули вредоносные пакеты )

Ключ к репозиторию freepascal находятся на сервере ключей pgp.mit.edu, и имеет идентификатор 6A11800F.

Установка ключа через графический интерфейс

  • Заходим на сайт http://pgp.mit.edu
  • В строке поиска набираем freepascal
  • Из полученного списка выбираем 1024D/6A11800F 2007-08-16 Vincent Snijders (gpg key for lazarus ubuntu repository) <vincents@freepascal.org> (жмем левую кнопку мыши на идентификаторе ключа, а не на строке с описанием владельца)
  • Копируем строки начиная с —–BEGIN PGP PUBLIC KEY BLOCK—– до —–END PGP PUBLIC KEY BLOCK—– включительно и сохраняем в файле с расширением key
  • «Система» > «Администрирование» > «Менеджер пакетов Synaptic»
  • В меню: «Настройки» > «Репозитории»
  • В открывшемся окне вкладка «Аутентификация»
  • Кнопка «Импортировать файл ключа»
  • Выбираем сохраненный файл и жмем «ОК» – ключ появится в списке

Установка ключа из командной строки

Здесь все проще

gpg –keyserver hkp://pgp.mit.edu:11371 –recv-keys 6A11800F

gpg –fingerprint 6A11800F

gpg –armor –export 6A11800F| sudo apt-key add –

Подключение репозитория через графический интерфейс

  • «Система» > «Администрирование» > «Менеджер пакетов Synaptic»
  • В меню: «Настройки» > «Репозитории»
  • В открывшемся окне вкладка «Другое ПО»
  • Кнопка «Добавить»
  • Строка APT:

deb http://www.hu.freepascal.org/lazarus/ lazarus-stable universe

  • Сохраним с помощью кнопки «Добавить источник»
  • При закрытии окна «Источники предложений» Synaptic напомнит что необходимо обновить список пакетов. Жмем «ОК» и обновляем список (большая кнопка «Обновить» в левом верхнем углу).

Подключение репозитория из командной строки

sudo nano /etc/apt/sources.list

В конец файла добавим

deb http://www.hu.freepascal.org/lazarus/ lazarus-stable universe

Сохраним файл, выйдем из редактора и обновим пакеты:

sudo apt-get update

Установка через «Центр приложений Ubuntu»

  • «Приложения» > «Центр приложений Ubuntu»
  • В поиске набираем «lazarus»
  • Жмем на стрелку в правой части списка
  • Жмем на кнопку «Установить»

Установка через «Менеджер пакетов Synaptic»

  • «Система» > «Администрирование» > «Менеджер пакетов Synaptic»
  • В поиске набрать «lazarus»
  • Правой кнопкой мыши на пакете lazarus > «Отметить для установки»
  • Аналогично можно отметить дополнительные пакеты. Все пакеты lazarus+fpc начинаются со слов «lazarus-», «fpc-», «fp-»
  • На панели инструментов нажимаем «Применить»

Установка из командной строки

Что может быть проще

sudo apt-get install lazarus

Работа с архивами в Lazarus

Итак, пишем свой первый кроссплатформенный архиватор, который потом будем использовать для сборки документов OpenOffice.
Открываем Lazarus, создаем новые проект и, для наглядности работы программы, укладываем на форму две кнопки и Memo.
Самый простой вариант работы с утилитами наподобие zip и unzip – это использовать в Win32 пакетные файлы DOS (*.bat), а в Linuх – bash-скрипты. Смысл работы прост как три копейки:
1. В зависимости от того в какой ОС запущена программа, создаем либо файл скрипта с расширением sh, либо bat-файл
2. Выполняем скрипт, который пакует необходимые файлы в документ.

Разрабатываем скрипт.

Думаю, что тем, кто знаком с Linux, написать скрипт для упаковки папки в архив потребуется на всё пара минут, а то и меньше. Текст скрипта выглядит следующим образом:

#!/bin/bash
cd /путь/до/папки/с_файлами
zip -r Документ.расширение *

Обращу Ваше внимание, что переход в папку с докуменами необходим, т.к. если просто указать утилите zip расположение файлов, то в итоге в архив будет записан весь путь до файлов и документ просто не распознается как Open Document.
В случае с bat-файлов всё также просто и понятно:

CD Полныйпутьдопапки
Полныйпутьк_утилитеzip -r Document.расширение Полныйпутьдопапки

Оба файла работают абсолютно идентично – пакуют всю папку, содержащую xml-файлы документа в один архив.
Со вспомогательной частью покончено. Переходим в Lazarus.

Первое, что необходимо – это написать обработчик одной из кнопок для создания необходимого нам файла в зависимости от ОСи. У меня получился следующий код:

procedure TForm1.Button2Click(Sender: TObject);
var F: TextFile;
begin
  AssignFile(F, ExtractFilePath(Application.ExeName)+'mybash.sh');
  Rewrite(F);
  {$IFDEF LINUX}
  WriteLn(F, '#!/bin/bash');
  WriteLn(F, 'cd '+ExtractFilePath(Application.ExeName)+'document');
  WriteLn(F, 'zip -r doc.odt *');
  CloseFile(F);
Memo1.Lines.LoadFromFile(ExtractFilePath(Application.ExeName)+'mybash.sh');
  {$ENDIF}
  {$IFDEF WIN32}
    WriteLn(F, 'CD '+ExtractFilePath(Application.ExeName)+'document');
    WriteLn(F, ExtractFilePath(Application.ExeName)+'zip -r doc.odt '+
      ExtractFilePath(Application.ExeName)+'document');
    CloseFile(F);
Memo1.Lines.LoadFromFile(ExtractFilePath(Application.ExeName)+'mybash.bat');
  {$ENDIF}
end;

Обратите внимание, что для того, чтобы узнать под какой ОС мы запустили программу, нам не требуется изгаляться и писать лишние процедуры и функции – достаточно использовать простенькие директивы “{$IFDEF}” и “{$ENDIF}”.
В представленном обработчике в зависимости от операционной системы в которой запущено приложение создается свой файл для упаковки папки с xml-файлами документа и содержимое файла выводится в Memo.
Теперь посмотрим, как под Lazarus’ом можно запускать сторонние приложения

Запуск скриптов и bat-файлов из своей программы.

Для того, чтобы запустить любую программу или выполнить скрипт в своем приложении и при этом не нарушить кроссплатформенность, в Lazarus предусмотрено использование класса TProcess или, кому удобнее использовать компоненты, сразу три невизуальных компонента TProcess* cо вкладки System:

Укладываем на форму самы простой из трех компонентов – TProcess и в обработчике второй кнопки пишем:

procedure TForm1.Button1Click(Sender: TObject);
begin
  {$IFDEF LINUX}
    Process1.CommandLine:='/bin/bash '+ExtractFilePath(Application.ExeName)+'mybash.sh';
  {$ENDIF}
  {$IFDEF WIN32}
    Process1.CommandLine:='cmd '+ExtractFilePath(Application.ExeName)+'mybash.bat';
  {$ENDIF}
  Process1.Options:=;
  Process1.Execute;
end;

голос

Рейтинг статьи

Уроки программирования

Как говорится лучше один раз увидит чем 100 раз услышать. Лазарус это отличная программа с помощью, которой вы сможете создавать полезные и функциональные приложения и качественные проекты. Изучение Лазарус не займет у вас много времени, но все же мы настоятельно рекомендуем вам заняться изучением этой программы с помощью видео уроков, где вы начнете с самых азов и спустя некоторое время самостоятельно сможете создавать свои собственные приложения. У нас на сайте есть отличная рубрика видео уроков  в которой мы приготовили для вас только лучшие и практичные уроки по работе с Лазарус. Для начала предлагаем вам первый видео урок ознакомления и обзора данной программы.

Yeah, but what about the GUI? What widget set are you using?

That is the neat part. You decide. Lazarus is being developed to be totally and completely API independent. Once you write your code you just link it against the API widget set of your choice. If you want to use GTK+, great! If you want it to be Gnome compliant, great! As long as the interface code for the widget set you want to use is available you can link to it. If it isn’t available, well you can write it.

For example. Let’s say you are creating a product on Windows using the standard Windows widgets. Now you want to create a Linux version. First you decide what widget set you want to use. Let’s assume you want to use gtk+. So you copy the code over to your Linux development machine, compile, and link against the gtk+ interface unit. That’s it. You’ve now just created a Linux version of the Windows product without any additional coding.

At this point in the development we are using Win32, gtk2+, Carbon, Cocoa and QT as our API widget set. Bindings for custom drawn components are in the works and other widget sets are planned, too.

Основные возможности

  • Перенос Delphi-программ с графическим интерфейсом на операционные системы Linux, Windows, Mac, OS X;
  • Редактирование форм и объектов;
  • Форматирование кода с использованием механизма Jadi Code Format;
  • Поддержка синтаксиса Pascal: Turbo Pascal, Object Pascal, Mac Pascal и Delphi;
  • Собственный формат управления пакетами;
  • Поддержка ассемблеров Intel и AT&T;
  • Наличие собственных модулей навигации и автодополнения;
  • Использование ветки компилятора Free Pascal 3.0.

Плюсы и минусы

Плюсы:

  • Интуитивно понятный интерфейс;
  • Бесплатный;
  • Регулярно обновляется;
  • Наличие системы подсказок и гипертекстовой навигации по исходным текстам;
  • Автозавершение кода и рефакторинг;
  • Полностью юникодный редактор;
  • Простой переход на Delphi благодаря близости LCL к VCL.

Минусы:

Отсутствие документации, хотя она доступна в виде wiki-учебника.

Аналоги

Python – это язык программирования, который наделён минимальным набором синтаксиса, но рассчитан на повышения производительности разработчика и читаемость кода. Основные черты данного языка – автоматическое управление памятью, динамическая типизация, построение информации в виде структуры. Работает на бесплатной основе. Есть официальная инструкция на сайте разработчика.

Pascal ABC – специальная программа, с помощью которой можно освоить навыки программирования на языке Паскаль. Софт имеет понятный интерфейс, широкий инструментарий, наличие подсказок. Распространяется на бесплатной основе.

Принципы работы

Установка программы стандартная. Скачиваем с сайта версию программы в соответствии с разрядностью системы. Запускаем установку. Выбираем язык интерфейса.

Следуем подсказкам мастера установщика.

Отмечаем все типы файлов для регистрации.

Жмём «Установить». Стоит отметить, что для инсталляции программы необходимо 1 Гб свободного места на системном диске.

После установки программы на рабочем столе появится несколько окон.

Второе окно – инспектор объектов. В нём будут в древовидном формате отображаться все файл проекта. Их можно будет удалить, отредактировать, скопировать.

Редактор текста. Основное окно, где будет отображаться исходный текст. Можно редактировать: копировать, вырезать, вставлять.

Форма 1. Это диалоговое окно, в котором будет отображено количество форм, использованных в проекте. По сути, это будет само отображение проекта.

С помощью этой среды можно написать небольшую программу, консольное приложение, которое будет адаптировано под любую операционную систему.

О том, как работать с Lazarus смотрите в видео:

Полное описание

Lazarus IDE — бесплатная среда разработки с открытым исходным кодом, содержащая встроенный компилятор для языка программирования Pascal. В отличие от многих свободно распространяющихся аналогов, предлагает широкий функциональный набор, русский язык интерфейса и понятное управление.

Имеется удобный визуальный конструктор приложений и огромный каталог компонентов, с учётом различных форм. В предустановленном инспекторе объектов вы найдёте разнообразные окна, заголовки, кнопки, заставки, символы, виджеты и т.д. При помощи данных библиотек вы сможете быстро создавать программы, выполнять тонкие настройки графического интерфейса пользователя и вносить собственный формат управления в разрабатываемое ПО. Поддерживается создание многопоточных приложений. Доступна работа с конструктором DataExpress, текстовым редактором Microsoft Word, блокнотом Notepad++, архиватором PeaZip и прочими интерактивными инструментами.

Существует альтернативная сборка программы Lazarus на Microsoft Windows, работающая c множеством дополнительных пакетов и компонентов (GreenGnome, OpenGL, WinAPI Component Library). В настоящее время софтом используется внешний отладчик GDB (GNU Debugger), подходящий под различные операционные системы, включая Windows, Linux, FreeBSD, Mac OS.

Кстати, отладочные средства производят отладку многих других языков, среди которых не только FPC, но и C/C++, FreeBASIC, Fortran, Ada Script, Rust. В целом, среда программирования Lazarus показывает себя с позитивной стороны, поскольку позволяет написать и скомпилировать код без использования внешней программы, поддерживает инструкции Assembler, имеет понятный пользовательский интерфейс.

So just what is Lazarus?

Lazarus is a Delphi compatible cross-platform IDE for Free Pascal. It includes LCL which is more or less compatible with Delphi’s VCL. Free Pascal is a GPL’ed compiler that runs on Linux, Windows, macOS, FreeBSD and others. Free Pascal is designed to be able to understand and compile Delphi syntax, which is OOP. Lazarus is the part of the missing puzzle that will allow you to develop Delphi like programs in all of the above platforms. Unlike Java which strives to be a write once run anywhere, Lazarus and Free Pascal strives for write once compile anywhere. Since the exact same compiler is available on all of the above platforms it means you don’t need to do any recoding to produce identical products for different platforms.

Возможности Lazarus

  • Полностью юникодный интерфейс;
  • Запуск проекта Lazarus одним нажатием;
  • Реализованы подсказки на экране и раздел справки Help;
  • В состав входит двухпанельный файловый менеджер;
  • Редактор форм и инспектор объектов максимально приближены к Delphi;
  • Форматирование текста «из коробки», используя механизмы Jedi Code Format;
  • Позволяет разработать многопоточные приложения с кроссплатформенными параметрами;
  • Поддержка двух стилей ассемблера: Intel и AT&T (поддерживаются со стороны компилятора);
  • Модуль автоматической проверки вашего кода на ошибки, отображение правильных свойств с комментариями;
  • Новая версия Lazarus работает с библиотеками dll, gtk, gtk1 (win32), gtk2 (win64), carbon, qt, qt4 interface и т.д.

Преимущества

  • Основана на базе FreePascal;
  • Работа с ОС Windows XP и выше;
  • Невысокие системные требования Lazarus;
  • Настройка ввода при помощи горячих клавиш;
  • Использование технологии обмена данными EDI;
  • Установочный файл EXE можно загрузить на флешку;
  • Поддержка множества типов синтаксиса и кодировки;
  • При отсутствии ошибок исполняемый файл компилируется довольно быстро;
  • Можно компилировать «с нуля» или создать приложение по шаблонам Lazarus;
  • Имеется возможность компиляции программ для Mac OS версии xe4, xe2;
  • Наличие удобной командной строки, редактора кода и панели рефакторинга;
  • Бесплатно распространяется на условиях GNU Lesser General Public License;
  • Простой переход для программистов Delphi, благодаря близости LCL к VCL (есть функции преобразования проектов Делфи).

Недостатки

Тут и сказочке конец?

«А кто слушал — молодец!» Если вы дочитали до этого абзаца, снимаю шляпу и выражаю бааальшой респект.

В чем основная проблема Кактуса и FPC, которую, впрочем, не скрывают и соразработчики. Это отсутствие интереса к продукту со стороны «больших дядь» — корпораций, которые могли бы, условно говоря, из некогда маргинального дебиана сделать линукс с человеческим лицом Убунту. Борланд тоже никогда не интересовался этим проектом.

Небольшая отсылка к истории. FPC возник более 25 лет назад, как альтернатива Turbo/Borland Pascal. Поэтому и в 2016 году создав программу «Здравствуй, мир» без каких-либо директив компилятору вы получите на выходе модуль, совместимый (например по регистрам и распределению памяти) с генерируемым Turbo Pascal. Кактус появился позднее, в 1999 году уже как альтернатива Delphi, но на базе все того же компилятора и библиотек общего пользования FCL.

Поддержка производителями компонентов очень скудна, выбор единичен Хорошо если вообще есть хоть какой-то выбор… Конечно, можно пробовать вместо работающих у сотен пользователей подсистем с поддержкой разные контрибутивные поделки с открытым кодом. Нужно ли это — решать вам.

Упомянув лимит в 100К строк я имел в виду прежде всего графические бизнес-приложения, требующие использования сторонних компонентов. Если речь идет об автономных серверных модулях, для которых не нужно ничего, кроме того, что уже есть в относительно стабильной FCL (а не в кактусной LCL), то вы ограничены только своей фантазией и скоростью набивания кода. Тем более, что немалую часть библиотек придется обустраивать на свой лад.

Random

  • На звонок

    Corina si Mira

    СКАЧАТЬ

  • На звонок

    KIRIKO

    Still I Love You ~The Joy of Just Looking~ (Surge MIX)

    СКАЧАТЬ

  • На звонок

    Banda Auto Sugestão

    СКАЧАТЬ

  • На звонок

    Na Yoon Kwon

    СКАЧАТЬ

  • На звонок

    Blood Orange

    СКАЧАТЬ

  • На звонок

    Variant Field

    СКАЧАТЬ

  • На звонок

    Ravyn Lenae

    СКАЧАТЬ

  • На звонок

    Orchestre du Théâtre National de l’Opéra

    СКАЧАТЬ

  • На звонок

    Russell Brower and Neal Acree, Sam Cardon, Edo Guidotti, Gle

    СКАЧАТЬ

  • На звонок

    Merk & Kremont

    СКАЧАТЬ

  • На звонок

    Jon Thebur

    СКАЧАТЬ

  • На звонок

    Albion

    СКАЧАТЬ

  • На звонок

    Е. Чебатуркина

    СКАЧАТЬ

  • На звонок

    Stiff Middle Fingers

    СКАЧАТЬ

  • На звонок

    The Mg

    СКАЧАТЬ

  • На звонок

    Os Paralamas Do Sucesso

    СКАЧАТЬ

  • На звонок

    No Force Can

    СКАЧАТЬ

  • На звонок

    Paraf

    СКАЧАТЬ

  • На звонок

    J. Cole and Dreamville, Omen

    СКАЧАТЬ

  • На звонок

    Ansel Elgort

    СКАЧАТЬ

  • На звонок

    Iapet

    СКАЧАТЬ

  • На звонок

    Luis Solé

    СКАЧАТЬ

  • На звонок

    Dj Wibebeats

    СКАЧАТЬ

  • На звонок

    Вокал-Бэнд

    СКАЧАТЬ

  • На звонок

    Trouble & Mike WiLL Made-It

    СКАЧАТЬ

  • На звонок

    Игорь Лазарев

    СКАЧАТЬ

  • На звонок

    Party Favor feat. Fly Boi Keno Vs Cometa & Ardo

    СКАЧАТЬ

  • На звонок

    Andrew Rayel feat. Jonny Rose

    СКАЧАТЬ

  • На звонок

    Jonas Selander

    СКАЧАТЬ

  • На звонок

    G.O.A.T. and Your M.O.M.

    СКАЧАТЬ

  • На звонок

    Eaglewing

    СКАЧАТЬ

  • На звонок

    100 Clarinet Classics

    СКАЧАТЬ

  • На звонок

    Khleo Thomas

    СКАЧАТЬ

  • На звонок

    deVDem

    СКАЧАТЬ

  • На звонок

    Photocomfort

    СКАЧАТЬ

  • На звонок

    Оксана Ханова

    СКАЧАТЬ

  • На звонок

    Ammi Ben israel

    СКАЧАТЬ

  • На звонок

    Moniq Stylez

    СКАЧАТЬ

  • На звонок

    Chor und Sinfonieorchester des NDR

    СКАЧАТЬ

  • На звонок

    Dhtalent1

00.00

00.00

Примеры приложений, созданных с помощью Lazarus

  • ASuite — это бесплатная программа запуска приложений с открытым исходным кодом для Windows. Начиная с версии 2.0 Alpha 2, он полностью написан на Lazarus / FPC.
  • Beyond Compare — это утилита для сравнения данных для Windows, macOS и Linux. Версии для macOS и Linux скомпилированы с использованием Lazarus / FPC.
  • Cartes du Ciel — бесплатнаяпрограмма- планетарий для Linux, macOS и Windows. Программа отображает и маркирует большинство созвездий, планет и объектов, которые вы можете увидеть в телескоп. Он полностью написан на Lazarus / FPC и выпущен под лицензией GPL.
  • Cheat Engine — это сканер памяти / шестнадцатеричный редактор / отладчик с открытым исходным кодом. Это полезно для читерства в компьютерных играх. Начиная с версии 6.0 он компилируется с помощью Lazarus / FPC.
  • EPANET , программный пакет для моделирования водораспределительных систем.
  • HNSKY , Hallo Northern Sky — бесплатная программа- планетарий для Windows и Linux. Начиная с версии 3.4.0 написан и скомпилирован с помощью Lazarus / FPC.
  • MyNotex — это бесплатное программное обеспечение для GNU / Linux, полезное для создания текстовых заметок и управления ими.
  • TorChat уходит от Python и переписывается на Lazarus + Free Pascal.
  • Total Commander 64-битная версия.
  • Double Commander — это кроссплатформенный файловый менеджер с открытым исходным кодом, в котором две панели расположены рядом. Он вдохновлен Total Commander и содержит некоторые новые идеи.
  • SimThyr — это программа непрерывного моделирования гомеостаза щитовидной железы .

Присказка

Первый раз о тестировании сладкой парочки, состоящей из Free Pascal (FPC) — компилятора и библиотек общего назначения FCL, и Lazarus — библиотеки компонентов LCL и среды разработки, я написал еще в 2010 году. Выводы были не слишком утешительные.

С той поры минуло 6 лет, за которые довелось не только разработать несколько небольших проектов на FPC/Lazarus (например, Firebird profiler), но и проделать реальный эксперимент по миграции достаточно большой (около 1М строк) системы класса Small ERP. Предупрежу сразу, что эксперимент я волюнтаристски прервал ввиду превращения Lazarus в тот самый кактус из фольклора.

Сказанное не значит, что Кактус плох. Инструмент вполне пригоден для профессиональной коммерческой разработки. Для себя я установил эмпирический лимит в 100К строк, за которыми начинаются проблемы, систематическое и героическое преодоление которых будет стоить намного дороже, чем лицензии на Delphi Professional. Для других классов приложений лимит может оказаться иным, но не думаю, что порядки величин будут различаться.

Вначале вспомним о Delphi, которая с версии 2009 за 7 лет прошла путь революционных изменений и улучшений. Назову лишь некоторые:

  • поддержка Unicode (прозрачная для программиста);
  • кросс-платформенная разработка (Windows 32/64, Mac), в том числе для мобильных устройств (iOS, Andriod), компилятор для Linux анонсирован в следующей версии 10.2;
  • линейка компонентов FireDAC. Универсальный доступ к БД с нулевым развертыванием;
  • развитие языка: generics, анонимные функции, метаданные…;
  • поддержка составных имен для модулей типа System.Generics;
  • look and feel стили для оконных приложений;
  • и многое другое.

Главное преимущество Кактуса — кросс-платформенность, перестала таковой быть. С учетом моих не самых приятных воспоминаний о кросс-разработке под WinCE — перестала быть вполне заслуженно. Но! Не будем забывать, что FPC (не Кактус) поддерживает большее число платформ, и в ряде случаев лучше оказаться с «голым» компилятором командной строки и библиотеками общего пользования, чем переходить на более низкий уровень голого Си и Макроассемблеров. Для той же Raspberry Pi, например. Но, еще раз подчеркну, речь идет только о FPC.

Основное поле Кактуса — разработка под Windows, включая кросс-платформенную. Если вы посмотрите на статистику загрузок на sourceforge, то Кактус для Windows лидирует с огромным отрывом. И на этом поле он входит в прямую конкуренцию с Delphi.

Работа с Lazarus.

Для новичков, думаю как и для меня, будет небольшой шок после компиляции пустой формы – размер исполняемого файла составил 18,864 Mb. Но, не стоитсразу бросать в Lazarus камни, лить помои на разработчиков и т.д. Не стоит забывать – мы имеем дело с кроссплатформенностью, а она, к соалению, требует жертв. Вот, что говорят по этому поводу сами разработчики (в моем вольном переводе):

Раз есть возможность сократить бинарник – будем её использовать. Первое, с чего начнем – штатные средства, предоставляемые Lazarus.

Первое, чем воспользуемся – утилитой strip, которая удаляет отладочную информацию из исполняемых файлов.
Утилита расположена в папке lazarusppbini386-win32
Открываем консоль, и записываем:

cd lazarus
strip --strip-all /файл

Жмем Enter и проверяем, что получилось. Было 18,864 Mb стало 3,299 Mb. Неплохо, да? Но, думаю, мало кого устроит проект с пустой формой размеров в три с лишним мегабайта. Поэтому, переходим ко второй стадии оптимизации размера исполняемого файла в Lazarus – настройкам IDE.
Открываем “Проект — Параметры компилятора — Код”
Ставил галку напротив “Умное связывание (-CX)” (см. рисунок)

Переходим на вкладку “Связывание” и убираем галку напротив “Выдать номера строк в ошибках времени исполнения (-gl)”
Тут же ставим галку напротив “Вырезать символы из бинарника (-Xs)” – эту же самую функцию выполняет утилита strip.
Тут же савим галку на “Умное связывание (-XX)”
Жмем “Ок” и компилируем проект по новой.

Результат – размер исполняемого файла 2,708 Mb. Сэкономили ещё 600 kb – неплохо.
Больше из IDE выжать ничего собого не получится. Даже если и удасться что-либо скроить то экономия будет крайне незначительна.
Переходим к последнему этапу оптимизации размера исполняемого файла – использование утилиты UPX. Использовать её элементарно – указываем в командной строке:

UPX

жмем Enter и UPX сжимает файл на сколько это возможно.
Итог работы UPX – размер исполняемого файла 771 kb. Таким образом, в результате небольших манипуляций с Lazarus и UPX нам удалось сократить размер исполняемого файла практически на 96%.
Теперь посмотри как выглядит исполняемый файл от Lazarus на фоне Delphi.

Отличия от Delphi

Несмотря на то, что во многом напоминает Delphi , существует несколько ограничений в отношении производительности и набора функций, в том числе:

  • Под Windows размер исполняемого файла по умолчанию больше, чем у эквивалента Delphi 6 или Delphi 7, поскольку Lazarus хранит отладочную информацию внутри исполняемого файла, а не в виде отдельных файлов. Начиная с версии 0.9.30 Lazarus поддерживает внешние символы отладки; размер файла программы можно значительно уменьшить, используя внешний файл символов (он может быть установлен в параметрах компилятора) или используя Strip
  • Компоненты для Delphi могут быть установлены в Lazarus, но они должны быть преобразованы, что может быть сложным (менее сложным, поскольку 0.9.30 на основе FP 2.4.x)
  • Отсутствуют важные медиа-библиотеки и виджеты:
    • Возможность подключения к Microsoft Office до выпуска FPC 2.6.0. Открытие Excel с простой таблицей, заполненной в версии 2.6.0 и выше, работает.
    • Datasnap (не публично документированная система, корпоративная функциональность Embarcadero )
  • Сеть в основном доступна
  • Нет поддержки прямого вызова библиотек .NET ;. Код Object Pascal можно вызывать из программного обеспечения .NET.
  • Поддержка COM отсутствовала до версии 2.2.0.
  • Отсутствует поддержка динамически загружаемых пакетов.
  • Не полностью совместим с VCL. Как упоминалось ранее, это сделано специально, хотя текущего набора виджетов LCL должно хватить для большинства приложений. Но это делает недоступным без преобразования глубокий репозиторий доступных виджетов VCL. Преобразование в основном связано с некоторым редактированием, хотя есть несколько фундаментальных отличий. При портировании недостающие модули в библиотеках и поддержка COM являются значительно большей проблемой, чем несовместимость между LCL и VCL.

Саундтреки

Из фильма В центре вниманияИз фильма Ван ХельсингИз сериала Дневники ВампираИз фильма Скауты против зомбииз фильмов ‘Миссия невыполнима’Из фильма Голодные игры: Сойка-пересмешница. Часть 2OST ‘Свет в океане’OST «Большой и добрый великан»из фильма ‘Новогодний корпоратив’из фильма ‘Список Шиндлера’ OST ‘Перевозчик’Из фильма Книга джунглейиз сериала ‘Метод’Из фильма ТелохранительИз сериала Изменыиз фильма Мистериум. Тьма в бутылкеиз фильма ‘Пассажиры’из фильма ТишинаИз сериала Кухня. 6 сезониз фильма ‘Расплата’ Из фильма Человек-муравейиз фильма ПриглашениеИз фильма Бегущий в лабиринте 2из фильма ‘Молот’из фильма ‘Инкарнация’Из фильма Савва. Сердце воинаИз сериала Легко ли быть молодымиз сериала ‘Ольга’Из сериала Хроники ШаннарыИз фильма Самый лучший деньИз фильма Соседи. На тропе войныМузыка из сериала «Остров»Из фильма ЙоганутыеИз фильма ПреступникИз сериала СверхестественноеИз сериала Сладкая жизньИз фильма Голограмма для короляИз фильма Первый мститель: ПротивостояниеИз фильма КостиИз фильма Любовь не по размеруOST ‘Глубоководный горизонт’Из фильма Перепискаиз фильма ‘Призрачная красота’Место встречи изменить нельзяOST «Гений»из фильма ‘Красотка’Из фильма Алиса в ЗазеркальеИз фильма 1+1 (Неприкасаемые)Из фильма До встречи с тобойиз фильма ‘Скрытые фигуры’из фильма Призывиз сериала ‘Мир Дикого Запада’из игр серии ‘Bioshock’ Музыка из аниме «Темный дворецкий»из фильма ‘Американская пастораль’Из фильма Тарзан. ЛегендаИз фильма Красавица и чудовище ‘Искусственный интеллект. Доступ неограничен»Люди в черном 3’из фильма ‘Планетариум’Из фильма ПрогулкаИз сериала ЧужестранкаИз сериала Элементарноиз сериала ‘Обратная сторона Луны’Из фильма ВаркрафтИз фильма Громче, чем бомбыиз мультфильма ‘Зверопой’Из фильма БруклинИз фильма Игра на понижениеИз фильма Зачарованнаяиз фильма РазрушениеOST «Полный расколбас»OST «Свободный штат Джонса»OST И гаснет светИз сериала СолдатыИз сериала Крыша мираИз фильма Неоновый демонИз фильма Москва никогда не спитИз фильма Джейн берет ружьеИз фильма Стражи галактикииз фильма ‘Sos, дед мороз или все сбудется’OST ‘Дом странных детей Мисс Перегрин’Из игры Contact WarsИз Фильма АмелиИз фильма Иллюзия обмана 2OST Ледниковый период 5: Столкновение неизбежноИз фильма Из тьмыИз фильма Колония Дигнидадиз фильма ‘Страна чудес’Музыка из сериала ‘Цвет черёмухи’Из фильма Образцовый самец 2из фильмов про Гарри Поттера Из фильма Дивергент, глава 3: За стеной из мультфильма ‘Монстр в Париже’из мультфильма ‘Аисты’Из фильма КоробкаИз фильма СомнияИз сериала Ходячие мертвецыИз фильма ВыборИз сериала Королек — птичка певчаяДень независимости 2: ВозрождениеИз сериала Великолепный векиз фильма ‘Полтора шпиона’из фильма Светская жизньИз сериала Острые козырьки

Сраниваем исполняемые файлы от Lazarus и Delphi.

Создаем пустой проект в Delphi 2010, компилируем и в итоге получаем исполняемый файл размером 817 kb – чуть больше, чем оптимизированный и сжатый файл в Lazarus под Linux. Теперь осталось посмотреть, что станет с файлом после обработки UPX’ом.
Сжимаем файл и смотрим размер – 284 kb. Чтобы представить себе всё вышесказанное, я составил небольшую гистограмму, демонстрирующую размеры исполняемых файлов Lazarus и Delphi:

Как итог, можно отметить, что Lazarus в плане размеров исполняемых файлов ничем не уступает Delphi. Не суть, что для достижения результата требуется немного поработать “напильником” – в принципе то вполне ожидаемо в Linux и далеко не критично. Однако, в отличие от Delphi Lazarus дает возможность создавать проекты, которые с лёгкостью можно будет пересобирать под любой ОС. Так что, переходя (пока частично) под Linux я нисколько не расстраиваюсь по поводу отсутствия под рукой родной Delphi – её на все 100 заменит Lazarus.

голос

Рейтинг статьи

Оцените статью
Рейтинг автора
5
Материал подготовил
Андрей Измаилов
Наш эксперт
Написано статей
116
Добавить комментарий