Lazarus. Призрак Delphi в Linux

LazarusДумаю, каждый программист знаком с такой средой разработки программного обеспечения как Delphi. В свое время это средство разработки было весьма популярным, особенно в странах СНГ. Думаю, причиной этому является традиция преподавания языка Pascal в наших учебных заведениях и наглядное представление графического интерфейса разрабатываемой программы. Действительно, процесс разработки в Delphi выглядит очень легким. Накидал элементов интерфейса, описал их поведение и вроде как все. Кажется просто и интуитивно понятным. Соответственно, "порог вхождения" программистов в эту среду очень низкий.

Мне кажется, что именно такая кажущаяся простота разработки и сыграла плохую шутку с, в общем-то, неплохой системой Delphi. Потому что появилось огромное количество программистов очень низкого уровня, пытающихся что-то разрабатывать в Delphi, не особенно разбираясь в глубинных принципах программирования вообще. Тогда как, чтобы писать стоящее ПО даже в Delphi, требуется все-таки обладать не только навыками работы с мышью, но и кучей специфических знаний. Хотя стоит отметить, что с помощью Delphi было разработано и много очень качественных программ (PL/SQL Developer, QIP, TheBat!).

Но сейчас я бы хотел написать не столько про Delphi, сколько про его подобие - Lazarus.

Lazarus - это попытка создания полного аналога Delphi для компилятора Free Pascal. Lazarus, как и Free Pascal, является кроссплатформенным продуктом с открытыми исходниками. То есть, разрабатывается энтузиастами. Мне давно хотелось взглянуть на эту среду разработки. Я не являюсь фанатом Delphi и Pascal, но посмотреть интересно. В частности, мне было интересно, насколько эта среда готова для разработки конечных приложений для Linux. В конце концов, любителей Object Pascal и Delphi все еще достаточно много и я лично считаю, что если в Linux будет удобное для них средство разработки, то это пойдет только на пользу. Конечно, это спорный вопрос. Я часто встречал утверждения, что приход в Linux Delphi-разработчиков будет ему во вред.

Но, тем не менее, Lazarus развивается. Чтобы его установить в Ubuntu 7.04, необходимо скачать пакеты lazarus_0.9.22-1_i386.deb и fpc-src_2.0.4-1_i386.deb отсюда. В процессе их установки может потребоваться доустановить дополнительные пакеты, которые есть в репозитариях Ubuntu.

Lazarus производит противоречивое впечатление. С одной стороны, сразу видно, что он не просто сделан по мотивам Delphi, но и является калькой с него, клоном. Для Delphi-программистов все здесь будет родное. На официальном сайте даже утверждается, что можно использовать код из Delphi-программ. Естественно, что запустить можно только тот код, который использует стандартные компоненты. О сторонних компонентах и, тем паче, компонентах OCX, речи, конечно, не идет.

Несмотря на внешнее сходство с Delphi, Lazarus - явно продукт еще недоработанный. Дело даже не в том, что нет полной поддержки проектов Delphi и сторонних компонентов для него. В конце концов, Lazarus и не обязан это уметь. Больше всего мне не понравилось то, что для построения графического интерфейса используется библиотека GTK+. На мой взгляд, это огромный недостаток, так как сейчас больше востребованы GTK2 и Qt. На сайте можно встретить упоминания о том, что сейчас ведутся работы по переносу виджетов на GTK2, Qt и Windows API, но эта работа выполнена не до конца. И неизвестно, будет ли она выполнена вообще, так как задача эта весьма трудоемка. Уже одно то, что разработчикам удалось сделать то, что есть, внушает уважение.

Мне Lazarus показался достаточно сырым продуктом. Может быть, он будет доработан. Мне бы этого хотелось бы, даже несмотря на то, что я не Delphi-программист. Но пока что он не выглядит средой, подходящей для создания серьезных и современных приложений для Linux.

Комментарии

Re: Lazarus. Призрак Delphi в Linux

Павел Воронин аватар

Ну так что, Саша, стоит его вообще сейчас трогать? Или лучше остаться верным родному и понятному каждому BrainFuck'у? =)

Re: Lazarus. Призрак Delphi в Linux

SolarWind аватар

