15 сентября 2011 г.

Семинар 13-го сентября 2011 в Москве - отчёт

Отчёт по семинару "RAD Studio XE 2 World Tour", посвящённому выходу Delphi XE 2.

(Просмотрел свои заметки о прошлом семинаре несколько лет назад - оказалось, весьма похоже; если честно, поэтому писать особо ничего и не хочется, но меня попросили; ну раз попросили - то вот).

Народу было достаточно много - это и не удивительно, учитывая интерес к новой версии. Ключевой фигурой семинара был David Intersimone - известный как главный евангелист Delphi. Собственно, докладчиков было всего два - Дэвид и Всеволод Леонов (менеджер по продуктам Embarcadero).

До начала семинара мы щёлкали Дэвида, Дэвид щёлкал нас. Со стороны выглядело немного забавно.

Началось всё достаточно бодро - Дэвид начал обзорно рассказывать про основные нововведения новой версии: кроссплатформенность, FireMonkey и т.п.

Памятуя о качестве переводчика, наушники брать не стал - так что ничего по поводу качества перевода в этот раз сказать не могу.

Дэвид говорил отлично: чётко и внятно, проблем с пониманием не возникало. Собственно, до обеда он всё это и рассказывал. Показывал всякие демки и даже несколько раз сорвал овации. В целом было весьма интересно, хотя, быть может, чрезмерно концентрировано новой информации.

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

После перерыва место Дэвида занял Всеволод Леонов, где достаточно занятно рассказывал про LiveBindings. Слушать было интересно, языком Всеволод владеет. Но вот технической информации могло бы быть и побольше: когда после разговора о том, как же клёво LiveBindings и как его использовать, Всеволод просто закрыл демку без запуска, сосед рядом со мной чуть ли не подскочил: "а запустить?!".

Завершало всё снова выступление Дэвида. На этот раз про cloud API и Data Snap. Тут Дэвида словно подменили - мне он показался школьником, не выучившим урок и выдавливающим из себя по чайной ложке слов. Серьёзно, демку по Data Snap он листал как будто он её в первый раз видит. Или видел раньше, но забыл. Допускаю, что Data Snap - не его любимая тема, но можно было бы и получше. В общем, как-то совсем на троечку.

Ну и в конце, конечно, были "реклама mode on" и вопросы.

Если с первым всё понятно, то насчёт второго... я почти открыто смеялся. В Россию приезжает один из главных людей по Delphi, и всё, что вы можете у него спросить - почему в Delphi нет DevExpress и почему глючит Error Insight? Серьёзно? :) У Дэвида лицо такое было.... как-то даже немного стыдно за наших.

Ладно, это вкратце сценарий семинара.

Из общих впечатлений: политика компании - VCL не забрасывается, развивается. Но FireMonkey - это будущее, основной приоритет. При создании новых проектов стоит рассмотреть их реализацию на FireMonkey.

FireMonkey полезен не только в юзеро-графических программах, но и в бизнес-приложениях. Самое очевидное: раз нет db-awared контролов, раз каждый контрол становится db-awared через LiveBindings, то это здорово расширяет возможности интерфейса и упрощает его кодирование (экономия времени и ресурсов). Хотя, это не специфично для FireMonkey, так можно и в VCL, но, наверное, на VCL как-то странно будет выглядеть смесь классического подхода и нового. Ещё полезная фишка: простое масштабирование и zoom (читай: простой DPI-awared). Это потому что контролы векторные, а не растровые. На VCL DPI-awared - это определённая головная боль.

Конечно, вещи вроде демки с крутящимся кубом с натянутыми на стороны контролами (работающими в процессе вращения!) - это демонстрация возможностей фреймворка, а не призыв к проектированию интерфейсов.

В целом была озвучена мысль, что бизнес-приложения сидят на уровне 90-х по UI - так может надо с этим что-то сделать?

Насколько тут выстрел в цель - покажет время.

В любом случае, если ранее вы были ограничены возможностями Win32 API (да, можно было делать своё, но делать это надо было ручками, от и до, буквально писать свой фреймворк), то теперь единственное ограничение - ваша фантазия (как оказалось позднее - это вроде как даже слоган FireMonkey или что-то вроде того). И это не может не радовать.

Стоит заметить, что FireMonkey не позиционируется как игровой движок, несмотря на 3D, DirectX/OpenGL и прочее. Да, это можно. Но это не "благословлённая" возможность.

Да, кстати, миграции проектов нет. FireMonkey надо создавать как новый проект, dfm не импортируется. Хотя энтузиасты уже работают над этой проблемой, но это не официально поддерживаемое решение. Напомню, что официальная политика: старые программы ведём на обновлённом VCL, а новые - создаём на FireMonkey.

LiveBinding - штука крайне полезная, очередное расширение RTTI (вернее, надстройка). Как побочный эффект - скриптовым языком тут, конечно, не пахнет, но есть вычислитель выражений (наверняка, этим будут злоупотреблять). Суть, в общем, сводится к связыванию двух (или нескольких) произвольных свойств объектов - указываются текстом.

