Стоит ли менять Delphi на Lazarus

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

О кроссплатформенности можно говорить очень много, и большая часть сказанного выйдет далеко за рамки данной статьи. Поэтому отметим лишь один неоспоримый факт: всё больше и больше компаний по разным причинам задумываются о переходе на другие платформы. И в последние годы среди этих компаний начинают появляться достаточно серьёзные организации, в том числе федерального уровня. Понять функционеров всевозможных ФГУПов довольно просто: представьте себе, сколько сэкономит, например, Сбербанк, заменив все свои Windows-системы на POSIX в масштабах страны с населением более ста миллионов. С точки зрения администратора, ничего невозможного в этом нет, вопрос, как говорится, технический. А вот разработчик оказывается перед, мягко говоря, нетривиальной задачей. И не потому, что под Linux невозможно написать то, что написано под Windows. А потому, что под Windows это уже написано. И задача сводится к тому, чтобы, по сути, написать с нуля достаточно сложный функционал, идентичный существующему, с сохранением данных, интерфейсных решений, совместимости с оборудованием и др. И если когда-нибудь тому же Сбербанку придёт в голову во всех сберкассах поставить Linux, кому-то придётся переписывать тот же самый софт, который уже работает под Windows, для расчётов с клиентами, приёма / оплаты коммунальных услуг, ведения кредитных договоров, и многого-многого другого. Всю сложность подобной задачи понимают не только программисты, но и сами заказчики. И поэтому не приходится удивляться, когда заказчик хочет не просто программу, а программу, которую он сможет безболезненно перенести на любую нужную ему платформу в ближайшей перспективе.

Да, можно, наверное, написать на Java апплет, работающий с фискальным регистратором, к примеру, и позиционировать его как кроссплатформенное решение. Но как-то исторически сложилось, что для работы с аппаратными узлами используются языки иного класса: такие, как C или Pascal. И вот здесь, естественно, в голову приходит простая мысль - а вот хорошо бы писать под все платформы сразу. Технически это возможно уже сейчас, есть решения и помимо вышеупоминавшейся Java.

Подход, используемый в Java, наверное, можно считать классическим - платформенно-зависимый интерпретатор исполняет единожды скомпилированный платформенно-независимый код, причём скомпилирован он мог быть на любой платформе. Собственно, кроссплатформенность Java достигается именно за счёт того, что программа работает не в самой среде, а в специально написанной для этой среды виртуальной машине. Здесь же речь пойдёт о принципиально ином подходе, также обеспечивающем кроссплатформенность. Нельзя сказать, что этот подход лучше или хуже, он просто другой и в ряде случаев может представлять определённый интерес.

            Поскольку Lazarus изначально создавался как среда для компилятора FPC, начнём с самого компилятора. На заре веков FreePascal был известен как FPK Pascal, по первым буквам имени своего разработчика, которого звали Florian Paul Klampfl. Но поскольку многие упорно расшифровывали эту аббревиатуру, как Free Pascal Kompiler (что не совсем грамматически правильно), позже решено было переименовать проект в FPC - Free Pascal Compiler. Несколько лет назад, когда в какой-то момент многим показалось очевидным, что Borland не собирается выпускать Delphi 8, Florian Paul Klampfl (будучи студентом!) начал собственный проект. Он основывался на Turbo Pascal 7.0, среда имела 16-ую архитектуру, и в скором времени стала позволять писать для одного из расширений ДОС. 32-х битная версия компилятора была выложена в сеть и у многих вызвала интерес. Потому что была бесплатной, с открытыми исходными кодами, на знакомом многим диалекте Pascal. За пять лет до появления на рынке Kylix, Michael van Canneyt портирует FreePascal на Linux. В 2003 году, после выхода версии 1.0.х, работавшей к тому времени в Windows (Win16 и Win32), ряде POSIX-систем и на платформе AmigaOS, в среду начинают активно добавляться многие функции и возможности Delphi. На сегодняшний день Lazarus декларирует 90% совместимость с наиболее распространёнными диалектами Pascal: turbo и object, а свободном доступе имеются версии 2.2.х (stable release) и 2.3.х - (development release).

Примерно в тоже время, т.е. в конце 90х, три человека основали проект по имени Megido. Их звали: Cliff Baeseman, Shane Miller и Michael A. Hess. Проект просуществовал недолго и был закрыт.