Ну если BrainFuck - родной, то, конечно, стоит. ;-)))
А если серьезно, то, имхо, не стоит. Лучше потратить силы на освоение более традиционных средств программирования под Linux. C/C++ и IDE типа KDevelop или Anjuta. А если хочется наглядности, то можно посмотреть на проект Mono. Это, конечно, не right way с точки зрения хардкорных юниксоидов, но на Mono можно делать (и уже делают) нормальные приложения для конечного пользователя (тот же F-Spot).
А пока Lazarus поддерживает только GTK+, толку от него немного. И дело даже не только в аскетичности GTK-интерфейса. У GTK+ есть проблемы с уникодом, что в наше время очень критично.

Re: Lazarus. Призрак Delphi в Linux

Павел Воронин аватар

Я предпочитаю Aptana и Эклипсу. =) Но тут всё от программиста зависит, о вкусах не спорят. =) Кстати, диск Ubuntu 7.10 уже заказал?

Re: Lazarus. Призрак Delphi в Linux

SolarWind аватар

Ну, в общем да, тут зависит от личных предпочтений.
Диск с 7.10 не заказал. Я жду, когда релиз выйдет. Обновлюсь через интернет, я всегда так делаю. :-)

Re: Lazarus. Призрак Delphi в Linux

Павел Воронин аватар

Да это всё понятно! =) Но как подарочный набор эти диски - идеальный вариант. =)

Re: Lazarus. Призрак Delphi в Linux

SolarWind аватар

В общем, да. 7.04 я именно в этом качестве и заказывал. :-) Надо будет заказать все-таки и 7.10...

Re: Lazarus. Призрак Delphi в Linux

zAz аватар

Солар!!, поделишся парочками дисков ?, я буду народ на Линукс пересаживать ....
И начну пожалуй с Мирки.
тамже дохрена можно заказать +)

Re: Lazarus. Призрак Delphi в Linux

SolarWind аватар

А какие именно тебе нужны диски? У меня, собственно, есть только убунта. И валяются на винте образы Sabayon и ALT Linux.

Re: Lazarus. Призрак Delphi в Linux

zAz аватар

Ubuntu 7.10 когда привезут. 32x (стандартную), скачать то не проблема, но так намного приятнее =)

Re: Lazarus. Призрак Delphi в Linux

SolarWind аватар

Ок. :-)

Странно мне...

sanila-san аватар

Странно, почему все так уверены, что С++ - это круто, мощно и универсально? Если это действительно так, то почему наша фирма перешла на дотнет, как только он появился?

Странно, что Паскаль находится в таком гонении.

Странно, кстати, и то, что одна IDE имеет пять своих кнопок на панели задач. Помнится, я боролся с тремя кнопками в Gimp. Как работать с пятью окнами? Мышкой тыкать?

Re: Странно мне...

SolarWind аватар

>Странно, почему все так уверены, что С++ - это круто, мощно и универсально? Если это действительно
>так, то почему наша фирма перешла на дотнет, как только он появился?

Ну тут сравнение несколько некорректно. C++ и Pascal - это языки. А .NET - это технология. Тот же C++ есть и для дотнета.

А то, что паскаль "находится в гонении" мне тоже странно. Вполне нормальный язык. Более того, я считаю, что в ряде задач тот же object pascal подходит куда лучше, чем С++. Я лично вообще считаю, что значение С++ изрядно преувеличено и раздуто. Как и идеология ООП вообще. Сделали из него этакого идола. Да даже простой С для многих задач подходит лучше.

Re: Странно мне...

sanila-san аватар

Да, сравнение несамое корректное, но в какой-то мере С++ - это тоже технология. Насколько помню, Managed C++ используется сравнительно редко. Основным языком разработки в силу популярности С++ и Java стал C#, VB.NET не сильно отстаёт по популярности. Что же до С++, то наша контора писала на нём когда-то давно, однако с появлением дотнета все дружно перешли на VB.NET и счастливы, поскольку получается писать более сложные вещи быстрее и качественнее.

Re: Lazarus. Призрак Delphi в Linux

Vyazovoi1 аватар

В Lazarus фишка не интерфейс IDE, Делфи получил популярность только за счет vcl, вот Лазарус и реализует порт vcl ;)

Re: Lazarus. Призрак Delphi в Linux

SolarWind аватар