Кто-то рассматривает всю эту игру с мета-информацией как не нужную (хотя их почему-то при этом совершенно не смущает dfm и сериализация). Но лично я с такой точкой зрения не согласен. Мета-информация поднимает нас на более высокий уровень - почему-бы не использовать это на всю катушку? К примеру: в C++ мета-информации нет. В нём приходится делать такие вещи как (шаблон) абстрактная фабрика, фабричный метод и т.п. В то время как в Delphi эти возможности находятся прямо в языке: виртуальный конструктор и классовые типы. Аналогично и с LiveBindings. Я его пока не щупал, но по первой прикидке он как-то сильно напоминает шаблон "наблюдатель". Вполне возможно, что тут открываются новые пути к реализации таких вещей.

В общем, если типичные конструкции ООП (шаблоны) становятся с мета-информацией естественной частью языка - то что же в этом плохого? Выглядит как естественное развитие для меня! Лично мне жаль, что за всё время эти возможности не получали должного развития и лишь сейчас начинаются положительные сдвиги.

Ну вот, в общем и целом - как-то так.

Материалы семинара:
P.S. Ах, да. Был конкурс с призами в виде футболок и выпусков журнала BPM. Некоторым с первых рядов удалось урвать ограниченную партию журнальчиков без конкурса :)

P.P.S. Фото от сотрудника Embarcadero. Ещё фото.

10 комментариев :

  1. Качество перевода действительно оставляло желать лучшего, переводились слова которые нет требовалось переводить, от монотонного перевода хотелось действительно спать. Я был в первый раз на таком семинаре и поразило быдлость наших людей, раздача халявных журналов, когда было сказано что после окончания конференции можно подойти и взять, ну наш русский человек так и сделал, встал и пошёл ведь на середине выстпления. Вопросы под конец убивали своей тупостью, я лично сидел и ждал когда же наш "умный человек" спросит а почему Вы решили использовать begin заместо фигурных скобок, ведь скобки короче по написанию. Обрадовала сама организация всего мероприятия, это личное моё мнение, но всё было выполнено на хорошем уровне, за исключением как писалось Выше, с демками надо было поработать подольше, проверить и разобраться.
    Из всего что там было преподнесено для себя сделал вывод, что работа проделана большая, и получилась далеко не плохая вещь. Страшно лишь за одно как бы всё это не загнулось.

    ОтветитьУдалить
  2. Насчет отсутствия ДБ компонентов. Это теперь можно создать поля в ДатаСете и указать их в "источнике" компонента?

    ОтветитьУдалить
  3. Я не в курсе: LiveBindings не смотрел.

    Почитайте справку и посмотрите демки. Там есть примеры с БД.

    ОтветитьУдалить
  4. Обновил пост - вставил ссылки на фото.

    ОтветитьУдалить
  5. Мне понравилось. Файрманкей зажег как я и ожидал, видел уже на что способны компоненты ksDev.
    Смог пообщаться с ребятами из фастрепорта, тоже приятно.
    За тупые и детсадовские вопросы действительно было стыдно.
    Лично я всё что хотел узнать спрашивал в перерыве и после выступлений.
    Перевод слушал в полуха, когда переводила девушка порадовало "Разглючивание" :)

    ОтветитьУдалить
  6. Насчёт тупых вопросов: Все, кто хотел задать какие-то вопросы - задали их ещё в первом перерыве. И, поверьте, это были совсем не вопросы на тему error insight.
    Хотя, касательно error insight - стыдно должно быть разработчикам, которые знают про этот глюк на протяжении как минимум пяти версий и до сих пор не почесались его исправить. Это конечно мелочь, но таких мелочей в RAD Studio очень много (вспомним, например, в какой версии появилась поддержка unicode в коде, и в какой версии исправили перескакивание курсора).

    LiveBindings - очень крутая тема. С нетерпением жду, когда смогу её опробовать. Это именно то, чего не хватало Delphi, чтобы хоть как-то наверстать отрыв от современных реалий программирования.

    Забыл задать вопрос про аспекты, но думаю, что ответ всё равно был бы в духе "мы подумаем".

    FireMonkey очень понравился. Давно ждал альтернативу VCL. А тут ещё и кроссплатформенный, с собственной векторной отрисовкой, да ещё и на GPU. Только Дэвид уделил этому незаслуженно много внимания. По сути он часто повторял одни и те же действия (компиляция под вин и под мак) и демонстрировал одни и те же фишки (как переключение стилей).

    ОтветитьУдалить
  7. >>> И, поверьте, это были совсем не вопросы на тему error insight.

    Да я, собственно, за что купил, за то и продаю.

    ОтветитьУдалить
  8. Честно говоря, разочаровал нынешний уровень контролов в FireMonkey. Частично понимаю, что от кроссплатформенности нативного look'n'feel не добиться, но как то до последнего верилось в чудо.

    ОтветитьУдалить
  9. Обновил пост - добавил ссылки на материалы семинара.

    ОтветитьУдалить

Можно использовать некоторые HTML-теги, например:

<b>Жирный</b>
<i>Курсив</i>
<a href="http://www.example.com/">Ссылка</a>

Вам необязательно регистрироваться для комментирования - для этого просто выберите из списка "Анонимный" (для анонимного комментария) или "Имя/URL" (для указания вашего имени и (опционально) ссылки на сайт). Все прочие варианты потребуют от вас входа в вашу учётку (поддерживается OpenID).

Пожалуйста, по возможности используйте "Имя/URL" вместо "Анонимный". URL можно просто не указывать.

Ваше сообщение может быть помечено как спам спам-фильтром - не волнуйтесь, оно появится после проверки администратором.