Сегодня: Пятница, 19.04.2024, 14:45 (МСК)| Здравствуйте, Гость| Мой профиль | Регистрация | Вход | RSS

Популярно об ИИ.
Третий сезон

Визуальная среда Flowstone

Эргономика компьютерных клавиатур

Наушники. Как выбирать?

Программы — виртуальные гитаристы
Главная » ПРОГРАММИРОВАНИЕ

Электронная беседка. В гостях — Юрий Жлоба-2

23.09.2011



Специалисты по Flash/Flex сейчас пользуются большим и устойчивым спросом, и такая тенденция будет продолжаться, поскольку сегодня эти технологии во многих сферах являются приоритетными. После недавней публикации двух материалов по программированию на ActionScript 2 ко мне пришло довольно много писем, в которых читатели просили продолжать начатое, сделать несколько уроков по ActionScript3 и побольше писать о том же Flex. Тема действительно актуальная и, если честно, довольно широкая. 

В рамках сегодняшней электронной беседки у нас во второй раз в гостях Юрий Жлоба, который уже знаком нашим читателям по интервью о медиасерверах, Erlang и erlyvideo. Нужно сказать, что выбор в качестве собеседника по Flex’у пал на него неспроста, потому как программист, способный доступным языком излагать свои мысли — это все-таки больше редкость. Причем Юрий ведет очень интересный и популярный сайт www.yzh44yzh.com, в рамках которого пишет интересные статьи, предоставляет коды, делится впечатлениями о посещенных специализированных мероприятиях.


 
Перед тем как сделать список вопросов, я посетил несколько интернет-форумов Flash/Flex-разработчиков, где нашел очень много разнообразной информации. И поскольку нас читают и новички в теме, попробуем отделить зерна от плевел. Итак, поехали. 

— Вообще, если говорить образно, сейчас Flex конкурирует в основном с Java. Какие главные плюсы и минусы у каждой из сторон ты бы выделил?

— Тут небольшая ошибка, Flex не конкурирует с Java:). Java — язык общего назначения, Flex — фреймворк для AS3, выполняющий довольно узкую задачу. Не могут они конкурировать:).
Flex — хороший инструмент для построения пользовательских интерфейсов, и вообще для разработки клиентской части. Java обычно используется на сервере. Сейчас вряд ли многие пишут на Java клиентскую часть. Так что они не конкурируют, а прекрасно сочетаются. Можно даже смело сказать, что Flex изначально создан для того, чтобы
сочетаться с Java на сервере.

— В этом году третьей версии языка ActionScript исполнилось пять лет. Если честно, когда увидел ее в первый раз, я (и не только я) сразу подумал о сильном подобии с Java. Сейчас ведь программистами используются различные варианты трансляции с первого языка на второй, какие из них (вариантов) с твоей точки зрения являются наиболее удачными и востребованными?

— Да, AS3 похож на Java. Особенно, если сравнивать с AS2, который гораздо ближе к JavaScript, чем к Java. Думаю, AS3 намеренно делали похожим на Java. Это облегчило его продвижение в энтерпрайз.

Насчет трансляции с AS3 на Java не знаю. Вряд ли это сильно востребовано. Языки решают разные задачи в разных предметных областях. Поэтому редко возникает необходимость получить идентичную логику на AS3 и на Java. Может быть, только где-нибудь в геймдеве, когда бывает нужно иметь идентичные игровые алгоритмы и на клиенте, и на сервере.
Или можно взять ситуацию с разработкой на Flex под Андроид. Но и там AS не транслируется в Java-код, а компилируется непосредственно в байт-код для виртуальной машины Андроида.

— На самом деле, сейчас много говорят и пишут о портировании Flash-приложений на JVM, например, для той же платформы Android. Вообще, реально ли удерживать основной блок кода в рамках AS3?

— Ну да, уже упомянул об этом. Насколько я знаю, только для Андроид такое и делают. Надо понимать, что проще и удобнее использовать нативные средства для разработки под Андроид. Оно и по возможностям богаче, и по эффективности приложения лучше. Пока Flex имеет доступ далеко не ко всем API платформы, хотя Adobe активно работает над этим. Распространение флэш технологии на мобильные платформы — основной приоритет компании.

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

Что же касается компиляции AS3 в Java байт-код, то это не особо интересно. И так уже имеется несколько весьма разных языков, которые компилируются в Java байт-код: Scala, Groovy, JRuby, Scheme. Так что программисту есть из чего выбрать. Добавить сюда AS3, так он погоды не сделает. Вот, честно говоря, было бы интереснее иметь парочку языков,
кроме AS3, компилирующихся в байт-код флэш плеера:).

— Какой у тебя инструментарий программиста на сегодня?

Основная ОС: Debian (приходится использовать 32-хразрядную, ибо для 64-х
разрядной нет дебаг-версии флэш плеера).
Дополнительная ОС: MacOS (иногда использую для некоторых специфических задач).
Среда разработки: Intellij IDEA Ultimate с плагинами для Scala, Bash, Erlang.
Основные языки программирования: AS3/MXML, Java, Erlang, JavaScript/HTML/CSS.
Дополнительные: Bash, Scala, PHP, SQL.
Контроль версий: Git, Subversion.
Инструменты сборки: Maven, Bash.

— Если в процентном соотношении, то какого рода проекты сейчас наиболее часто делаются на базе Flex'а? Какие из них являются наиболее сложными?

— В основном Flex используется в энтерпрайз проектах, для которых он, собственно, и создавался. Но можно использовать везде, где требуется строить сложный пользовательский интерфейс из набора типовых контролов.

