Недостатки и недоработки Lazarus

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Сообщение haword » 26.04.2007 08:58:58

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

В Лазаре нравиться: Его совместимость с Delphi, это дает возможность использовать свои старые наработки кроссплатформенно, есть много компонентов которые можно портировать из делфи в лазарь ( например вчера скачал TpbhStatusbar с торри и после небольшой поддточки его напильнокм, убрав использовние юнита windows и заменив некоторые системные сообщения на аналоги из лазаря, получился приличный статус бар с хорошими возможностями) , использование родных тем программами запущенными на десктопе. Под виндой приемлемая скорость компиляции и размер программ.

В Лазаре не нравиться: Его зависимость от внешних GUI библиотек для построения программ. Не всегда корректная работа дебагера. Компилятор часто вываливастья с ошибкой во время компилирования и приходится пересобирать весь проект, правда это не лазаря проблемы а скорее всего самого компилятора. Ну и многочисленные глюки компонентов!

С МСЕГУИ работал очень мало поэтому плюсов и минусов для меня мало:
Нравиться: Натинвые виджеты без использовния стороних библиотек, можно использовать программу везде где есть X-сы, пожалуй и все.

Не нравиться: Не совместимость с делфи, все свои старые наработки не подходят, всесь накопленный арсенал компонентов для делфи также идет лесом. Не использует для оформления своих виджетов темы десктопа. Нет возможности обработки событий OnPaint и OnOwnerDraw:)
haword
постоялец
 
Сообщения: 301
Зарегистрирован: 02.03.2006 11:34:40

Сообщение aRix » 26.04.2007 09:31:48

Засрали тему - сплошной оффтоп :(. Неужели так сложно создать новую ветку про сравнение?
Аватара пользователя
aRix
новенький
 
Сообщения: 26
Зарегистрирован: 05.04.2007 17:16:33

Сообщение debi12345 » 26.04.2007 10:29:33

да может - клиент всегда прав Wink
==========
Что у вас за клиенты ( программных продуктов ) такие ??? Россияне = марсиане ?
Аватара пользователя
debi12345
долгожитель
 
Сообщения: 5759
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Сообщение haword » 26.04.2007 11:48:25

debi12345 писал(а):да может - клиент всегда прав Wink
==========
Что у вас за клиенты ( программных продуктов ) такие ??? Россияне = марсиане ?


Нет просто кто деньги платит тот и выставляет требование к софту а не тот кто его делает! Как говорится кто девушку ужинает, тот ее и танцует!
Засрали тему - сплошной оффтоп . Неужели так сложно создать новую ветку про сравнение?

Ну как сказать, в принципе выесняем и описываем недостатки лазаря по сравнению с другими IDE и все
haword
постоялец
 
Сообщения: 301
Зарегистрирован: 02.03.2006 11:34:40

Сообщение debi12345 » 26.04.2007 14:53:29

Ну как сказать, в принципе выесняем и описываем недостатки лазаря по сравнению с другими IDE и все

Человеку просто не нравится "в сравнении" :) С мифическим "обычным порошком" - нормально. Но "тайд" с "ариэлем" - низ-з-я, нарушение закона о рекламе !

Нет просто кто деньги платит тот и выставляет требование к софту а не тот кто его делает! Как говорится кто девушку ужинает, тот ее и танцует!

У вас, наверное - очень умная страна. Потому что редко встретишь заказчика, СПОСОБНОГО грамотно выставить требования разработчикам на их же языке, терминологии, уровне подготовки, со знанием новейших тенденций и расценок. Как правило, такие уникумы сами и пишут себе программы - не обращаясь на сторону.
У нас же наоборот - есть техзадание на языке заказчика, и под него делается наш вариант. И НИ РАЗУ разу в техзадании не упоминался внешний вид программы.
Москва - не Ташкент, Узбекистан - не Россия. У вас там ад какой-то для программистов. Нам легче :)

В Лазаре нравиться: Его совместимость с Delphi, это дает возможность использовать свои старые наработки кроссплатформенно

