Когда появятся пакеты?

Вопросы программирования на Free Pascal, использования компилятора и утилит.

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

Когда появятся пакеты?

Сообщение GrayEddy » 11.01.2008 00:12:29

Имеются в виду packages, ну как в Delphi.
думаю, многим это интересно узнать.
GrayEddy
постоялец
 
Сообщения: 375
Зарегистрирован: 06.05.2005 09:37:56

Сообщение Максим » 11.01.2008 02:03:31

Как только будут предоставлены патчи, так сразу. В противном случае - когда дойдут руки и появится желание.
На данный момент разработчики не горят энтузиазмом по отношению к этой идее.
Аватара пользователя
Максим
энтузиаст
 
Сообщения: 598
Зарегистрирован: 27.07.2007 01:51:43
Откуда: Москва

Сообщение Bupyc » 11.01.2008 12:47:51

GrayEddy, по большому счёту, большой ли в них смысл? Один из проектов, которыми я занимался, был полностью построен на bpl-пакетах. Т.е. в проекте было системное ядро, которое использовалось везде и набор функционала, который опционально добавлялся, если в этом была необходимость. Ядро и весь остальной функционал были оформлены в виде bpl. Когда у меня зародилась идея перенести проект на Windows CE, я стал анализировать, какую среду разработки для этого выбрать. Одним из критериев выбора, была поддержка пакетов в каком бы то ни было виде. Наиболее подходящим вариантом, сначала был Borland Developer Studio с какими то плагинами, позволяющими компилить под compact framework. Однако, позднее у меня сложилось ощущение, что кода, сложнее "Hello world" я там всё таки не получу. Поразмыслив, я решил, что для меня не будет критичным, если я буду компилить модули из пакетов в единый EXE-шник. Поэтому я остановил свой выбор на FPC, даже не смотря на то, что поддержки пакетов в нём нет.
Bupyc
постоялец
 
Сообщения: 137
Зарегистрирован: 29.08.2007 18:22:42

Сообщение vital » 11.01.2008 14:40:11

Bupyc писал(а):GrayEddy, по большому счёту, большой ли в них смысл?


Большой. Пока их поддержки нет, Lazarus так и будет оставаться одним большим костылём. Собственно говоря, пакеты - одна из ключевых фич компилятора Delphi, которая как раз и позволила создать такую качественную VCL и, соответственно, RAD IDE.

P.S. Кстати, как без пакетов Вы представляете себе будущее Lazarus-программ на мобильных устройствах? Да и в целом, принимая во внимание монстрообразность библиотек лазаря?
"Нет сынок, это фантастика"(с):)
vital
новенький
 
Сообщения: 86
Зарегистрирован: 17.10.2007 14:52:59

Сообщение vital » 11.01.2008 14:45:55

Максим писал(а):Как только будут предоставлены патчи, так сразу. В противном случае - когда дойдут руки и появится желание.
На данный момент разработчики не горят энтузиазмом по отношению к этой идее.


Патчи чего?

P.S. Вы лично контактируете с разработчиками FPC?
vital
новенький
 
Сообщения: 86
Зарегистрирован: 17.10.2007 14:52:59

Сообщение Bupyc » 11.01.2008 15:24:00

vital, я не спорю. Было бы лучше, если бы поддержка bpl или каких то аналогов была реализована в fpc. Но на мой неправильный субъективный взгляд, это не самая критичная проблема. При большом желании модульную разработку, основанную на bpl всегда можно перекомпоновать в единый ехе-шник, который будет работать точно так же, как и программа, состоящая из кучи пакетов.

vital писал(а):P.S. Кстати, как без пакетов Вы представляете себе будущее Lazarus-программ на мобильных устройствах? Да и в целом, принимая во внимание монстрообразность библиотек лазаря?


Без пакетов, как то еще могу представить, а вот без библиотеки отлаженных визуальных компонентов представляю очень слабо. А LCL для win ce на сегодняшний день весьма и весьма нестабильна. Это, как мне кажется, намного большая проблема, чем поддержка динамических пакетов.
Bupyc
постоялец
 
Сообщения: 137
Зарегистрирован: 29.08.2007 18:22:42

Сообщение Slavikk » 11.01.2008 15:28:01

я тут недавно думал над этим вопросом, необходимо было в *.dll использовать LCL, т.е. попросту форма из *.dll. Нашёл только одно и достаточно кодоёмкое решение. В dll хранятся данные по которым прямо во время работы программы динамически создаются самой программой компоненты (формы и кнопки), а обработку событий созданных кнопок обрабатывает *.dll. Но по существу это псевдо LCL в *.dll - попросту файл по которому подымается дизайн + обычная dll. Но этого хватает заглаза.
Аватара пользователя
Slavikk
постоялец
 
