Впечатления о семинаре Embarcadero

Источник: delphikingdom
Всеволод Леонов

Преамбула

Состоялся семинар "Embarcadero: профессиональные инструменты разработки приложений и баз данных" 2 июня 2009 г. В определенном смысле данный семинар можно рассматривать как "эпохальный" прежде всего потому, что Главный евангелист Embarcadero Technologies был основным докладчиком.

Естественно, возникает вопрос: а какой смысл посещать семинар и проявлять интерес к достаточно формальной популяризаторской активности? Разработчику интересен инструмент, технология, методы решения проектных задач, а разговоры о "планах на будущее" просто являются потерей времени, тем более что именно технологические и методические аспекты чаще всего не получают достаточного освещения на подобных мероприятиях.

Ответ здесь кроется скорее в области страхования рисков. Для профессиональных разработчиков важно знать, что используемый инструмент будет, по крайней мере, сопровождаться в дальнейшем в плане устранения ошибок и поддержки возможностей новых операционных систем. Желательно, чтобы создатели также обеспечили развитие предлагаемой технологии, отвечая всё возникающим потребностям со стороны пользователей. Профессиональный разработчик, беря на себя ответственность за очередной достаточно объемный проект, должен быть уверен, что применяемый инструмент, проще говоря, не "загнется" в обозримом будущем.

Это - действительно актуальная проблема для разработчиков, использующих Delphi. Переходить ли на другую, возможно, более привлекательную технологию? Понятное дело, переходить не хочется: годы и проекты за плечами. Громадный опыт, эффективные решения. Да и полностью "уйти" не удастся - поддержка уже созданного так или иначе будет продолжаться (чуть не сказал слово "вечно"). Именно с такими мыслями я прошел регистрацию и прибыл в нужное место в нужное время. Спасибо, что "Королевство Дельфи" своевременно опубликовало объявление.

Reasons to migrate from Delphi 7 to Delphi 2009

Детальная проработка этой информации порождает смешанные чувства. Поэтому особенно важно было услышать, что нового в Delphi 2009 от первого лица Embarcadero по связям с общественностью: всё-таки живой человек, а не бумажный носитель!

Delphi живее всех живых

Наконец, спорить с "не-нашими" стали просто. В "раздаточном материале" для участников конференции обнаружилась тонкая, но интересная брошюра "Delphi 2009 и RAD Studio 2009: мифы и реальность". Там содержится список программных продуктов, созданных при помощи Delphi и C++ Builder, а также ссылки на списки компаний, активно их использующие. Количество пользователей, выбравших продукты Embarcadero в качестве основных инструментов, оценивается как 1, 7 млн. Приятно, что в беседе с особо рьяными приверженцами "крупно-жестких" продуктов можно "отмахаться" конкретными фактами.

Стратегия победы

David I, как человек "западного менталитета", начал содержательную часть своего выступления с определенных финансово-стратегических заявлений. Главный евангелист честно признался: Borland дико наживалась на Delphi (любимом продукте), направляя всю прибыль в другие проекты. Embarcadero-же (тут его лицо просветлело), наоборот, всячески инвестирует именно в CodeGear и DatabaseGear, где паровозом, несомненно, является Delphi. Вполне уверенно David I объявил, что, несмотря на значительно меньшие инвестиции в развитие Delphi (по сравнению... вы знаете с кем...), данный продукт планомерно и всесторонне развивается.

Новые песни о главном

Что появилось нового в Delphi 2009? Смысл данной темы (помимо доказательства развития) - "двинуть" людей с Delphi 7. И создавай после этого великие продукты! Всем так хорошо на 7, что большего и желать нечего. Посмотрим, что David I проповедовал нам во вторник.

Generation G

Generic-и всегда идут первым пунктом, когда речь заходит о не просто новом, а мощном в Delphi 2009. Теперь детский комплекс неполноценности Pascal-программистов перед монстрами С++ устранен. Главный "пиарщик" Embarcadero наглядно объяснил суть generic-ов. Конечно, уважаемые разработчики как-то обходились TList-ом и TObjectList-ом, но им приходилось постоянно выполнять динамическое приведение типов, что преступно! Однако количество совершаемых преступлений можно было уменьшить, использовав тот же самый TObjectList, на основе которого успешно создается собственный класс с методом

function GetMyClass(i:integer):MyClass;