Это заслуга не Лазаруса, а тысяч Delphi-программистов, создавших эти компоненты.

ПС:
Отчасти я с Мартином согласен - Delphi весьма неудобна для написания БД-программ ( хотя и лучше всех остальных ). По части БД - не вижу в Дельфи компонентов, стоящих мучений с их наследованием. А ведь бизнес-программы - почти тотально БД. А хорошие деньги за какие программы получаешь ? Какие программы сопровождаешь долгое время, стабильно зарабатывая на этом ? Правильно - бизнес-программы.
Аватара пользователя
debi12345
долгожитель
 
Сообщения: 5759
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Сообщение Attid » 26.04.2007 16:10:27

Напишу что мне нравиться в лазаре и что в мсегуи:

подписываюсь.
кроме компонет еще документация от дельфи на 90% подходит к лазарю, а в МСЕ даже TPoint переименовали =)

в МСЕ автодополнение не работает, а при отсутствии документации в лазаре автодополнение спасает работу даже с незнакомыми классами.
Аватара пользователя
Attid
долгожитель
 
Сообщения: 2585
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E

Сообщение debi12345 » 26.04.2007 16:31:54

в МСЕ автодополнение не работает, а при отсутствии документации в лазаре автодополнение спасает работу даже с незнакомыми классами.

(Ctrl+Space) || (Ctrl+Shift+Space) ? Не дополнение, а подсказка. А какая разница ?

кроме компонент еще документация от дельфи на 90% подходит к лазарю, а в МСЕ даже TPoint переименовали =)

Опять заслуга Борланда - что они Дельфи документировали :)
Чтобы дока появилась - нужно всего лишь ее написать.

ПС:
Если честно, я на Лазарус много времени потратил в свое время, багрепорты вовсю писал, пытался даже JVCL (не путать с JCL ! ) прикрутить. За обновлениями ZeosDBO следил. Дальше бы продолжал - но времени не осталось на баловство. Начался лихорадочный поиск выхода из положения. В результате лазания в инете выяснилось, что есть некий недокументированный MSE*, позволяющий дело делать, здесь и сейчас - в отличие от задокументированного до "не хочу" аналога Дельфей.
Аватара пользователя
debi12345
долгожитель
 
Сообщения: 5759
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Сообщение Yogrik » 26.04.2007 17:42:21

Attid писал(а): а при отсутствии документации в лазаре автодополнение спасает работу даже с незнакомыми классами

Открытые исходники спасают работу с незнакомыми классами....
Всегда можно посмотреть у кого, что и откуда растет......;)
Yogrik
постоялец
 
Сообщения: 116
Зарегистрирован: 23.03.2006 00:41:48

Сообщение Attid » 26.04.2007 17:54:12

Всегда можно посмотреть у кого, что и откуда растет......Wink

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

очень сильно отличается . . =)

при таком успехе можно и в блокнотике писать.

А какая разница ?

большая, во времени, а раз МСЕ проэктирует себя как быструю разработку то это существенно.
написать тот же хеллоу ворд в два, три раза меньше нажатий кнопок. а на тысяче строк, это показатель.
Аватара пользователя
Attid
долгожитель
 
Сообщения: 2585
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E

Сообщение debi12345 » 26.04.2007 20:09:48

большая, во времени, а раз МСЕ проэктирует себя как быструю разработку то это существенно.

У MSEide - другие акценты, на бизнес-логику. Чтобы не писать код проверки на пустое значение - назначается опция "oe_notnull" ( для таблиц - очень сложная проверка ! ). Чтобы не думать, записалась ли запись в БД при переходе на следующую строку таблицы - опция "oe_autpost". Чтобы перепроверить правильность заполнения полей перед закрытием форм - опция "canclose". Чтобы не возиться с макированием полей ввода - эти поля описываются конкретными типами данных. То есть самые сложные, путаные и ошибко-опасные проверки - убраны из кода и делаются автоматически. Далее, из определений таблиц автоматически вытаскиваются первичные индексы и нумераторы - что позволяет работать с таблицами в режиме Edit/Delete/Append/ApplyUpdates/Commit - безо всякого кода обращения к БД и генерации SQL-запросов. Далее, табличные компоненты имеют опции активизации комбинаций клавиш вставки/удаления данных - инициирующих Delete/Append. Добавлена команда CommitRetaining - Commit с последующей ре-активизаций выборок. И т.д.и, и т.п. Дельфи и Лазарус и близко к такой автоматизации самых трудоемких операций не приблизились. А вы нажатия клавиш считаете :)
Аватара пользователя
debi12345
долгожитель
 