Со сложностью проектов это слабо связано. Энтерпрайз проекты, как правило, сложны. Уже хотя бы потому, что велики по масштабу. Но при этом клиентская часть может быть не сложной. А может быть весьма мудреной:).

— Вообще, если присмотреться внимательнее, то новые технологии от Adobe не так быстро внедряются в последние годы. Например, еще в 2006-2007 гг. говорили о глобальном приходе MXML и связанной с ним грядущей перестановке на рынке веба, потом AIR, затем не очень понятная ситуация с RTMP и медиасерверами, сейчас внедрение 3D-графики во Flash-приложения... Что, по твоему мнению, нам ждать от Flex в будущем?

— А что, кто-то ждет, что технологии Adobe вытеснят все остальное и будут везде доминировать? Это невозможно хотя бы потому, что 99% веба сделано на HTML/JavaScript, и это никто ничем не вытеснит:).

Технологии развиваются нормально, не хуже любых других. Конечно, не везде идет гладко, ну, так, а чьи технологии идеальны?:).

Сейчас очевидно, что Adobe продвигают Flex на мобильные платформы. Работы здесь очень много, и ближайшие годы Adobe будут заняты этим. Может быть, даже в ущерб другим направлениям.

Например, Adobe уже несколько лет никак не могут развить Flash Builder до уровня других IDE, он сильно отстает. Но это из-за того, что приоритеты другие:).

Вообще-то в этом желании все вытеснить, чтобы везде был AS3, и чтобы он компилировался в Java байт-код, и работал на мобильниках и т.д. я вижу ленивого AS3-программиста, который не хочет ничего больше изучать, но хочет, чтобы ему на блюдечке подали весь IT мир. Ну что ж, желание не плохое. И лень сама по себе тоже штука не плохая. И я думаю, что единая универсальная технология "для всего", которая все вытеснит и станет для всех стандартом, рано или поздно появится. Но это случится лет через 50, не раньше:). Так что планируйте свое самообразование и свою карьеру исходя из того, что монополии AS3 (или любого другого языка) при вашей жизни не будет:).

— Расскажи, пожалуйста, об использовании связки Maven (с Flexmojos) плюс Intellij IDEA в Flex-проектах. Она является сейчас наиболее актуальной?

Ну, это интересный момент. Дело в том, что энтерпрайз разработка консервативна, использует проверенные временем вещи от больших и надежных вендоров. Поэтому, конечно, 99% флекс разработчиков будут использовать инструменты разработки от Adobe. А если даже какой-то разработчик и захочет попробовать экзотики, то работодатель ему не позволит.

На инструменты от малоизвестных вендоров (Intellij IDEA) работодатель посмотрит косо. А инструменты от разработчиков одиночек, перманентно пребывающие в недоделанном состоянии (Flexmojos), работодатель и вовсе запретит. И правильно сделает.

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

Так что, если вы хотите строить карьеру в большой (западной) компании, выбирайте Flash Builder. А если хотите эффективно работать и быстро создавать продукт — выбирайте Intellij IDEA:).

— Но если говорить о подобных связках, то это подразумевает и особую организацию работы над проектом, отдельное видение даже на уровне проектирования...

— Вот именно. Инструменты разработки оказывают большое влияние на проект. И на его структуру, и даже на его архитектуру. Например, IDEA и Maven поощряют модульность и позволяют легко сочетать разные технологии (помимо Flex) в одном проекте.

— В принципе, меня уже несколько веселит, что для ActionScript 3 появились шаблоны проектирования. С одной стороны, как мне кажется, это значит, что язык уже достаточно захламлен, с другой — он не имеет определенного концептуального приложения, то есть является «широкого профиля». Или все наоборот?

— Шаблоны проектирования по сути своей универсальны, не привязаны к конкретному языку. Соответственно, их можно реализовать и на AS3 тоже. Это не говорит о том, "захламлен" язык или нет. Это говорит только о том, что кому-то понадобилась реализация шаблонов на AS3 и этот кто-то ее сделал.

Я не возьмусь давать субъективные оценки насчет концептуальности и захламленности AS3. Но то, что он не является языком универсального назначения (широкого профиля), очевидно. Например, потому, что в AS3 нет многопоточности. Пожалуй, в нем нет такой четкой идеи, как, например, в haXe или в Erlang. Но это не делает язык хуже.

— Нас сейчас читает множество начинающих и обычных программистов, если бы они проявили желание изучать Flex как таковой, с чего бы ты им порекомендовал начинать (литература, сайты, технологии)?

Мне очень понравилась книга Питера Армстронга "Hello! Flex 4". Весьма рекомендую. Ну, а потом читать официальный хелп от Adobe в контексте решения конкретных задач:).

Ну, и, конечно, общаться с другими разработчиками. Когда я начинал, общение велось через блоги и гугл-группы. Сейчас и то, и другое практически умерло. Общение переместилось в социальные сети — фейсбук, гугл-плюс и т.д. Вот там и нужно искать других разработчиков и активно с ним общаться.

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

— А также укажи, пожалуйста, направления, в которых будет наибольший спрос на Flex-программистов в ближайшее время, с твоей точки зрения.

— Энтерпрайз разработка в крупных компаниях и мобильная разработка в
компаниях любого размера:).

— Спасибо за интервью!




Кристофер

Перепечатка материалов или их фрагментов возможна только с согласия автора.





Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Ассоциация боевых роботов
Рекомендуем...
Новости

Разделы

Опросы

Какой язык программирования вы считаете наиболее актуальным сегодня?
Всего ответов: 329

Друзья

3D-кино






Найти на сайте:








Об авторе       Контакты      Вопрос-ответ        Хостинг от uCoz