Ну вот, наконец-то свершилось — в голосовании про FireMonkey появился пятисотый ответ. Как-никак, а можно сказать, что это своеобразный юбилей, можно подвести пусть и скромный, но, тем не менее, итог голосования и начать новое :).
Вообще-то я планировал закрыть это голосование сразу после выхода Delphi XE3, но, посмотрев на количество голосов решил подождать до круглой циферки. Надо сказать, что мое личное отношение к этой платформе менялось, если можно так выразиться, не линейно. Но обо все по порядку.
Голосование было открыто 15 декабря 2011, и продолжалось 10 месяцев и 4 дня.
Вопрос голосования: Вы сейчас или в ближайшем обозримом будущем планируете разрабатывать кроссплатформенное приложение с использованием Firemonkey?
Первоначально ответов было меньше, но по просьбе читателей были добавлены ответы типа «Да, но только в рамках конкурса на DelphiFeeds.ru» и «Да, планирую разрабатывать приложения FMX но только для Win»
Первый итог голосования был подведен 28 января 2012 и результат был следующим (все ответы были собраны в две группы «Да»/»Нет»):
Второй итог был подведен 15.07.2012, когда в голосовании отметилось 365 человек (ну или меньше — кто-то да проголосовал несколько раз, несмотря на то, что стояла фильтрация по IP). Результат был таким:
И сегодня подводим третий — заключительный итог голосования:
Как видите, каких-либо значительных изменений нет — 1% это скорее погрешность, чем закономерность, тем более, учитывая, что голосование началось задолго ДО выхода XE3 c FireMonkey 2.0. Ниже представлен скрин с распределением голосов по каждому ответу в отдельности:
Как обычно — победила дружба лень. У 28% нет желания/стимула/цели (нужное подчеркнуть) занять изучением принципиально новой платформы. Что тут сказать — это их право и решение и упрекать за это, думаю, не стоит. Сейчас, по прошествии уже, считайте более года с момента моего первого знакомства с FireMonkey я могу поделиться и своими впечатлениями по поводу FireMonkey. Если выразить мое отношение к FMX в различные периоды времени максимально лаконично, уместив их в несколько предложений, то это будет выглядеть примерно так:
- Только-только вышла XE2: «Уау! Круто, Новая платформа FireMonkey! Нифига себе тут эффекты, 3D-графика, можно разрабатывать программы под Mac OS и iOS! Надо срочно попробовать!«
- Спустя месяц-полтора ковыряния во внутренностях: «Кхм…нет, оно конечно как-то работает, но где документация? Как сделать хххххх? Почему нельзя сделать yyyyyy? Надо что-то делать…«.
- Первый конкурс на DelphiFeeds: «Мдяяяя…времени совершенно нету на FireMonkey, да и VCL роднее….И с этим не разобрался и то у меня в программе глючит. Документации вроде больше, но….Нет, скорее всего этот конкурс я пропускаю«
- Второй конкурс на DelphiFeeds: «Стоит поучаствовать однозначно. В 3D как не соображал, так и не соображаю, но в 2D кое с чем подразобрался. Да и FMX уже не так «закрыта» по части документации«
То есть, если при первом знакомстве с FireMonkey меня обуревали эмоции и восторг от того, что появилось что-то реально новое и интересное, то впоследствии восторг сменился сначала недоумением (что скрывать, FMX первой версии была далека от идеала), а потом как-то начал привыкать к этой новой для нас платформе и даже кое-чего в итоге добился в своих потугах постичь глубины FireMonkey.
Сейчас у меня появилась возможность поработать с FireMonkey 2.0. Что можно сказать по части обновлений? Не соврали — FMX достаточно сильно изменилась. Пока писал клиент для DelphiFeeds, то пришлось кое-какие моменты по работе с платформой полностью пересматривать и переучивать. Но может оно и к лучшему? Я не могу себя назвать знатоком FireMonkey, но тем не менее работа над клиентом DelphiFeeds шла более гладко и менее «глючно», чем над конкурсной работой «Я математик». Да и новый иитерфйсный подход к некоторым моментам при работе с FireMonkey как-то подталкивают к изучению FMX снова и снова…как наркотик, блин =)
Не скрою, есть и еще остаются недостатки в работе FireMonkey и они, я уверен, исправляются командой разработчиков, а сама FireMonkey расширяется и дополняется. И вот, что я подумал. Практически каждый, кто столкнулся с FireMonkey впервые и получил отрицательный опыт работы, упрекает платформу в «глючности», отсутствии чего-либо, слабой документации и т.д. и т.п. Причем, подозреваю, что упреки идут буквально сразу же, практически без попыток вникнуть в суть и разобраться — создал проект, открыл палитру компонентов «А-а-а-а!! Нету моего любимого компонента для проигрывания видео! FireMonkey туфта! Надо рассказать об этом всем!! » Друзья, давайте попробуем вместе собраться с мыслями, сесть, немного подумать над тремя простыми вопросами:
- Что нравится в FireMonkey? Не всё ведь плохо в Датском Королевстве? :) Мне например, нравится идея работы со стилями. Сложно, конечно, проникнуться идеей после VCL, но идея-то классная.
- Что не нравится и как это можно было бы исправить? Здесь очень желательно постараться не быть голословным и обосновать свое «Фу!»
- Чего не хватает в FireMonkey для того, чтобы начать разрабатывать полноценный проект?
type TFormHelper = class helper for TForm procedure UpdateFormPosition; end; procedure TFormHelper.UpdateFormPosition; var RefForm: TCommonCustomForm; begin RefForm := nil; case Position of TFormPosition.poOwnerFormCenter: if Assigned(Owner) and (Owner is TCommonCustomForm) then RefForm := Owner as TCommonCustomForm; TFormPosition.poMainFormCenter: RefForm := Application.MainForm; end; if Assigned(RefForm) then begin SetBounds(System.Round((RefForm.Width - Width) / 2) + RefForm.Left, System.Round((RefForm.Height - Height) / 2) + RefForm.Top, Width, Height); end; end;
Ну не работает у формы poMainFormCenter и т.д. — форма появляется где угодно, но только не там где надо. Нашел решение, не изящное, но решение и оно меня пока вполне устраивает.
Может и у Вас такие мелкие, но полезные решения «завалялись»? Давайте поделимся ими друг с другом. Если тема будет интересна, то можно маленький конкурс пожеланий FireMonkey устроить. Нас просили разработать приложения, а мы в ответ — пачку «хотелок» :) Я, конечно, не располагаю бюджетами Embarcadero, но как бы там ни было на более-менее ценных 1-2 приза наскребсти денюжек с блога смогу. Работы можно будет публиковать прямо со страницы блога. Если понравилась идея, то отписывайте в комментариях — подумаем над сроками.
Ну и в заключение, простой вопросик для голосовалки сайдбара: Ваше впечатление от FireMonkey 2.0.?