Сообщения: 5759
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Сообщение Павел Ишенин » 27.04.2007 04:54:36

Не хотел лезть в ваш спорт, но все же свое мнение выскажу.

Вопрос: почему Lazarus?

Самый огромный плюс лазаруса - это совместимость с delphi. И для многих программистов это имеет и будет иметь решающее значение. Зачем выбрасывать/переписывать тысячи готовых и отлаженных компонент? Зачем изобретать колесо заново, если его уже изобрели? Зачем мне или кому-то еще для переползания с windows на linux/mac os x/... переписывать весь код с нуля под другой framework (MSE), если можно воспользоваться на 80-90% таким же (lcl), что и был использован при разработке (vcl)?

Если же вы собираетесь начинать разработку приложения с нуля, то у вас есть возможность выбирать на какой библиотеке вам останавливаться. Только в этом случае вы будете сравнивать возможности Lazarus и MSEide.

Другой вопрос был по собственным виджетам и независимости от сторонних библиотек. Тут тоже не может быть однозначного выбора. Не знаю, может для linux-пользователей это и не важно, но пользователи mac os x/windows врядли оценят приложение выглядящее в другом стиле и ведущее себя непривычным образом. Отсюда у lazarus ориентация на родные для платформы наборы контролов. Кроме того, в lazarus хоть и медленно/неохотно (без большого интереса со стороны разработчиков), ведется развитие fpgui интерфейса. Посмотрим, возможно Graeme Geldenhuys все-таки наймет команду разработчиков для развития этого интерфейса в lazarus (Graeme как-то заикался об этом в lazarus mail list).

К текущим проблемам lazarus я бы отнес в первую очередь его убогие возможности отладки. Да, следует признать, что отсутствие управляемых точек останова, вычислений в evaluate/modify и watch создают огромные трудности при отладке кода. Кроме того, даже присутствующие возможности отладки постоянно глючат. Могу сказать в оправдание лишь то, что работа тут не стоит на месте.
Павел Ишенин
постоялец
 
Сообщения: 475
Зарегистрирован: 24.03.2007 10:16:52

Сообщение debi12345 » 27.04.2007 08:15:51

Если же вы собираетесь начинать разработку приложения с нуля, то у вас есть возможность выбирать на какой библиотеке вам останавливаться.

100%. Добавлю также наличие специаилизированных компонентов и особой бизнес-логики - нужных для конкретной цели. MSEgui, по части наиважнейшей цели - БД - даст фору любому фрэймворку.
Аватара пользователя
debi12345
долгожитель
 
Сообщения: 5759
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Сообщение haword » 27.04.2007 12:24:58

debi12345 писал(а): Чтобы не писать код проверки на пустое значение - назначается опция "oe_notnull" ( для таблиц - очень сложная проверка ! ).

FieldByName('test').IsNull и весь код проверки
Чтобы не думать, записалась ли запись в БД при переходе на следующую строку таблицы - опция "oe_autpost".

А зачем думать то? записывается автоматом :) Или события OnAfterPost OnBeforePost
Чтобы перепроверить правильность заполнения полей перед закрытием форм - опция "canclose".

Недоверяю автомату, лучше сам руками перепроверю что ввели
Чтобы не возиться с макированием полей ввода - эти поля описываются конкретными типами данных.

Не понял про что, но в DBEdit ничего ен надо маркирвоать, оно привязывается к конкретному полю таблицы

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