В данном методе один раз совершается грех приведения, а затем совесть спит спокойно в процессе работы с экземпляром данной класса. Конечно, докладчик отработал на 100%: легко и непринужденно нырнул в реализацию generic-ов, всё показал и даже похвастался возможностью удаления элемента из списка по значению (а не только по индексу). Сложно, конечно, представить себе ситуацию, когда уже сегодня программисты начнут использовать generic-и вместо традиционных контейнеров, требующих динамического приведения. Сам David I заявил, что VCL на шаблоны переписана не будет. Возможно, должно вырасти поколение Delphi-программистов, которые изначально познают классы-контейнеры, реализованные на generic-ах.

Анонимность гарантирована

Также одним из нововведений в Delphi 2009 стали анонимные методы. Тут для многих теряется ясность, причем прошедший семинар (как и два предыдущий) ничего не добавили. Объяснение анонимных методов (процедур и функций без имени в прямом смысле) после демонстрации синтаксиса (см. "Reasons to migrate…") заканчивается фразой "... что позволяет получать более простой, наглядный и, следовательно, эффективный программный код". Приводимые примеры в своей сути никак не тянут на "более простые, наглядные и эффективные программные коды", поэтому появление анонимок можно рассматривать, как попытку наполнить язык Delphi всем возможными языковыми конструкциями для более уверенного взгляда при декларации новой технологической мощности. А дальше программисты сами разберутся, как и для чего использовать. Есть достаточно полезная ссылка на материал, где объясняется полезность анонимных методов, правда на примере JavaScript.

Догнать и перегнать

Многие программисты, особенно начинающие, недоумевают, почему Delphi в своем компонентном составе не сильно приросла новыми элементами управления, несмотря на значительный период от создания до текущего момента. Возможно, пусть так это все и оставалось, а великие (и бесплатные) Delphi-библиотеки сторонних разработчиков были бы де-факто неотделимой частью среды разработки. Но Рубикон пройден, Delphi 2009 получила развитие в плане дизайна и эргономической функциональности визуальных компонентов (Outlook-панели, Ribbon-style, Balloon-подсказки и т.д.). Тут David I показывал то, что давно лежит на Youtube из его же арсенала. Ничего сверхъестественно красивого придумать было нельзя, поэтому присутствующие на семинаре мило улыбались и кивали головами, прикидывая, сколько потребуется времени программистам Embarcadero, чтобы догнать, например, DevExpress. Возможно, David I и сам это прекрасно сознавал, поэтому выглядел несколько смущенным.

На троих сообразим

Радость была бы неполной без 3-звенной архитектуры. Тут Главный евангелист разошелся вконец, засучил рукава и по-взрослому принялся убеждать аудиторию в простоте, доступности и эффективности новой "трехзвенки", попутно "варганя" некий проект. Говорил достаточно долго и убедительно. Однако что касается моего опыта, то дальше исследований DataSnap-а в Delphi 6 дело не пошло. У компонента TdataSetProvider свойство Options при заданных poAutoRefresh и poPropagateChanges не давало ожидаемых результатов (о чем писали С. Тейксейра и К. Пачеко), поэтому интерес естественным образом угас. David I, пожалуй, чувствовал настороженность, поэтому всячески расписывал возможности и обещал в будущем продолжить серьезную работу над данной технологией. Что показалось интересным, так это поддержка Callback-вызовов сервера.

Если б я была царицей

Конечно, все понимают, что выступление в "неродном" конференц-зале сильно сковывает возможности по демонстрации насыщенных примеров. Но хотелось бы (хоть одним глазком) посмотреть некое шоу, когда 2-звенка "не может", а 3-звенка "может".

Всё-таки технология клиент-сервер достаточно мощна, надежна и опробована. Так просто начать новый и ёмкий проект, изначально поставив себя в зависимость от методологии, преимущества которой еще не доказаны широким слоям... Возможно, здесь я оказался одинок, а умные лица присутствующих не были классическими масками, когда программист имитирует бешеную работу мысли при прохождении IT-директора за спиной. Но в данном месте, на мой скромный взгляд, Главный евангелист не доработал. Можно было "отжечь". А так рассказ ничем не отличался от вполне качественного пересказа материала "Reasons to migrate…", а хотелось большего.

Дорожная карта

Отдельная большая часть выступлении была посвящена "дорожной карте" технологии Delphi. Это был рассказ о том, над чем работают исследователи в лабораториях Embarcadero. David I оговорился, что все сказанное относится к будущему, причем, возможно, неблизкому. В лучших традициях маркетинга была сделана оговорка: озвученная "дорожная карта" не должна влиять на политику лицензирования Delphi. Проще говоря, приобретайте сейчас, не ждите появления описанных новшеств, т.к. они могут быть и не воплощены в реальные компоненты.

Здесь следует обратить внимание на концентрацию Embarcadero на методах "естественного ввода информации". В частности, речь зашла о применении "ручного ввода" именно в прямом смысле этого слова.