В 1999г. они же собираются вновь и предпринимают вторую попытку написать бесплатную среду для бесплатного компилятора. Вторая версия проекта получает название Lazarus. На сегодняшний день следует признать, что вторая попытка оказалось гораздо более плодотворной, потому что среда существует и развивается и поныне.

Минимальные требования:

i386, x86_64, PowerPC или Sparc процессор
Win32:
– Win95/98/Me/2000/XP или WinNT
– 16 MB RAM
OS/2:
– OS/2 Warp v3.0 с фикспаком FP 35 и выше
– OS/2 Warp v4.0 с фикспаком FP5 и выше, с поддержкой WSeB, MCP или   любой версии eComStation
– (OS/2 2.0/2.1 - не поддерживаются, программы, скомпилированные под Warp - не запустятся)
Linux:
– Любой дистрибутив на кернеле от 2.2.х
FreeBSD:
– FreeBSD 4.x или 5.x с установленным COMPAT 4 (что есть дефолт)
– Mac OS:
– Mac OS X 10.2 или выше
– Mac OS 9.2 (classic) - тестировалась, по идее, пойдёт от 7.5.3 и выше

Доступные платформы:

– Linux-i386
– Linux-x86_64 (amd64)
– Linux-arm
– Linux-powerpc
– Linux-sparc
– Win32-i386 (Win95/98/Me/XP/2000/Vista/ Windows 7 and WinNT)
– Win64-x86_64 (XP/Vista/Windows 7)
– Wince-arm (cross compiled from win32-i386)
– FreeBSD-i386
– Mac OS X/Darwin for PowerPC
– Mac OS X/Darwin for Intel (i386)

Программные возможности:

– Распространяется с исходными кодами на условиях GPL. Может перекомпилировать сам себя (в Lazarus, кстати, именно так ставятся новые пакеты компонентов)
– Поддержка 32-х и 64-х битных архитектур
– Условная совместимость с Turbo Pascal, Object Pascal и Delphi Pascal
– Поддержка ANSI и WIDE строковых типов
– Поддержка исключительных ситуаций
– Поддержка RTTI (Runtime Type Information)
– Перегрузка операторов и процедур
– Поддержка COM, CORBA и интерфейсных типов
– Динамические массивы и варианты
– Инлайн-код
– Встроенный парсер ассемблера
– Возможность компилировать код в исходные коды следующих ссемблеров:

– Gnu ассемблер (GAS)
– Netwide ассемблер (Nasm)
– Microsoft / Turbo ассемблер (Masm/Tasm)
– Watcom ассемблер (WASM)

– Встроенный вызов внешнего C-кода (в дитрибутив входит утилита для переконвертации хидеров (*.h файлов) в модули Pascal)
– Встроенный отладчик для большинства платформ (также поддерживается GNU-debugger)
– Компилируемый бинарный файл является "родным" для той платформы, на которой он был скомпилирован, и может быть запущен на любом дистрибутиве Linux без создания установочного пакета

            IDE Lazarus является одной из наиболее наиболее приемлемых сред разработки программного обеспечения. Опять же по причине достаточно высокого функционала, кроссплатформенности и отсутствии необходимости её покупки. IDE Lazarus – бесплатный аналог Delphi, распространяется согласно лицензии GNU/GPL.

Так стоит ли менять Delphi на Lazarus ?.. Думаю, что да, безусловно стоит. Проект может и не быстро, как хотелось бы, но верно развивается. Имеет огрмоное количество стронних компонентов, например:

  1. Для работы с сетью (indy, lnet)
  2. Для создания отчетов (free report/lazreport)
  3. Для создания SCADA-систем (pascalscada)
  4. Для работы с различными СУБД

Очень удобен, для большинства программистов позволяет создавать весьма не плохие программы. С заменой Delphi на Lazarus не нужно тратить время на переобучение. Хотя в синтаксисе Lazarus есть некоторые отличия от Delphi, но это не сильно сказывается на самом процессе разработки программ с среде Lazarus. И к тому же, не каждый программист умеж позволить себе купить Delphi. А в отличии от него, Lazarus покупать ненужно, даже если вы хотите разрабатывать в нем коммерческие пректы.

Twitter
Нравится

Дополнительная информация



ZZZZZZZZZ