Повторюсь, все ошибки лучше самому проверять а не доверять комуто другому, так как можно напоротся на какую ни будь фигню.
Далее, из определений таблиц автоматически вытаскиваются первичные индексы и нумераторы - что позволяет работать с таблицами в режиме Edit/Delete/Append/ApplyUpdates/Commit - безо всякого кода обращения к БД и генерации SQL-запросов.

IBDataSet :) Работаешь как с обычной таблицей без генерации кода :)

Далее, табличные компоненты имеют опции активизации комбинаций клавиш вставки/удаления данных - инициирующих Delete/Append.

DBGrid это все умеет :)

Добавлена команда CommitRetaining - Commit с последующей ре-активизаций выборок.

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

гы то что прочитал меня удивило честно говоря, ничего такого сверестественного я не заметил :) А насчет крутых возможностей про которые говоришь нахваливая MSEGUI, то просто поинтересуйся на досуге что может DevExpress-совский Grid и тебе станет стыдно за свои слова насчет неудобливости делфей :)
haword
постоялец
 
Сообщения: 301
Зарегистрирован: 02.03.2006 11:34:40

Сообщение debi12345 » 27.04.2007 13:33:49

haword писал(а):FieldByName('test').IsNull и весь код проверки

Ага, а если скачешь мышой между строками и столбцами, не выполнив сохранение в предыдущей ячейке ? Пускать или не пускать ?

А зачем думать то? записывается автоматом :) Или события OnAfterPost OnBeforePost

А если это нежелательно ? И как состыковать с NOT_NULL-проверкой ? Здесь на самом деле - очень путанная логика.

Недоверяю автомату, лучше сам руками перепроверю что ввели

Наитупейшие операции, лично у меня отбивающие охоту программировать. Ну и нафига тогда RAD ? Воистину - русских трудно понять.

IBDataSet :) Работаешь как с обычной таблицей без генерации кода :)

Так ведь под ЖарПтицу заточено ! А как насчет PostgreSQL, MySQL, SQLite,.. ? Разные реализации разных серверов БД и специализированный компоненты под их - о чем авторы этих компонентов вообще думали ???

А насчет крутых возможностей про которые говоришь нахваливая MSEGUI, то просто поинтересуйся на досуге что может DevExpress-совский Grid и тебе станет стыдно за свои слова насчет неудобливости делфей :)

Ага, "стыдно" ;)
Давайте, повторите функционал тестового проекта из MSEgui SVN :

/contributed/ivankob/examples/print_testcase/*
Аватара пользователя
debi12345
долгожитель
 
Сообщения: 5759
Зарегистрирован: 10.05.2006 23:41:15
Откуда: Ташкент (Узбекистан)

Сообщение betatester » 28.04.2007 01:11:44

Господа, о чем разговор?

Начнем с того, что FPC, не смотря на гордую двойку в ведущем номере версии на самом деле далеко не полон. Хотя бы в части типа Variant, который в текущей версии (2.0.4) написан ровно на половину.

Lazarus - вообще глубокая бета, опять же, не смотря на верию 0.9.22 (текущую на данный момент). Его совместимость с Delphi весьма сомнительна. Не знаю, как там в Widows - почти не работаю в ней, но в Linux состояние просто плачевное. QT интерфейс фактически не готов. GTK1 забросили. В GTK2 не могут уже 2 года доделать TFont - ну не работает он и все тут!

Интерфейсы к БД - просто слезы. На сколько я в кусе TDataSource практически не функционален, не виден из других окон и приходиться вручную добавлять DataSet'ы на те окна, в которых происходит отображение/обработка данных. Не во всех DataBase-aware классах есть Locate - этого мало?

Черти-че твориться с TDBGrid, нету нормального TPieChart, про TDBPieChart я вообще промолчу. Нету любимого ReportSmith, экспорт в Word/Excel осуществить можно только через ж... пу и так далее.

Как тут можно говорить о применении Lazarus для написания коммерческих программ?

С уважением.
betatester
постоялец
 
Сообщения: 276
Зарегистрирован: 27.04.2007 22:21:45

Пред.След.

Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 40

Рейтинг@Mail.ru