Ну подача интерфейса тоже имеет большое значение. Взять, к примеру, тот же MFC. По сути - тоже обертка над WinAPI, как и VCL. Но далеко не так интуитивно понятна, как реализация VCL в Delphi. Я помню, как сам, будучи студентом, посмотрел на Visual Studio и Delphi (C++ Builder, точнее, но VCL там та же), и выбрал последний именно за счет интерфейса. И так поступали очень многие студенты тогда. Интуитивно понятный наглядный интерфейс играет свою роль.

Re: Lazarus. Призрак Delphi в Linux

sanila-san аватар

Ага, только поверх VCL существует ещё много других интересных штук. Та же Indy, которую, кажется, так и не портировали под Лазарус.

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

Re: Lazarus. Призрак Delphi в Linux

Гость аватар

Совершенно верно. Только призрак не Delphi, а Kylix (было такое, косое кривое, под старые ядра). Сущность Delphi как RAD IDE это VCL, вот они ее и переписывают, вот и получается RAD IDE для Free Pascal (sic! вот о чем написать хорошо было бы). Lazarus кстати еще очень сырой, по молодости.

Re: Lazarus. Призрак Delphi в Linux

sanila-san аватар

Lazarus полуторагодичной давности стоял под виндой параллельно с Delphi 7, конкуренции не выдержал. Полностью Comparison List вывести сейчас не смогу, поскольку и времени прошло прилично, и не писал я тогда так, как сейчас. Если "навскидку", то у Lazarus выявлены следующие свойства:

  • Относительно большое время компиляции при значительной загрузке ЦП
  • Медленная работа функций консольного вывода (WriteLn())
  • Значительный размер исполняемого файла, даже по сравнению с тем, что получается в Delphi при встраивании RTL
  • Крайняя затруднительность встраивания библиотеки компонентов Indy

Остальное - предположения. Например, ничего не могу сказать про отладчик, а это очень интересно.

Re: Lazarus. Призрак Delphi в Linux

SolarWind аватар

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

Re: Lazarus. Призрак Delphi в Linux

sanila-san аватар

Лазарус неперспективен не сам по себе. Я бы, например, очень хотел иметь нормальную RAD-IDE для Линукса. Я не хочу учить С++ для разработки софта под Линукс, хотя бы и в силу того, что на Pascal можно писать быстрее. Хотя, по большому счёту, удобнее всех, на мой взгляд - MS Visual Studio в варианте для кодирования на VB.NET. Жаль безумно, что я такого под линуксом никогда не увижу.

Re: Lazarus. Призрак Delphi в Linux

SolarWind аватар

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

Re: Lazarus. Призрак Delphi в Linux

sanila-san аватар

Поделись тайной, что тебя бесит в VS? Во избежание разногласий замечу, что я имею дело с 2005й студией.

Re: Lazarus. Призрак Delphi в Linux

SolarWind аватар

Слишком долго перечислять. Все. Начиная от крайне перегруженного интерфейса и заканчивая навороченными и непонятными окнами свойств проекта. Может быть у меня уже просто мозг перестроился на unix-style, когда обычный Makefile кажется гораздо удобней и эффективней кучи гуишных окошек. Хорош там только редактор текста. Но хороших редакторов много. Все это, конечно, имхо. Я прекрасно знаю об огромной армии фанатов VS. Наверное они там что-то находят. ;-)

Re: Lazarus. Призрак Delphi в Linux

sanila-san аватар

Интерфейс и правда с непривычки тяжеловат, однако юзабельный. Текстовый редактор для бейсика там потрясающе хорош, а интерактивный отладчик, надо признать, штука весьма удобная, хотя и работает он так удобно только в дотнете за счёт JIT-компиляции. Поэтому как средство разработки и особенно отладки мне VS2005 очень нравится.

Re: Lazarus. Призрак Delphi в Linux

Гость аватар

Shift+Alt+Enter облегчат твои муки :)

Re: Lazarus. Призрак Delphi в Linux

Базука аватар

Kак это может спасти от тормозов при переключении на форму/с формы, от невозможности переключаться между формой-кодом с помощью одной кнопки.
Сложно мне придумать, как ;)

Re: Lazarus. Призрак Delphi в Linux

sanila-san аватар