Этот код:
if Assigned(Owner) and (Owner is TCommonCustomForm) then
RefForm := Owner as TCommonCustomForm;
Должен выглядеть вот так:
if Owner is TCommonCustomForm then
RefForm := TCommonCustomForm(Owner);
Идея делиться хорошая, баги с которыми столкнулся, забываются, если удалось их быстро победить.
FMX must die. Без вариантов. Для Win она уже не нужна, ибо ориентация на метросексуальность, куда Delphi не пускают и, скорее всего, не пустят. А для Mac она слишком не нативно выглядит, чтобы потенциальные пользователи захотели использовать софт, разработанный на FMX.
> Чего не хватает в FireMonkey для того, чтобы начать разрабатывать полноценный проект?
TVirtualTreeView в первую очередь.
TRichedit тоже не помешал бы.
Причем ввиду отсутствия информации о планах самой EMB (все секретно, ничё со времен борланда не поменялось), вкладываться в создание оных вряд ли кто будет.
Я проникся философией wxWidgets во взглядах на кроссплатформенность: всё, что можно сделать нативным — должно быть нативным.
А FMX с его собственной прорисовкой, и даже, ИМХО, тормознутостью, мне не нравится
> Чего не хватает в FireMonkey для того, чтобы начать разрабатывать полноценный проект? — Хорошей документации и примеров: складывается впечатление, что кто-то придумывает технологии, разработчики должны угадать, как они работают. Например, на прошедшей конференции «Кроссплатформа» показывался пример (мат. функции в 3D), который был разработан месяца за 4 до самой конференции, и, если я не ошибаюсь, не сотрудником Embarcadero. У меня сложилось впечатление, что EMB было просто нечего демонстрировать, и это навевает грусть… — Повысить качество тестирования выпускаемых IDE. — Развивать имеющиеся компоненты (например, DBGrid), вернуть QuickReport (не помню как точно назывался), чтобы «из коробки» можно было делать нормальные приложения для… Подробнее »
2Андрей
>>Я думаю, время «авансовых эмоций» подходит к концу,
Золотые слова :)
Беда всего софта за последние лет 10 в том, что корпорации для сохранения объемов продаж вынуждены непрерывно все менять и менять. Пользователь вначале клюет на изменения внешнего вида и фишек, но затем негатив накапливается. Например, 5 лет назад МС ввел ленту в офис, многие клюнули, но до сих пор не встречал ни одного человека, кто бы на ленте находил все функции качественного форматирования текста, итог — например, народ просто разучился править стили. К чему это я? Да к тому, что мегабренды типа МС Офиса проталкивают свои решения. А наш мелкий софт, которые мы пишем, не имеет авторитета МС, Эпла или… Подробнее »
alexey38, я бы сейчас оценил совместимость FMX и VCL примерно 30/70 т.е. 30% VCL-проекта совместимо с FMX, а 70% надо «подработать напильником». Есть, конечно, такие продукты как Mida Converter, которые якобы способны в пару кликов перекинуть VCL проект в FMX, но с Мидой я имел возможность ознакомиться только в обрезанной версии и, честно говоря, результат особенно не впечатлил — в плане «переброса» элементарных вещей типа свойство Caption сменить на Text, Value из Integer перевести в Single, преобразовать формочку и т.д. конвертер справляется «на ура», но не более того, а если ещё и какая-нибудь «не родная» библиотека используется, то проект просто… Подробнее »
Мне кажется, когда будут готовые и интересные приложения на FMX, тогда и платформа станет популярной среди разработчиков, как это стало с WPF. Приложение для построения 3D-графиков MathViz для iOS разработал Anders Ahlsson http://blogs.embarcadero.com/ao/2012/05/01/39255 — сотрудник Embarcadero, который вместе с Кристин Эллис помогает Дэвиду Интерсимону проводить вебинары и, по-моему, очень увлечен FMX. Наверное, увидим и его собственные доклады на Coderage, где он тоже отвечает за техническую часть трансляций.
Тут http://blogs.embarcadero.com/firemonkey/index.php/2012/05/05/firemonkey-math-visualization-ios-app-is-available-in-the-apple-app-store/ больше написано о том как написан MathViz.
>очень надеюсь, что Mobile Studio получится если не идеальной IDE, то по крайней мере, оптимальной в плане цена/качество/возможности
А меня новость о студии наводит на печальные мысли. Недоделали десктопный вариант (а он не то чтобы не доделан, он просто не пригоден к использованию) и берутся за мобильный. Выходит, десктопный побоку и айда осёдлывать тренды? Cколько еще раз будет продан выкидышь обезьяны?
2Kazantsev Alexey Понимаешь, Алексей, дело в том, что реально мы никоим образом не можем повлиять на деятельность Embarcadero и её планы относительно развития…Нет, ну мы, конечно, можем отправить им ноту протеста, высказать «Фу» в блогах и на форумах и тем самым хоть на чуть-чуть, но «уронить» уровень продаж в той же РФ, своими руками в N-цатый раз похоронить Delphi. Но это ведь ровным счётом ничего никому не даст :) Понятно, что не всем нравится FireMonkey в том виде, в котором она есть сейчас и хотелось бы ещё пару-тройку-пятерку апдейтов RAD Studio, чтобы FMX стала именно той, которой её хотят видеть… Подробнее »
2 Алексей:
>>Я проникся философией wxWidgets во взглядах на кроссплатформенность
Я тоже хочу проникнуться, есть ли опыт использование на паскале(Delphi, Lazarus)? Что можете посоветовать для быстрого старта?
На sourceforge есть wxPascal, но там с 2007 года ни одного скачивания…
Ох, ну а что, дифирамбы им петь что-ли при таком-то отношением к разработчикам. Мало того, что релизнули откровенно сырой продукт и пиарили его, как нечто готовое к употреблению, так еще и второе поколение умудрились выпустить не менее сырым и с кучей регрессий (желающие идут на qc и ищут XE3 Regression). Так что если кто-то и копает свеженькую могилу дельфям, то поверь, не люди выражающие свое мнение в неполиткорректной форме.
@Андрей >>- Хорошей документации и примеров: складывается впечатление, что кто-то придумывает технологии, разработчики должны угадать, как они работают. Embarcadero даёт инструмент разработки. Применение инструмента — задача прикладных программистов. Как работают компоненты? Следите за семинарами/вебинарами/блогами. http://blogs.embarcadero.com — появились русскоязычные R&D блоги — задавайте вопросы, не стесняйтесь! >>Например, на прошедшей конференции «Кроссплатформа» показывался пример (мат. >>функции в 3D), который был разработан месяца за 4 до самой конференции, и, >>если я не ошибаюсь, не сотрудником Embarcadero. Ошибаетесь. Помимо сотрудников Embarcadero — проводили мы конкурсы среди энтузиастов. Люди пробовали, создавали пилотные проекты, делились опытом и впечатлениями. Не оставайтесь в стороне! >>У меня сложилось впечатление,… Подробнее »
2Всеволод Леонов:
Вы бы там у себя для начала попробовали самостоятельно сделать рабочие приложения, чтобы удостовериться, что при помощи ваших технологий их вообще можно создать…
Право делать выводы из остальных тезисов давайте оставим разработчикам.
Про «гражданин Соврамши»: как обстоят дела с «бонусным пакетом», который экономит 250$? В сентябре по интернету прошла новость, что акция действует до 28 сентября (http://delphi2010.ru/?p=1152, в кеше гугла можно еще найти), сейчас на сайтах, (например, http://www.interface.ru/home.asp?artId=30310) имеется надпись «Бонусный пакет RAD XE3 — срок действия продлён!», на официальном ресурсе http://www.embarcadero.com/ru/radoffer вообще не указан срок окончания акции (я писал о «практически бессрочных» акциях, а пока она получается «совершенно бессрочная»)… Когда обновлялся со скидкой с D7 до XE, акция продлевалась разов так 4-5, сейчас вроде (нет времени проверять) есть скидки при переходе с D2009 до XE3… Ну и кто из нас «гражданин… Подробнее »
Интересно, Андрей.
А какие альтернативные технологии FM Вы можете назвать ?
(таково же класса)
2 Георгий:
Если речь идет о кроссплатформенной разработке, то подобных платформ немало(например, QT или указанный выше vxWidget). И я не против FM, а наборот, но я считаю, что коммерческое средство разработки должно обладать лучшими характеристиками, о чем и написал выше. Если бы это был open source проект, то никаких вопросов…
2Георгий:
Их тех что на слуху: WPF, JavaFX, AIR, Qt.
@Георгий Андрей и г-н Казанцев — типичные тролли. Они на всех форумах говорят одно и то же — «дельфимастдай». Насколько в плане развития личности полезны аффирмации подобного рода — не знаю, но по динамики их комментов вижу — надежды нет. Например, Алексей Казанцев только что ляпнул про WPF. К какому уровню перспективности данную технологию можно отнести? В каком месте она является альтернативой FireMonkey? Зачем «паскалисту» с десятками тысяч строчек кода пересаживаться на Qt? С г-ном Казанцевым всё ясно, он лепит любую глупость, лишь бы против Delphi. Ну, видимо, других способов подписать ЧСВ нет. А вот некто «Андрей» демонстрирует осведомлённость об… Подробнее »
2Всеволод Леонов
Коммент оставил как есть, но плз, давай на будущее воздержимся от взаимных оскорблений типа «тролль» и пр.? Пусть каждый высказывается так как считает нужным, но не переходя на личности и мотивируя свое «Фу!» или «Уау!». Холивары устраивать, я думаю, не в этом маленьком бложике, а где-нибудь на Хабре — там аудитория по-боле будет :)
2Всеволод Леонов: Как я понимаю, диалог невозможен в принципе, т.к. все «нерукопожатные» высказывания списываются на троллинг. Очень жаль.. 2Vlad: Пожалуй, поддержу идею Леонова продолжить инициативу с опросами, если конечно есть желание. Опросы можно сделать по самым «проблемным» вопросам, связанным с Delphi. Для чего это нужно? Ну, чтобы иметь представление о реальной ситуации… Конечно, если мнение общественности Emb не интересно, то ни на что повлиять не получится, но зато сама общественность будет знать друг о друге немного больше, чем сейчас. Можно организовать опрос на тему, кто какие приложения разрабатывает. Это даст представление о целевом применении Delphi, еще можно спросить какие из… Подробнее »
2Андрей
Опросов можно наштамповать хоть тысячу. Могу сделать отдельную страничку с голосованиями — давайте вопросы и варианты ответов (можно на email). Посмотрим, что в итоге получится :) Сделаем голосовалки без времени окончания. В принципе, по вопросу о том кто-какие приложения разрабатывает, могу за себя ответить сразу: для блога и для себя лично — небольшие утилитки типа клиента для DelphiFeeds, Хронометра и т.д. Соответственно, здесь интересно покопаться и в FMX и в стилях для VCL. По работе — сейчас с Google API вожусь, GUI вообще не касаюсь.
Евангелист-Сева, в очередной раз, умудрился на всех ярлычки навесить. Там маргиналы, тут тролли, а новым сообществом, стало быть, являются пять человек с дельфифидс поучаствовавшие в конкурсе [facepalm.jpg]. Грустно. Остается лишь надеяться, что это не официальная политика Embarcadero в деле консолидации сообщества, а заскоки конкретного персонажа.
з.ы. Мой т.н. «троллинг» и «дельфимаздаизм» легко находится в моем блоге, а также поиском по QC.
Одни эмоции, как будто любимых женщин делят.
Мне кажется с технологиями всё должно быть без эмоций:
По одной оси: WPF, JavaFX, AIR, Qt,
По другой: Производительность, Скорость разработки(RAD), Удобство разработки, Кросплатф., Нативность, Удобство распостранения/внедрения, Цена, Использ.Граф.Сопроцесора, Кол.Компонент, Кол.Сторонних Компонент, Испольльзвование всяких штучек типа Повороты кнопок и др, 3D моделей, 2D на 3D, 3D на 2D, Биндинг, Стили, Поддержка виз. наследования, Документация и др. …
2Vlad: Сделать голосовалки без времени окончания мысль хорошая, если у пользователей будет возможность со временем изменять данные. Потенциально это даст возможность увидеть актуальные данные. Если народу будет много и будет возможность отслеживать историю выбора значений, то потом можно будет строить графики тенденций, что само по себе интересно… Предлагаю пока запустить опрос на тему, кто какую версию Delphi использует в рабочих проектах. Варианты ответа от Delphi 1 до Delphi XE3(можно отдельно Turbo выделить). Ответы вибирать при помощи чекбоксов. Анализ можно сделать в нескольких разрезах: % по каждой версии, % всех версий младше D7(включительно D7), % версий от D7 до XE включительно… Подробнее »
Андрей, без проблем — сделаю и такой опрос, правда с возможностью изменять свой ответ ничего не гарантирую — надо разобраться с плагином голосовалки и, если такая возможность есть, то обязательно её включу.
>>желательно какое-то обсуждение организовать
Тоже можно — через комментарии сделать на отдельных страничках, главное, чтоб, в случае чего, обсуждение не вылилось в выяснение отношений, а то у нас горячих голов хватает… :))), но это я уж как-нибудь, в случае чего, отмодерирую
Влад, сделай, плиз опрос. Зачем я пишу комментарии? 1. Не могу не писать, обосновать не могу 2. Думаю, что таким образом я повлияю на Embarcadero 3. Embarcadero — идиоты, их нужно учить уму-разуму 4. Без моего мнения мир будет беднее в плане глобального знания 5. У меня слишком много свободного времени на работе, я хочу его чем-то заполнить @Kazantsev Alexey Прикольный блог. Никогда не знал о его существовании. Эх, Вас бы в тестеры… цены нет. Ну в смысле мышление — баги искать. Ни одной креативной темы — весь контент — вторая производная от ошибок создателей. Санитар леса. :) Разбор продуктов… Подробнее »
2Всеволод:
Если не секрет, расскажите как становятся евангелистами.
Собственно почему спросил: вот ссылка http://blogs.msdn.com/b/allo/archive/2009/03/26/9510664.aspx, цитата:
«Что делают евангелисты и зачем?
Когда меня спрашивают, что является целью моей работы, то краткий ответ звучит так: моя цель – чтобы каждый разработчик ПО и каждый ИТ-профессионал в России был счастлив. А для достижения этой цели нужно изучать нашу аудиторию, понимать ее проблемы и нужды, нужно придумывать решения проблем и рассказывать о них широким аудиториям…»
2Всеволод Леонов: Да уж какой есть. Кому-то нравится растекаться мыслью по древу и утопать в словестных оборотах, кайфуя, видимо, от ощущения своего глубокого внетреннего мира, а по так чем проще тем лучше. К слову сказать, я бы и рад написать что-нибудь хорошее, но повода, увы, нет. Embarcadero выпускает настолько сырой продукт, что нет ни какой необходимости копаться в нем для поиска багов — достаточно просто попытаться использовать. Я ни за что не поверю, что о багах лежащих на поверхности разработчики не были осведомлены (видишь, как хорошо я о них думаю). Думаю были, но, видимо, политика такова, что баги фиксить некогда,… Подробнее »
@Андрей У каждого свой путь в «евангелизм». Если бы в России можно было работать преподавателем, то я бы и остался преподавателем. Занимался бы наукой. Сейчас практически профессия «евангелиста» совмещает и то, и то. Только вместо законов бытия изучаю Delphi. Объект исследования — Delphi, предмет исследования — возможности по созданию приложений. Чтобы стать «евангелистом», нужно иметь внутреннее желания быть полезным. Сейчас у Delphi — тяжелые времена. Плюнуть в FireMonkey — ума большого не надо. Другое дело, найдя баг, «объехать его», дать возможность другим, кто идёт за тобой, все-таки решить задачу. Здесь как раз могу назвать истинных евангелистов Delphi, которые не работают… Подробнее »
…эмоций сейчас нет. Мне просто интересно посмотреть, как будет у людей с осознанностью. Смогут ли они проснуться? Или будут продолжать с различной степенью интенсивности ненавидеть Delphi? Ну пересели бы на другие продукты, в конечном итоге — таких ярых бойцов — человек 10, дай бог, если 5 из них — легальные пользователи. Урон компании невеликий. А вот другие не будут демотивированы.
Кстати, Влад слегка погорячился, насчёт «уронить продажи в России». Но за него я спокоен — он действительно уникальный человек, чем нам и ценен безмерно :)
2Всеволод Леонов Человеку, занимающемуся не своим делом («Если бы в России можно было работать преподавателем, то я бы и остался преподавателем»), стоило бы приберечь жалость для себя любимого. Пригодится еще. А хочу я простого — чтоб мой рабочий инструмент был качественным. И у блога моего нет цели опорочить Delphi. Это, пожалуй, только в глазах евангелистов аргументированные претензии считаются «троллингом» и «дельфимаздайством» (может вам и доступ к QC закрыть, там столько гадостей написано…). А по мне так читающие люди должны знать, какой уровень качества предлагает нынче Embarcadero. А уж на фоне циничных лозунгов («Многие пришли первый раз на FireMonkey, поэтому были… Подробнее »
Я системный администратор. Пишу программы для себя. Для моих задач вполне подходит версия Turbo, на которую у меня есть хоть и бесплатная, но лицензия. Инструмент выбираю исходя из его возможностей. Поэтому Delphi используется тогда, когда нет возможности решить задачу батниками, php- или JavaScript’ами. Читая этот блог, решил попробовать XE2. Установил (ещё в январе) и забыл, т.е. ни разу не запускал. Вчера мне понадобилось написать программу, которая просто выводит на экран всё, что приходит по сети на определённый порт. За тот час пока я писал такую простую программу в XE2, Delphi трижды(!) успела «вылететь» (закрыться, исчезнуть). Всеволод, что-то с моей сознательностью… Подробнее »
>>Извини Влад, что ввязался. Но мне кажется, что мы как пользователи имеем право на качественный продукт.
Без проблем, Наиль. Ты высказал свою точку зрения вполне аргументированно, по существу и без оскорблений — так что все в полном порядке :)
Хотя по поводу «вылетов» IDE XE2 — не встречал. Правда. За год пользования XE2 (и до сих пор пользую) XE2 ни разу не «заглохла». Были косяки с замиранием окна редактирования кода, т.е. окно тупо «зависает» и никак не реагирует на мои действия, но сворачивание/разворачивание окна приводила IDE в чувство.
Спешу оставить комент пока ещё пост свеж… хотелось бы что б его почитал Всеволод Леонов, и если можно подтолкнёт к очередному витку (микровитку :)) спецов EMB в развитии Делфи. В основном хочу выразить свои впечатления от использования FM2, а так же пару пожеланий. На Делфи пишу уже около 10 лет. Был всем известный период разочарования в истории развития данного средства, поэтому и были попытки работы в MC VC++, С# т.к. не хотелось остаться за бортом при худшем сценарии. Последние пару лет опять плотно пересел на Делфи, и пока ни сколько не жалею об этом. При первом выходе FM меня очень… Подробнее »
Почитал блог Kazantsev Alexey и решил поэксперементировать с TTreeView из палитры компонентов FM2 дабы самому убедится в качестве его реализации. Блин, очередной раз был разочарован. Добовлял по 1000 итемов по нажатию кнопки. При их кол-во менее 5000 ЦП (AMD Phenom 2 X4) находится в состоянии покоя, если не тревожить приложение. При последующем добавлении в среднем на каждые 5 тыс. итемов нагрузка на ЦП в среднем увеличивается на 1 %. Более того, на каждую 1000 итемов выделялось по 4 МБ ОП. Это получается по 1 КБ на итем — не многовато !!!??? На данный момент в своём новом проекте 2D я… Подробнее »
2Slava Вызовы Length() для динамических массивов не инлайнятся, в отличии от тех же вызовов для строк. Правда, на общем фоне, это не должно драматически сказываться на производительности. У меня в чувствительных к производительности местах вместо вызова Length() делалось прямое чтение длины из заголовка дин.массива, но после серии тестов выяснилось, что ощутимой выгоды от этого нет. Правда, все может от алгоритма зависеть. TDictionary является неплохим компромиссом между скоростью и потреблением памяти. У AVL дерева, при сравнительной скорости, потребление памяти должно быть больше. Для экспериментов с TreeView можно было просто скачать приложенный проект из QC. Там в дереве всего 1000 элементов (но… Подробнее »
2Kazantsev Alexey Незнаю как сейчас обстоят дела с методом Length, но когда-то мы столкнулись в одном из проектов что именно вызов сего метода является узким местом в скорости выполнения — судорожно пришлось его вырезать где это было возможно. Поэтому и по сей день стараюсь его избегать где это оправданно. >> TDictionary является неплохим компромиссом между скоростью и потреблением памяти. 24 МБ на милион записей (в 32-разрядном приложении) исходя из того что размер одного узла 24 байта: [code] pBinNode = ^TBinNode; TBinNode = record private bal: int32; left, right: pBinNode; key: pByte; LenKey: int32; public data: Pointer; end; [/code] Ну конечно… Подробнее »
>> 24 МБ на милион записей …
Имеется ввиду AVL-дерево.
Кстати (извиняюсь за отклонение от темы), в Lazarus есть реализация AVL-дерева (юнит AVL_Tree), но опять же, непомню уже почему, его реализация меня не устроила. Вобще в Lazarus много что интересного, чего не хватает в Delphi, например классы-обёртки: для работы с процессам (TProcess, убогий по сравнению с C#, но есть), пипами, и прочее… По крайней мере есть задел. И редактор поудобнее будет. В Delphi например всегда бесит автоматическое разворачивание нижеследуемых процедур и функций как только напишешь например begin. В настройках среды ничего похожего для устранения этого поведения не нашёл.
Только что скачал и опробовал Cnpack IDE Wizards — супервещь для работы в IDE! Жалею что раньше не обращал на неё внимание. В нашей конторе из около 5 кодеров я один паскалист — некому было подсказать… Похоже я уже общаюсь сам с собой :)
2Vlad:
Предлагаю добавить еще два опроса:
1) Оцените по пятибалльной шкале качество справочной системы текущей версии Delphi
2) Оцените по пятибалльной шкале качество демонстрационных примеров текущей версии Delphi
варианты ответа: 1,2,3,4,5 (radiobuttons)
2Всеволод Леонов:
>»Я не прячусь ни от кого… Мне лишь хочется, чтобы не было спекуляций,
> недомолвок, чёрного пиара — чтобы были простые и ясные правила игры…».
У меня вопрос про «простые и ясные правила игры»: почему некоторые могут критиковать Delphi(http://delphi2010.ru/?p=1096&cpage=1#comment-17977), и их за это анафеме не предают, а некоторые не могут?
2Андрей
Опросы добавлены.
2Slava
В блоге комментарии модерируются, поэтому есть некоторая задержка в их публикации и может сложится впечатление, что разговариваешь сам с собой :)
2Slava >24 МБ на милион записей (в 32-разрядном приложении) исходя из того что размер одного узла 24 байта Будет выделено 28МБ (и это только служебные данные + еще 8MB на сами данные при условии ) т.к. менеджер памяти имеет гранулярность. На затребованные 24 байта он выделит 28. TDictionary будет требовать лишь 12MB (вместе с ключами и данными). Но, вообще, говорить о потреблении нужно с учетом производительности. Насколько AVL будет опережать TDictionary? Я тестировал реализацию AVL из SuperObject, скорость сравнимая (правда было это около года назад). Есть результаты замеров? Претензии к редактору поддерживаю. В моем коде (много вложенных типов, много $REGION… Подробнее »
вордпресс скушал угловые скобки :(
(и это только служебные данные + еще 8MB на сами данные при условии [Pointer, Pointer])
TDictionary[Pointer, Pointer] будет требовать лишь 12MB
Всех приветствую. Почитал статью, посмотрел статистику голосования по FM и решил все же оставить комментарий :) Сразу хотелось бы уточнить, что не новичок в Delphi — занимаюсь разработкой проектов различной сложности начиная с Delphi 1 с давних «бородатых» годов и 28% «.. лень разбираться…» явно ко мне не относится. В 2009 даже пытался использовать в своих проектах прародителя пакета FireMonkey с http://www.ksdev.com т.е. платформа показалась уже тогда очень перспективной, но не получилось из-за «сырости» технологии, хотя тот же ThemeEngine (прародитель поддержки theme в XE2 и XE3) использоваль очень продуктивно. И тем не менее, вот уже около года я не могу… Подробнее »
Константин, в вашей системе мониторинга промышленного предприятия используются компоненты захвата изображений с видеокамеры? Если да, то какие.
Нет, с видеозахватом пока не работаю, но возможно в дальнейшем прийдется. Идет сбор данных с большого количества различных датчиков (сейчас порядка 6000 тыс.), эти данные размещаются в базе MS SQL в real-time отдельными программными модулями. Программа мониторинга состояния обрабатывает изменения в БД и анализирует данные, строит тренды изменений, в случае обнаружения критических значений или трендов, которые могут привести к критическим параметрам оборудования — акцентирует внимание оператора на проблемном оборудовании/датчике. Техпроцессы отображаются в виде интерактивных схем, карт цехов. Схемы достаточно сложные, есть варианты до 20-30 тыс. векторных объектов. Причем все постоянно меняется. Пока используется VCL, сейчас пытаюсь задействовать FM т.к. 3D… Подробнее »
2Kazantsev Alexey >> Есть результаты замеров … Сегодня провёл сравнительный тест на скорость AVL vs TDictionary. Результат приятно удивил — оказалось что TDictionary даже опережает в раза 1.5-1.7 по скорости. Пробовал создание словаря на 1 милион, и на 10 милионов записей, и затем полный проход по тому же кол-ву. AVL классический, идеально сбалансированный, но тем не менее. В дереве конечно можно ещё немного оптимизировать — метод сравнения узлов нужно пересмотреть — у меня выполняется побайтно, т.к. в качестве ключа — буфер — сделать сравнение NativeInt-ом, а остаток по-байтно. Но не думаю что это кардинально изменит что-либо. Вобщем возьму на заметку… Подробнее »
[…] 500 голосов за FireMonkey и новые вопросы к читателям. — резонансный пост о прошедшем голосовании. Именно после публикации этого поста в блоге появилась страница с опросами. Кстати, результаты некоторых опросов, прямо скажу, удивляют. […]