Были продемонстрированы отрывки из фильмов:

  1. Звездный путь (Star Trek).
  2. Квант милосердия (Quantum of Solace).
  3. Особое мнение (Minority Report).

В этих фрагментах главные герои лихо дирижировали в пространстве элементов управления и двигали виртуальными сущностями на плоскости сенсорных экранов размером со стол для заседаний. Главный евангелист открывал путь в концептуально новый мир эргономики интерфейса с гарантией внутренней поддержки со стороны VCL. Смотрелось фантастически свежо и необычно (особенно для тех, кто не спешит знакомится с новомодными фишками хайтека). Но David I, естественным образом, знает об интересе к Delphi именно со стороны разработчиков приложений для баз данных. Поэтому слушателям была явлена видеозапись одной из конференций, где докладчик манипулировал интерфейсом для классической базы данных "про рыбок" при помощи пальцев обеих рук. Пролистывание базы данных, увеличение изображений, поворот и смещение - все казалось продолжением указанных кинофильмов. Осталось только дождаться появления таких экранов, а также потребности использовать подобную магию со стороны пользователей.

Естественный вопрос: а не будет ли это сложнее для обычного экземпляра класса "офисный планктон"? Не будет ли юзер сильнее утомляться? Все-таки "выпасание мыши" и "танцы руками" вызывают разную нагрузку на организм человека. Двигать мышь 8-10 часов в сутки - дело привычное. А размахивать руками, причем вполне определенным образом, достаточно утомительно. Однако данный подход имеет слишком много последователей и слишком большую финансовую поддержку, чтобы сомневаться. Поэтому нам пора начинать мыслить категориями эргономистов будущего, круг пользователей которых редко выходит за рамки киногероев и отпетых фанатов виртуальной реальности.

Археология - это наука о программировании

Embarcadero вышла с фишкой AllAccess, что подразумевает приобретение всего спектра инструментов для построения и сопровождения систем, использующих базы данных. Предыдущие два семинара Embarcadero в Москве не дали ясной картины, зачем иметь все "в одном ящике". В ход шли аналогии, столь милые американскому сердцу, но столь же непонятные российскому мозгу, воспитанному мудрыми университетскими дядьками со степенями. Очень хотелось посмотреть, как David I, великий и ужасный (и бородатый), обоснует необходимость покупки инструментов разработки и сопровождения "одним пучком".

Чудо (на мой взгляд) произошло. Была выдвинута вполне себе гениальная идея. Возможно, была сделана поправка на российские реалии (кто бы ждал этого от американца!).

David I обрисовал ситуацию, когда уже внедренный проект в своих исходных файлах попадает непосредственно вам "в лапы". А задача-то ваша проста. Разобраться и дойти до уровня тотального понимания всего, что сделано, и продолжить развитие проекта. Вот этот процесс был и назван "археологией", когда человеку приходится исследовать материальные (хоть и цифровые) следы творчества (иногда жизнедеятельности) предшествующих программистов. Очень хорошая метафора, хотя реальному археологу сложнее. Он, уронив откопанную вазу, не может сделать новую. А программист может "выкинуть", например, какую-нибудь кривую и долгую "хранимку" и сделать новую, более красивую (жаль, что это приходится делать чаще, чем хотелось бы).

David I взял в качестве примера реальный программный продукт turbocash и начал демонстрировать ре-инжиниринг в действии с использованием инструментов Embarcadero. Сразу стало понятно, что при "копании" (термин, сопутствующий понятию "археология") в чужой системе, без реальных мощных систем автоматизированного проектирования программных средств не обойтись. Докладчик увлекся сам: весело кликал мышью, двигал окнами, жонглировал понятиями, чем значительно приободрил присутствующих. Без сомнения, тактика была выбрана правильно. Начинать новый "неигрушечный" проект в режиме семинара было бы неправильно, а анализ большого сложного проекта в режиме online смотрелось солидно и интересно.

Археология в контексте анализа "унаследованного" или "приобретенного" проекта предполагает 6 стадий:

  1. Визуализация компонентов системы
  2. Анализ проблем проектирования
  3. Анализ проблем стиля программирования
  4. Проверка соответствия бизнес-логики
  5. Проверка производительности
  6. Документирование

Под каждую стадию Embarcadero в лице Главного евангелиста предложила свой инструмент и свою методологию. После ER/Studio легко воспринялся DBArtisan, Change Manager и DBOptimizer, особенно с позиции дальнейшего развития существующего проекта. Вот уж что американцы и умеют делать хорошо, так это продавать. Мне захотелось реально обладать всеми этими инструментами! Осталось дождаться проекта, достойного применения данной коллекции, как оказалось, весьма полезных систем.