Сообщения: 208
Зарегистрирован: 15.01.2007 22:34:52
Откуда: Из лесов...

Сообщение vital » 11.01.2008 16:06:07

Slavikk писал(а):я тут недавно думал над этим вопросом, необходимо было в *.dll использовать LCL, т.е. попросту форма из *.dll. Нашёл только одно и достаточно кодоёмкое решение. В dll хранятся данные по которым прямо во время работы программы динамически создаются самой программой компоненты (формы и кнопки), а обработку событий созданных кнопок обрабатывает *.dll. Но по существу это псевдо LCL в *.dll - попросту файл по которому подымается дизайн + обычная dll. Но этого хватает заглаза.


Может вот это пригодится?:
http://www.delphisources.ru/pages/faq/b ... n_dll.html
vital
новенький
 
Сообщения: 86
Зарегистрирован: 17.10.2007 14:52:59

Сообщение Slavikk » 11.01.2008 21:49:12

Неа, это не делфя, здесь такое не прокатит. Здесь программа и *.dll абсолюто автономны и по памяти и по rtl, поэтому я и делаю меж ними общение на основе интерфейсов и функций.
Аватара пользователя
Slavikk
постоялец
 
Сообщения: 208
Зарегистрирован: 15.01.2007 22:34:52
Откуда: Из лесов...

Сообщение Максим » 12.01.2008 01:05:04

vital писал(а):Патчи чего?

Патчи, реализующие поддержку пакетов.

vital писал(а):P.S. Вы лично контактируете с разработчиками FPC?

Я контактирую с ними через списки рассылки и чат, так же, как и все другие желающие :)
Эта тема неоднократно обсуждалась в списке рассылки fpc-devel.

vital писал(а):Кстати, как без пакетов Вы представляете себе будущее Lazarus-программ на мобильных устройствах? Да и в целом, принимая во внимание монстрообразность библиотек лазаря?

А как пакеты помогут решить эту проблему :?:
Аватара пользователя
Максим
энтузиаст
 
Сообщения: 598
Зарегистрирован: 27.07.2007 01:51:43
Откуда: Москва

Сообщение vital » 12.01.2008 01:50:37

Максим писал(а):
vital писал(а):Патчи чего?

1. Патчи, реализующие поддержку пакетов.

vital писал(а):Кстати, как без пакетов Вы представляете себе будущее Lazarus-программ на мобильных устройствах? Да и в целом, принимая во внимание монстрообразность библиотек лазаря?

2. А как пакеты помогут решить эту проблему :?:


1. "Патчи" - это ещё мягко говоря. Потребуется много дорабатывать компилятор напильником(возможно, и линкер тоже). Думаю, кроме авторов сделать это квалифицированно больше некому(нет, можно, конечно, убив кучу времени сесть за исходники компилятора и выдать что-то в итоге, но весь вопрос в целесообразности). Просто у авторов, судя по всему, не очень чёткое понимание перспектив развития своего детища. А перспектива, имхо, одна - достижение максимальной совместимости со стандартом де-факто промышленного Pascal-программирования(Delphi, вестимо). Без этого, Free Pascal , будет если и не мёртв, то гм... в медицине это называется "стабильно тяжёлым состоянием". И все эти увлечения такими "фичами", как перегрузка операторов и макросы в С-стиле на фоне отсутствия такого базового функционала Delphi, как поддержки пакетов, порой неудовлетворительной совместимости даже по библиотекам RTL(не далее как вчера столкнулся: реализация передачи в функцию открытого массива констант работает несколько по-другому) только ведут в тупик(Лазарь там находится уже давно, и судя по всему, так и останется вечной бетой :( )

2. Помогут избежать ненужного дублирования кода. Сейчас Лазарь линкует "пакеты" статически и приходится тащить всё добро с собой, теперь представьте, что на мобильном устройстве стоит несколько Lazarus-программ и каждая содержит в себе жирный кусок одного и того же кода. Возможности сделать в этом случае своего рода фреймворк, используемый всеми этими программами и экономящий ресурсы нет в принципе :cry: А говорите при чём тут пакеты...
vital
новенький
 
Сообщения: 86
Зарегистрирован: 17.10.2007 14:52:59

Сообщение Deepthroat » 12.01.2008 03:15:24

Slavikk писал(а):Неа, это не делфя, здесь такое не прокатит. Здесь программа и *.dll абсолюто автономны и по памяти и по rtl, поэтому я и делаю меж ними общение на основе интерфейсов и функций.

Ну в приведенной ссылке так и есть. Весь функционал формы в dll, а из программы только вызываются функции CreateTheForm, LoadTheForm, ReadTheForm, ShowTheForm, DestroyTheForm для создания, удаления и пр. Все автономно, а как иначе?
Аватара пользователя
Deepthroat
постоялец
 
Сообщения: 144
Зарегистрирован: 06.09.2007 00:21:34
Откуда: Outer Heaven

Сообщение Максим » 12.01.2008 03:28:33

vital писал(а):Просто у авторов, судя по всему, не очень чёткое понимание перспектив развития своего детища. А перспектива, имхо, одна - достижение максимальной совместимости со стандартом де-факто промышленного Pascal-программирования(Delphi, вестимо).

На мой вкус понимание у них вполне чёткое. И проблеме совместимости с Delphi уделяется много внимания. При этом надо понимать, что 100% совместимости достичь очень сложно, в частности, в связи с кросс-платформенностью FPC/Lazarus. Плюс надо учитывать, что ряд возможностей, например, перегрузка функций и операторов, в FPC появился раньше, чем в Delphi.

vital писал(а):Без этого, Free Pascal , будет если и не мёртв, то гм... в медицине это называется "стабильно тяжёлым состоянием". И все эти увлечения такими "фичами", как перегрузка операторов и макросы в С-стиле на фоне отсутствия такого базового функционала Delphi, как поддержки пакетов, порой неудовлетворительной совместимости даже по библиотекам RTL(не далее как вчера столкнулся: реализация передачи в функцию открытого массива констант работает несколько по-другому) только ведут в тупик(Лазарь там находится уже давно, и судя по всему, так и останется вечной бетой :( )

Как я уже писал выше, совместимость очень неплоха, и постоянно улучшается. Если вы обнаружили несовместимости с Delphi, сообщите о них в багтрекер.

Lazarus, кстати, развивается хорошими темпами, и уже сейчас IMHO вполне пригоден для работы.

vital писал(а):Помогут избежать ненужного дублирования кода. Сейчас Лазарь линкует "пакеты" статически и приходится тащить всё добро с собой, теперь представьте, что на мобильном устройстве стоит несколько Lazarus-программ и каждая содержит в себе жирный кусок одного и того же кода. Возможности сделать в этом случае своего рода фреймворк, используемый всеми этими программами и экономящий ресурсы нет в принципе :cry: А говорите при чём тут пакеты...

А вы учитываете, что при использовании пакетов у вас:
    а) Смартлинк идёт лесом => увеличивается совокупный размер программы и требуемых ей библиотек (например, становятся нужны RTL, FCL, LCL в полном объёме);
    б) Имеет место некоторое падение производительности;
    в) Появляется проблема DLL Hell, так как для каждой версии FPC и Lazarus библиотеки будут разными => проблема с обновлениями вашей программы.
:?:

Мне лично не очень понятно, зачем это всё нужно, если только код программы не закрыт.

Вот последний тред с обсуждением этого вопроса в списке рассылки.
Аватара пользователя
Максим
энтузиаст
 
Сообщения: 598
Зарегистрирован: 27.07.2007 01:51:43
Откуда: Москва

Сообщение alexs » 12.01.2008 11:53:36

Максим писал(а):в) Появляется проблема DLL Hell

На мой взгляд, это это одна из самых главных проблем и дельфи и вобще винды - очень большая бочка дёгтя в сторону пакетов. Особенно это будет заметно в FPC, где сам компилятор не стоит на месте и каждый день дорабатывается, соответсвенно будут меняться и пакеты.
Аватара пользователя
alexs
долгожитель
 
Сообщения: 4060
Зарегистрирован: 15.05.2005 23:17:07
Откуда: г.Ставрополь

Сообщение vital » 12.01.2008 15:06:40

alexs писал(а):
Максим писал(а):в) Появляется проблема DLL Hell

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


dll-hell - это боян времён Win9x. Начиная с Win2k эта проблема решена. Эпизодические упоминания её исходят от самой Microsoft как рекламный слоган при продвижении .NET. И не более того.

P.S. Проблема rpm-hell встречается гораздо чаще, я бы сказал, несравнимо чаще.
vital
новенький
 
Сообщения: 86
Зарегистрирован: 17.10.2007 14:52:59

След.

Вернуться в Free Pascal Compiler

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

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

Рейтинг@Mail.ru