А вообще не хочу согласиться с тем, что низкий порог вхождения в среду разработки приводит к появлению некачественных программ. Мне кажется, что дело тут не столько в низком пороге, сколько в мозгах самих господ программистов. Трудно объяснить появление большого числа программистов невысокого уровня подготовки только лишь лёгкостью вхождения в среду разработки. Это мнение обосновано настолько же, насколько обосновано мнение о том, что Линукс создан для гиков.

Меня давно забавляло отношение некоторых господ программистов к RAD-средам, RAD-языкам, и вообще всем высокоуровневым надстройкам вроде визуального проектирования. Дескать, это ламерский подход - натыкать чего-то, написать несколько строк кода, и всё заработает. Признаюсь, и сам я в некоторых случаях предпочитаю писать грандиозный код доступа к хранимой процедуре с двумя десятками параметров, вместо создания динамического запроса. На самом деле, сложность процесса разработки ПО некоторым образом коррелирует со сложностью разрабатываемого проекта. Средства разработки имеют свой коэффициент сложности, который влияет на скорость разработки (а время – деньги). Поэтому RAD-средства - это не по-гиковски, но это окупается. Слабая сторона Lazarus как раз в том, что это недостаточно мощное RAD-средство, поэтому, вкупе с непопулярностью Pascal, оно сейчас непривлекательно.

Re: Lazarus. Призрак Delphi в Linux

SolarWind аватар

>Слабая сторона Lazarus как раз в том, что это недостаточно мощное RAD-средство, поэтому, вкупе с
>непопулярностью Pascal, оно сейчас непривлекательно.

Я, собственно, это и имел в виду. Слишком уж лазарус уже отстал даже от общепринятых сейчас Linux-технологий (чего стоит только поддержка исключительно GTK). Именно поэтому он мне не кажется перспективным.

Re: Lazarus. Призрак Delphi в Linux

sanila-san аватар

По этому поводу очень рекомендую известную статью Джоэла Спольски. Тут ведь как: если проект неподобающе управляется, или есть какие-то технические сложности, то он всегда будет отставать. Идея проекта очень здоровая, а реализация подкачивает. Например, тот же Ubuntu Project силён как раз именно менеджментом. Радикально новых концептуальных идей там вроде и нет, есть несколько чисто коммерческих фишек, и вот результат - раз в полгода выходит новый релиз и дистрибутив стабильно пользуется популярностью. Лазарус плох не столько как продукт, сколько как реализация проекта. Что интересно, продукт это нужный, востребованный, и хороший настолько, насколько он вообще может быть хорошим при таком управлении.

Кстати, великий минус Лазаруса - отсутствие такой же мощной справки, как в Дельфи. Продукты Borland вообще всегда славились мощной справочной системой, в Дельфи 7 справка ненамного беднее MSDN. В Лазарусе ничего подобного нет. Надо всё-таки понимать, что исключительно-онлайн-мануалы - не единственно возможное решение.

Re: Lazarus. Призрак Delphi в Linux

Гость аватар

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

Re: Lazarus. Призрак Delphi в Linux

Михаил аватар

Я немного работал с Lazarus. Ну что я могу сказать? - если это только начало, то великолепно, если уже завершающий этап - надо найти тех, кто сможет довести проект до идеала(или компанию), тут даже не говорю под Nix или Win. Конечно мое мнение может оказаться предвзятым, так как я считаю Pascal одним из лучших, поэтому я обоими руками за развитие Lazarus.

Re: Lazarus. Призрак Delphi в Linux

SolarWind аватар

Я тоже считаю pascal незаслуженно "забытым" языком. Поэтому хотелось бы, чтобы lazarus развился как следует...

Re: Lazarus. Призрак Delphi в Linux

Гость аватар

Безусловно - попробовав огреб косяков и недоделок - но какже хоца нормальную, привычную среду разработки...

Re: Lazarus. Призрак Delphi в Linux

SolarWind аватар

На самом деле тут вопрос действительно именно в привычности. Стоит только нормально вникнуть в любую "нативную" для Linux среду разработки (KDevelop, Anjuta, да даже MonoDevelop), то уже как-то не возникает острого желания возвращаться на те же Delphi-like IDE. Вопрос привычки.

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу. Если у вас есть аккаунт в Gravatar, он будет использован для показа вашей аватарки.
  • Доступны HTML теги: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Строки и параграфы переносятся автоматически.