Искусство в массы, деньги в кассы

Под конец слово взял Кирилл Раннев, глава представительства Embarcadero Technologies Россия, СНГ. Он сказал: "David - это чистое искусство" (речь, понятно дело, стала заходить о деньгах). David I согласился. Кирилл рассказал о ценовой политике Embarcadero в плане реализации показанного. Основная идея: покупая все сразу в рамках AllAccess, пользователь экономит значительную сумму (в разы). Главный евангелист поддержал его, но заметил, что посчитать экономию сразу он не сможет, для этого придется написать приложение на Delphi. Было бы здорово, если бы на сайте Embarcadero появился бы некий online калькулятор на JavaScript.

Если есть вопрос, значит есть ответ

Одной из самых сильных сторон "живых" конференций - возможность задать вопрос и получить ответ. Однако практика показывает, что вопросы бывают либо "глупые", либо "очень глупые". На прошлой конференции за заданные вопросы (наименее глупые), Алексей Ковязин раздавал флэшки. Тогда был шквал вопросов.

В этот раз David I обещал только ответы (кризис помешал проявить неслыханную щедрость: участникам не раздали ни ручек, ни бейджиков, только бумажную рекламу). Соответственно, энтузиазма была меньше, однако свою лепту в генерацию "глупых вопросов" я, набравшись храбрости, внес.

Поскольку была достаточно подробно освещена тема ре-инжиниринга, мной был озвучен вопрос, тема которого была упомянута недавно на "Круглом Столе". Можно ли интегрировать в Delphi функцию автоматической "подсветки" названия компонентов (форм) и текста процедуры отклика в Runtime при запуске в среде разработки? Также хотелось бы иметь возможность отслеживать цепочку ссылок при наведении курсора мыши на DBGrid. Например, разработчик двигает курсор на "сетку", а всплывающая подсказка показывает название хранимой процедуры или просмотра на сервере. На что был получены следующие разъяснения. David I провел встречу с разработчиками Delphi. На данной встрече были выработаны различные предложения и новые идеи (наверное, в режиме "мозгового штурма"). Все они были тщательно записаны Главным евангелистом и опубликованы в его блоге. Много, много всего придумано! Многое, очень многое будет воплощено в следующих версиях Delphi! Будем ждать, почитывая указанный блог.

Также хотелось получить ответ на вопрос, заданный с позиции создания методологии обучения Delphi. Суть вопроса: не может ли уважаемый гуру дать примеры "идеального кода", "идеального интерфейса", а также правильного и эффективного использования компонентов на основе грамотной архитектуры типового приложения для баз данных? С одной стороны, вопрос явно провокационный. С другой, хочется иметь возможность заканчивать споры об эргономике интерфейса и стилистике кодирования фразой "а давай посмотрим, как правильно" со ссылкой на "соответствующий шаблон проектирования". Конкретно инженеров (например, машиностроителей) "натаскивают", заставляя делать проекты, которые подразумевают не создание, но понимание уже разработанных, а также внедренных промышленных образцов. К большому сожалению, David I не взял на себя смелость хвалить кого-либо (например, разобранную им же Turbocash). Ответ базировался на опять же удачной маркетинговой идее: Delphi позволяет разработчикам выбирать наиболее подходящие компоненты и подходы в зависимости от их уровня и масштаба задачи. Понятное дело, PR-монстр не "вляпался" в провокацию, однако и 100% ответ на вопрос засчитан не был. Кроме того, David I подчеркнул, что обучение стилистике и приемам программирования есть задача обучающих компаний и авторов, пишущим методическую литературу, а не Embarcadero, которая занимается разработкой и исследованиями. Так что вопрос об "идеальной книге по программированию" (обсуждавшейся на "Королевстве Дельфи") с точки зрения создателей Delphi не рассматривается в качестве приоритетного.

Я стар, я superstar

David I бряцал своей долгой жизнью в программировании (около 40 лет). Следовательно, годков ему предостаточно. Однако это не помешало ему без еды и воды отработать по полной программе, только не на Delphi, а на PowerPoint и англо-американском, в течение 5 часов. Одет только он был во все черное, хотя его выступление поминками по Delphi не выглядело. Будет ли это вторым рождением? Завоюют ли другие продукты Embarcadero 1,7 млн. пользователей по всему миру вслед за Delphi? Приедет ли David I к нам еще раз? Для многих ответы на данные вопросы прояснились после данного семинара.


David Intersimone, Chief Evangelist, Embarcadero Technology, 02.06.2009, Москва

Страница сайта http://test.interface.ru
Оригинал находится по адресу http://test.interface.ru/home.asp?artId=21003