Америчка

#382 HTML5 and Flex Framework

Posted in 3 Гика, IT by Yakov Fain on January 17, 2013

SONY DSC

Разговор во время лыжного отпуска с Анатолием о настоящем и будущем HTML5 и Flex framework или куда бежать молодому программисту.

Качаем или слушаем

104 Responses

Subscribe to comments with RSS.

  1. vovazolotoy said, on January 17, 2013 at 6:35 pm

    А какое у Вас отношение к надстройкам над синтаксисом Javascript? Typescript – (псевдо)строгая типизация, интерфейсы, главный разработчик – Андерс Хейлсберг. Сoffeescript с его функциональностью. Считаете ли Вы что с их помощью можно писать код, который можно назвать более чистым или более подходящим к Enterprise ?

    Спасибо за выпуск! 🙂

    • vovazolotoy said, on January 17, 2013 at 6:44 pm

      Ой, я еще не дослушал а уже написал комментарий про Typescript (blush)

  2. Alex Kononov said, on January 17, 2013 at 6:37 pm

    Яков, а вы не смотрели в сторону Embarcadero Html 5 Builder?
    http://www.embarcadero.com/products/HTML5-Builder

    Embarcadero живее всех живых и выпускает продукты – новые версии Delphi, инструменты для работы в вебе, работа с БД и прочее.

    • Yakov Fain said, on January 18, 2013 at 9:54 am

      Не смотрели. Мы портировали свой Clear Data Builder для генерации CRUD приложения, у которого клиент на ExtJS, а серверной часть на Java.

      • Alex Kononov said, on January 18, 2013 at 1:28 pm

        Нашел на sourceforge версию для флекса, спасибо.

      • Alex Kononov said, on January 18, 2013 at 1:32 pm

        У Embarcadero свой велосипед вместо ExtJS, насколько я понимаю. Причем они обещают всестороннюю поддержку для мобильных платформ и простые способы работы с БД (этим они славились всегда). У меня купленная RAD Studio XE3, правда я использую Delphi XE3, остальное просто установлено. На фирме есть задумки (вернее у меня, на фирме пока не знают – homework) покопать в сторону мобильных клиентов. За подкаст спасибо, “копать” в сторону flex не стоит.

  3. dzhariy (@dzhariy) said, on January 18, 2013 at 6:34 am

    Спасибо за классный подкаст. Вот ценю такие технические подкасты больше всего.
    У меня есть несколько вопросов:

    1. Вопрос по книге. А как вы пишите книгу? Автор вот этой заметки:
    http://www.ademiller.com/blogs/tech/2013/01/writing-a-programming-book/
    Говорит, что сначала пишет примеры кода до написания тестов, потом на основе сэмплов пишется текст, который их объясняет. Во время написания текста – вносятся изменения в сэмплы кода.
    А вот вы пишете сначало код, а потом текст или наоборот?

    2. С какого языка, по вашему мнению, стоит начать путь программиста? Со скриптовых языков (Perl, Ruby, Python) или типизированных (C++, Java, C#) ,
    Моим первым языком, который я серьезно изучил – был Perl. Это скриптовый язык с по началу непредсказуемым поведением :). Да, в нем неопределенная переменная может значит либо undef, либо ноль, либо false. Да, приходилось писать тесты, добавлять легирование, но в итоге – я был полностью доволен результатом.
    Perl помог мне изучить и быть готовым к сюрпризам JavaScript, а на C# стало просто легче писать код, ведь на этапе компиляции можно выявить множество проблем.
    Но, вот людям, по моим наблюдениям, начавшим работу со строго типизированных языков – использовать JavaScript довольно сложно.

    3. Автоматизация тестирования. Пишете ли вы юнит-тесты для JavaScript, Flex, Java? Или считаете, что это трата времени? Используете ли вы Node.JS для юнит тестов и для серверных приложений?

    • Yakov Fain said, on January 18, 2013 at 9:48 am

      1. Зависит от темы главы. Если в главе будут практические примеры, то лучше их написать сначала. Наша книга очень практическая – мы делаем реальное Web приложение, поэтому большинство глав начинается с написания кода.

      2. IMHO, Java. Это богатый, но не очень сложный язык для изучения. А знать приципы объектно-ориентированного программирования не помешает. А помощь компилятора действительно очень важна и при изучении, и при разработке.

      3. Политики обязательного написания юнит тестов в нашей компании нет. Если некоторым программистам это полезно, то они пишут. У меня нет однозначного мнения насчет полезности их написания. На JavaScript они полезнее, чем на Java, т.к. там легче поломать работающий код. У нас серверная часть всегда на Java, поэтому Node.js пока не используем.

      • dzhariy (@dzhariy) said, on January 19, 2013 at 12:15 pm

        Спасибо, Яков. И еще один вопрос о книге на гитхабе:

        На сколько я помню, первые главы были написаны в формате markdown. Сейчас, судя по расширению, используется asciidoc. А чем был обусловен такой переход, с технологической стороны?
        На Markdown на том же Github пишутся мануалы и вики страницы. Но, видимо, asciidoc предоставляет более широкий функционал?

        И еще вопрос. На сколько я знаю, прошлую книгу Вы писали в Word. Насколько проще или сложнее стало работать с «текстовыми» форматами при написании книги?

        • Yakov Fain said, on January 19, 2013 at 1:08 pm

          На asciidoc больше тагов, что удобнее для книги. Кроме того сервер O’Reilly настроен на asciidoc и дает возможность легко генерировать книгу в режиме pdf и epub так, как она будет выглядеть в печати.

          Писать с Word было проще, но реальный формат книги видел только в конце.

          • dzhariy (@dzhariy) said, on January 20, 2013 at 10:25 am

            И еще один вопрос 😉 А как в таком формате работы вы используете, например, проверку орфографии? Ведь даже самый грамотный человек может очипятатца, а в книге очипяток быть не должно?
            Пока писал этот комментарий, нагуглил похожий проект:
            https://github.com/hudson/hudson-book#spell-checking-with-ispell
            Тут автор использует ispell
            Какие инструменты используете Вы?

            • Yakov Fain said, on January 20, 2013 at 7:19 pm

              В написании слов помогает обычный spell checker встроенный в Sublime Text, которым мы пользуемся. Для проверки синтаксиса существуют редакторы издательства O’Reilly.

    • Gene_IT said, on February 19, 2013 at 8:39 pm

      Начинать с Perl явно не стоит, это язык для профи, с кучей своих особенностей и который довольно сильно отличается от других скриптовых языков. Наверное, это самый сложный скриптовый язык. В создании языка Руби использовался принцип “principle of least surprise”. А Perl как раз язык наибольшего сюрприза. Я говорю о языках вообще, не только веб, включая C, C++, C# и т.д.

      Python я считаю лучшим скриптовым языком, очень ясный и красивый, и в целом некая противоположность Perl.

  4. Артем said, on January 18, 2013 at 6:38 am

    Я просто оставлю это здесь

    • Yakov Fain said, on January 18, 2013 at 10:00 am

      Ссылку удалил. Оставь ее в другом подкасте. А в техническом не надо мусорить.

      • Woworks said, on January 18, 2013 at 1:25 pm

        Хотел оставить это в свежем выпуске, не думал, что существует жесткое разделение на технические и нетехнические.

  5. Олександр said, on January 18, 2013 at 8:26 am

    Дякую за випуск.

  6. Alexander Gostev said, on January 18, 2013 at 2:09 pm

    Спасибо Якову и Анатолию за интересные рассуждения. Где ещё можно послушать такие вещи, даже и не знаю. На ковыряние интернетов времени особо нет, а здесь всё свежее и вкусное, ещё раз спасибо.

    Для молодого спеца, слово “JavaScript” в резюме дает гораздо более широкие возможности, чем слово “Flex”. Многие крупные компании считают знание JavaScript плюсом, тк. имеют проекты на соответствующей технологии. По моим наблюдениям соотношение предложений на JavaScript-Flex для back-end разработчиков от 90%-10% до 95%-15%. Если смотреть с такой позиции – JavaScript в гораздо более выигрышном положении.

    Анатолий говорит, что Flex это Бусидо для девелоперов. Мол работайте на тру-платформе, не разменивайтесь и вам зачтется. И это тоже подход. А насчет отмирания… в штатах достаточно вакансий для Cobol, Delphi, VB.NET, ColdFusion и тд., по сравнению с которыми Flex – новорожденный. И люди с такими программеско-нишевыми знаниями зарабатывают на уровне с другими разработчиками (не знаю правда, какие возможности для роста, тут вероятно есть проблема), в общем хлеб насущный им есть сегодня и будет завтра. Тем более не прыгая с тренда на тренд есть возможность спокойного роста программиста в серьезного спеца в технологии, что гарантирует востребованность и хорошую компенсацию за труд.

    Резюме я вижу в том, что есть разные типы людей – по характеру, темпераменту, целям, и все эти факторы влияют на выбор первого или второго пути. Оба варианта могут быть успешными при правильном подходе и прекрасно, что IT дает такой выбор. Наслаждайтесь и выбирайте рубашку по размеру.

    Яков, имею к вам важный для меня вопрос. Хочу подобрать удобную систему для управления проектами/багтрекинга, ибо та, с которой работаем сейчас, по моему мнению не удобна и расходует время в пустую. Так вот:

    1. Какую систему управления проектами вы используете?
    2. Это одна система для всей компании или каждый отдел/комманда использует что-то своё?
    3. Используете ли вы Agile методологию при разработке проектов?

    • Alex Kononov said, on January 18, 2013 at 2:21 pm

      Я бы все же не сравнивал флекс с фортраном, коболом или паскалем.

      Последние три – языки, имеющие исполняемый код на выхлопе и не нуждащиеся ни в чем вроде
      флеша. ПО, написанное на них еще в 90-х спокойно работает на Windows 8. У вас есть уверенность, что флеш будет актуален через 5-10 лет? У меня нет.

      Кроме того, Фортран например имеет огромную базу готового кода для матана и умирать точно не будет более, чем сейчас.

      VB.NET вы явно с VB6 перепутали. “Умирать” VB.NET нет никакого резона. Собственно, трансформированный VB6 и сейчас существует в форме VBA.

      • Alexander Gostev said, on January 18, 2013 at 4:06 pm

        Замечания справедливые, машинный код это всегда машинный код. Даже если присутствует избыточность кода или длительное время компиляции, программа работает и задача решается.
        Про Фортран не упоминал тк. эта вещь вполне даже используется в научных целях насколько я знаю. VB.NET действительно в 20-ке tiobe.com. Вакансий на него по факту не много, что и отражает цифра 1.043%.

        А вот про ColdFusion немного интересного накопал:
        ColdFusion is used by 1.1% of all the websites whose server-side programming language we know.
        Popular sites using ColdFusion:
        Adobe.com
        Neobux.com
        Bankofamerica.com
        Bild.de
        Target.com
        Rr.com
        Politico.com
        Nasa.gov
        Shareasale.com
        Welt.de
        Sites using ColdFusion only recently
        Independent.co.uk
        Ed.gov
        Berkeley.edu
        Lapresse.ca
        777ue.com

        Не трендовая вещь, а поддерживать и допиливать такие сайты тем не менее кто-то должен.

    • Yakov Fain said, on January 19, 2013 at 8:08 am

      1. Redmine
      2. Для проектов нашей компании да.
      3. Типа того. Есть спринты и нет жесткой спецификации того, что будем разрабатывать на следующие полгода. Все время корректируем.

      • Alexander Gostev said, on January 19, 2013 at 11:08 am

        Благодарю. У нас отдел тестирования обеими руками за Redmine 🙂

  7. airs0urce said, on January 18, 2013 at 3:42 pm

    Посмотрите в сторону Angular.js (http://angularjs.org)

    • Анатолий said, on January 19, 2013 at 5:23 pm

      Посмотрел. Грустно это все. Есть два направления:
      1. Простое внутри, сложное в использовании (HTML5)
      2. Простое в использовании, сложное внутри. (Флекс)

      Когда то специализированные языки развивались по приоритетам: простота выражения типичных задач (читабельность), и эффективность выпонения. Подкручивать HTML5 можно, только не надо называть это стандартом. Здесь налицо попытка слегка упростить читабельность за счет HTMLа, с серьезной доработкой на уровне кода, и с проблемами в эффективности. В общем попытка решить проблемы задним числом.

      • ixike said, on January 20, 2013 at 6:56 am

        А можно ли на Flex делать динамические формы например, когда сам UI храниться где то в RDBMS?

        • Yakov Fain said, on January 20, 2013 at 7:19 pm

          да

      • airs0urce said, on April 11, 2013 at 5:38 pm

        Оценить сложность по сравнению с Flex не могу, но по сравнению с обычным подходом с jquery для создания веб приложений, это работает намного проще в итоге. Для меня решило главную проблему – разделение сервера и клиента. Сервер возвращает данные в json, вся верстка подгружается с сервера сразу, а данные, которые могут меняться от запроса к запросу (относящиеся к пользователю, данные профайла, купленные item’ы, корзина) подгружаются вместе с ответом на любой из API запросов (если изменились на сервере) и тут же без действий с моей стороны отрисовываются в вертстке ангуларом, т.к. я декларативно задал как рисовать верстку из полученных данных. Если нужна гибкость, есть возможность делать hook’и на изменение определенных данных ($scope.$watch()) и некоторые другие возможности. Сейчас использую очень маленькую часть Angular, но она решает почти все мои задачи.

  8. Макс said, on January 18, 2013 at 3:52 pm

    Спасибо! Было очень интересно!

  9. Иван said, on January 18, 2013 at 7:09 pm

    Хорошая фотография!

    • Yakov Fain said, on January 21, 2013 at 4:40 am

      Спасибо. Снял на прошлой неделе во французских Альпах.

  10. Иван said, on January 18, 2013 at 8:31 pm

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

    • Анатолий said, on January 19, 2013 at 4:41 pm

      Это правда. Просто компания позиционируется как экспертная группа, а не большой аутсорсинг. Следовательно, мы отвечаем за качество кода ( материально и физически переделывая код). Соответственно требуются профессионалы. А кодировщики без “роста/дефицита” не нужны никому. С другой стороны, мы с удовольствием учим Флексу квалифицированных джавистов, так как квалифицированных специалистов на Флексе не хватает.

  11. Роман said, on January 19, 2013 at 3:45 am

    Спасибо, отличный выпуск

  12. lv said, on January 19, 2013 at 4:53 am

    КОН-ГЕ-НИ-АЛЬ-НО!!!!!!!!!!

  13. torres said, on January 19, 2013 at 10:02 am

    Спасибо за подкаст подкаст.
    А вобще.
    Программисты client side – не настоящие программисты (c) umputun

    • Анатолий said, on January 19, 2013 at 4:49 pm

      У нас в команде большинство кодируют клиент и сервер. Я бы повторил Козьму Пруткова : Специалист подобен флюсу: полнота его односторонняя. Профессионал отвечает за продукт. А если при пошиве костюма возникают вопросы: К пуговицам претензии есть? то дело это гиблое

      • Gene_IT said, on February 19, 2013 at 8:52 pm

        Довольно спорная точка зрения, конечно клиентсайд-программист пишет код, который взаимодействует с серверсайдом, но при этом при грамотном API, ему не нужно знать о серверсайд так уж много. Кроме того, есть фактор времени – программист не может сосредоточиться лишь на одной стороне. В больших и сложных проектах как правило есть чистые фронтэндщики.

    • dzhariy (@dzhariy) said, on January 20, 2013 at 5:31 pm

      Сейчас программирование на client-side –это тренд такой. Раньше client-side программирование сводилось к тому, чтобы менюшку выпадающую прикрутить и снежинки падающие на новый год поставить.
      Сейчас же создается все больше приложений, в которых большая часть программирования – это client side. И это делает приложение удобным для пользователя. Я даже не упоминаю Google Docs 😉
      Давайте возьмем Trello. Когда я с ним работаю, то даже не замечаю в сети я сейчас или нет. И есть ли связь с сервером. Он работает как декстопное приложение.

      • torres said, on January 20, 2013 at 7:30 pm

        Ты не видишь идею этой фразы) никто не говорит, что оно не нужно или неквалифицировано. Более того обоснование Umputun’a было противоположное “трудное, долгое, нудное, я делать не умею”.

        У определения “настоящивости” может быть отличное от Будамовского “за что платят большие деньги”

        • Yakov Fain said, on February 19, 2013 at 9:31 pm

          Программирование клиентской части в enterprise applications более трудоемкое, чем программирование серверной стороны.

    • Gene_IT said, on February 19, 2013 at 8:55 pm

      Наверное, umputun это крупный авторитет в области client side программирования :))

  14. Алексей said, on January 19, 2013 at 2:29 pm

    Отличный подкаст, с удовольствие прослушал.

    Кстати, а почему было сказано, что у Flex’а нет конкурентов? А как же Silverlight? Очень крутая штука именно для энтерпрайза и очень жаль что Майкрософт его недавно похоронила. Хотя, не смотря на это до сих пор используется и вакансий не так уж мало.

    • Alexander Gostev said, on January 19, 2013 at 4:19 pm

      И рейты на Silverlight developer’ов в штатах весьма высокие.

  15. student said, on January 19, 2013 at 6:43 pm

    Насколько “крутые” выглядят PL/SQL программисты на фоне Java, iOS, Flex или Web программистов?

    • Yakov Fain said, on January 20, 2013 at 12:41 am

      PL/SQL – это идин из skills, которые можно иметь в дополнение к этим языкам. Делать карьеру зная только не рекомендуется – рынок маловат. Настораживает слово “круто” в твоем коменте. Не старайся показаться крутым перед соседом, стань профессионалом и делай деньги. Пусть твои друзья будут “крутыми”.

  16. Владимир said, on January 20, 2013 at 4:32 am

    Привет, Яков. Спасибо за подкаст.

    Как ты считаешь: что делать флекс – разработчикам в условиях СНГ? У нас в основном оутсорсинг, мы не принимаем технических решений. Доказать заказчику, что в определённых условиях флеш/флекс лучше HTML5 бывает сложно. Тем сложнее, чем меньше у заказчика технических знаний – он слышал модное слово HTML5 и всё, никак его не переубедить, что его продукт сложно, иногда совсем невозможно создать на JS.

    Так вот, оставаться нам на флеш, или переходить на что то другое? Переход сейчас это потеря в зарплате, поскольку люди хотят уже готовых людей со знанием всего, что им нужно. Кругозор программистский редко ценится.

    Если не переходить, можно остаться в ситуации, когда другой работы в наших краях просто не найти будет.

    p.s. Я сейчас занимаюсь разработкой мультиплатформенных Adobe air игр с использованием Starling + FeathersUI(это 2D библиотека и UI framework поддерживающие аппаратное ускорение во флекс). На много удобнее, чем конкурент – Unity, но приходится преодолевать сопротивление менеджеров без программистского беграунда.

    • Yakov Fain said, on January 20, 2013 at 5:39 am

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

  17. Woworks said, on January 20, 2013 at 6:31 am

    Спасибо за отличный подкаст, побольше бы таких.

    P.S. Подкаст с Анатолием – всегда праздник 🙂

  18. Alex the.. said, on January 20, 2013 at 1:32 pm

    Этот Толик вообще сомневаться умеет?!!!

    • Yakov Fain said, on January 21, 2013 at 4:42 am

      Конечно! Как придем в ресторан, никак не решится выбрать блюдо.

  19. dime said, on January 21, 2013 at 6:02 am

    Любопытный персонаж.
    С одной стороны какой-то явный ассемблер-программист, до сих пор не избавившийся от комплекса, что всё что не компилируется, якобы, плохо.
    С другой стороны, упертый в конкретную технологию выход за рамки которой равносилен расстрелу. Ну, вот, что делать, если во флексе нет нужной компоненты? Не предусмотрела адобе её? Нет – значит нам это не надо? 🙂 Ну, да, ну да…
    Предсказание о том, что будущий браузерный язык будет похож на экшнскрипт более чем странное. Похож в чём? Синтаксисом? Да ведь все современные языки традиционной парадигмы синтаксически схожи. Лучше тогда сказать, – будет похож на си. Семантически? Так у экшнскрипта очень бедная семантика. Создать язык беднее – ещё постараться надо. Ну, и лучше всего оценивает и язык и его место в современном мире высказывание самого же Анатолия о том, что его программисты (с уровнем тимлида), запертые несколько лет в узком и ограниченном мирке простенького и бедного языка даже не могут осилить не то, что яваскрипт, а даже высокоуровневый фреймворк на нём, уже скрывающий семантическую сложность языка. По-моему, профессиональная деградация, не?

    • Анатолий said, on January 21, 2013 at 11:56 am

      Dime,
      Все правильно, да, программировал на ассемблере, виноват, и даже в машинных кодах, так что не всегда с компилятором. Кстати, там семантических изысков тоже не было, и жили не тужили, компилировали в голове, читали перфокарты. Единственное что отличается сейчас это возможность выбора. Раньше ее не было.

      В подкасте речь шла именно о специализированных языках и средах программирования, а вовсе не о вселенских вопросах типа компилировать или пусть комп сам догадается.

      Все объектно ориентированные языки похожи, и задача системных программистов в унификации а не в изобретении “новых” неизведанных семантических конструкций. Для сравнения рекоммендую посмотреть на компилируемые версии JavaScript такие как JScript.NET и сравнить их синтакс с экшнскриптом. Корреляция будет очень высокой. Если с другой стороны посмотреть на все уловки по созданию объектно ориентированных фрэймверков на классическом JavaScriptе налицо ручная трансляция ОО концептов в “псевдо ассемблер”. Эта ручная, не поддержанная валидацией, проверкой инициализации, оптимизаторами, и прочими отживщими технологиями пропагандируется как святая простота. Извините заранеее, но есть разница между святой простотой и блядской наивностью.

      Флекс объединяет декларативный расширяемый (очень важно) НТМЛ с языком программирования. В результате у вас есть возможность решать какие части программы должны стать декларативными и где провести границу между переиспользованием и скриптингом. И в случае ошибки быстро провести рефакторинг.

      С уважением
      Анатолий

      • dime said, on January 23, 2013 at 4:52 am

        Не очень понимаю зачем нужна унификация, тем более, что она возможна в этом смысле только выборкой минимального подмножества из всех языков. Какой-то это безумный путь. И это всё уже есть. Называется – бейсик. Если вам нужна функциональность не входящая в этот базовый набор, придётся сидеть и ждать когда вендор удосужится включить данную функциональность в и без того гигантский рантайм. Экстенсивный путь и профессиональная деградация прикладников.
        Что касается яваскрипта – вы просто хотите от него того, чем он не является. Он не является ОО-языком в тех жёстких рамках в которые вы его хотите загнать в силу _вашей_ привычки или чего похуже. Да, разумеется, если вы хотите писать на яваскрипте в стиле прошловековой давности – бейсика с объектами, вам придётся худо. Хуже может быть только программирование на экшнскрипте полностью игнорируя событийную модель. Представили? Ужаснулись? А ведь в “классическом”, или, более того, “унифицированном” ОО-языке НЕТ событийной модели. Ну, и помогли вам эти ваши ляхи (унифицированность)? 🙂 Пишите на яваскрипте в стиле яваскрипта и будет вам щастье. Да, это делается _иначе_ чем на вашем бейсике, но с чего вы решили, что иначе – значит хуже?
        Валидация, инициализация? Да ладно! Пишите на том же кофескрипте. Будет вам компиляция и валидация. Да и сам язык прикольнее яваскрипта и позволит пережить ломку от “неправильности” объектной модели :).
        Оптимизация? Да ладно! Вы же на яве пишите. Чем вам JIT-оптимизация плоха? В условиях зоопарка целевых платформ JIT рулит, бибикает и кроет статическую оптимизацию как бык овцу.

        И, возвращаясь к подкасту, удивила претензия к HTML по части его многоплатформенности. Ну, да, писать в многоплатформенной среде сложнее, чем в одноплатформенной. Но ведь и результат качественно иной. Ну, пишите только под одну платформу и будет вам ровно как флекс. Ах, придётся затачивать стили под другую платформу? Ну, да, придётся. Так ведь вы получите приложение работающее на двух (и тд) платформах! В случае с флексом вам, да, не придётся ничего ни куда затачивать, но ведь и эти дополнительные платформы окажутся вне вашего покрытия.

        • Анатолий said, on January 23, 2013 at 12:39 pm

          Dime,
          История повторяется, на новых витках. Какой смысл глядеть вперед если весь опыт сзади?
          Итак налицо отсутствие изучения истории и осмысления процессов. Поэтому каленым железом.

          1. Унификация необходима для упрощения коммуникаций между людьми. В первые 4 года программирования выучил 40 языков. Поговорить на этих языках было не с кем и не о чем.

          2. JavaScript это больше Бэйсик чем все остальное – собственно и делался как таковой. Современная стилистика это попытка объектно ориентированного программированния вручную. Ничем не отличается от первых, объектно-ориентированных библиотек на С, если вспомнить или заглянуть в Википедию, первые версии С++ были макропроцессорами – и числом их было десятки. Соответсвенно, были десятки диалектов С++, с разными библиотеками.

          3. Когда убили диалекты С и С++ стало лучше – код портировался быстро, просто, надежно. Компиляторы решали 99% проблем совместимости и надежности. Макропроцессоры и фрэймворки для них тоже.

          4. Размер рантайма – ну это просто смешно. Интерпретатор, да с JIT-оптимизацией и своим рантаймом меньше чем просто рантайм? Загружемый на каждой странице и компилируемый на лету JavaScript со всеми фрэйворками меньше чем скомпилированный и пролинкованный до минимума код? В районе версии 3.5 Флекса все оптимизации по загрузке были доведены до нормального состояния – если вы не пишите “Hello World” разница будет не в пользу JavaScript

          5. По мере роста количества кода на клиенте проблемы интерпретаторов растут экспоненциально – где модульность, можно или нет деаллоцировать память, как передавать на клиенте данные между страницами/модулями, и т.д и т.п.. Хорошо для обеспечения общей занятолсти, но есть вещи поинтересней.

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

          А пока,
          С уважением
          Анатолий

          П.С.. Есть еще одна вещь о которой никто не говорит. Связана с возрастом. На сборочных линиях электроники в Китае нет людей в возрасте > 30 лет, большинство до 25. Ослабляется внимание, руки начинают дрожать, есть другие мысли/дела несовместимые с необходимостью постоянно концентрироваться на работе. За 10 лет люди изнашиваются в хлам. Инстинкт самосохранения приходит поздно, иногда слишком.

          • inky (@11bit) said, on April 1, 2013 at 2:40 pm

            Вы берете одну сторону джаваскрипта и сравниваете ее c as3, конечно же он проиграет. JS – плохой OO язык (и честно сказать вообще не очень хороший язык), но зато у него неплохо удается совмещать ОО и функциональный стили, и это дает интересные возможности, благодаря ним существуют такие замечательные библиотеки как underscore и d3. Flex и HTML 5 нельзя сравнивать только по некоторым параметрам. Надо брать в расчет несравнимо большее js сообщество, огромное колличество инструментов, библиотек и открытость технологии.

            Я говорю это по своему, гораздо более скромному, но опыту. Около 5 лет флекса, и вот уже год JS. Джаваскрипт не плохой, и не такой, каким он был в 2005, он другой, и к нему нужен другой подход.

            А молодому программисту я бы дал такой совет: не стоит учить флекс без очень веских оснований. Стать сильным программистом можно и с более востребованными языками.

            • Yakov Fain said, on April 1, 2013 at 3:03 pm

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

              • inky (@11bit) said, on April 2, 2013 at 5:13 am

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

    • Alex said, on January 28, 2013 at 5:28 am

      +100

  20. CoderA said, on January 21, 2013 at 7:54 am

    Спасибо за отличный подкаст!
    “Нужно понять где мы живем. Мы живем в будущем или в настоящем?” – мне кажется данную фразу можно занести в раздел “мыслишки”. Этот принцип применим ко многим жизненным ситуациям.

    • Анатолий said, on January 22, 2013 at 9:55 am

      Вспоминается ответ Жванецкого на аналогичный вопрос:
      Так что, раньше лучше было?
      Раньше было хуже. А лучше еще будет.

  21. Yakov Fain said, on January 21, 2013 at 10:49 am

    The transcript of the most of this podcast in English is here: http://yakovfain.com/2013/01/21/html5-or-flex-framework/

  22. Сергей said, on January 21, 2013 at 1:31 pm

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

  23. yantonov (@yantonov) said, on January 21, 2013 at 2:01 pm

    Спасибо вам большое за отличный подкаст, за все выпуски и этот в особенности !

  24. Пильмень said, on January 21, 2013 at 6:44 pm

    Толик прав. Приложение надо создавать под определённую платформу, так как бизнес – процесс будет разным и тут набором css и каким то алгоритмом оптимизации под определённое разрешение не обойтись. А если у компании нет денег на разработку под каждую платформу – так пускай делает говно-приложение, которое удалить хочется сразу после того как установил. Я считаю, если у компании ограниченные средства на разработку стоит упростить сами приложение, но не надо делать универсальным. Честно говоря, не припомню универсальное и удобное приложение для разных платформ, даже от ИТ-гигантов.

  25. Пильмень said, on January 21, 2013 at 6:47 pm

    И кстати, Silverlight ничем не хуже вашего флекса, даже лучше. Но пипл не схавал, он хавает html5 и похоже Silverlight’у конец. А жаль.

    • Yakov Fain said, on January 22, 2013 at 6:01 am

      Пипл не схавал, потому, что Микрософт запенетрейтил его всего на половину компов, а вот Адоб вставил до конца (на 99%), excuse my French. 🙂

      • CoderA said, on January 22, 2013 at 7:26 am

        Что мешало MS разослать Silverlight на все 100% машин под Windows вместе с очередным обновлением системы?

        Если речь идет о корпоративных системах то там, видимо, еще проще. Нужный софт устанавливается по распоряжению начальства.

        • Пильмень said, on January 23, 2013 at 1:32 am

          Не подскажешь, почему ie6 остаётся одним из самых популярных браузеров?

          • Yakov Fain said, on January 23, 2013 at 6:15 am

            Желательно не делать огульных заявлений. IE6 используют меньше 1% тех, кто использует IE вообще: http://www.statowl.com/web_browser_market_share.php. В основном им пользуются докладчики на конференциях, чтобы заработать дешевые аплодисменты.

            • Пильмень said, on January 23, 2013 at 12:45 pm

              Да, моя информация взята со слухов, никогда не проверял…

      • Пильмень said, on January 23, 2013 at 1:31 am

        Угу, пока Джобс не вставил свои 5 копеек. А Микрософт не “запенетрейтил” полагаю в первую очередь потому, что понял, пиплу нужен html5 и не захотел писать против ветра.

  26. geektroubles said, on January 22, 2013 at 4:41 am

    У меня такой вопрос к ведущим подкаста: если выбирать для своей карьеры интерпретируемый или компилируемый язык, то какой из этих двух путей перспективнее для разработки действительно крупных приложений?
    У меня интуитивное впечатление от интерпретируемых языков типа JavaScript, Python, Perl, Ruby, что они предоставляют удобство для разработчика по времени и лёгкости разработки (благодаря фреймворкам и читабельности кода), но имеют невысокую производительность. Могу ошибаться или это действительно не главное.

    Интересует совместное мнение и Анатолия и Якова, исходя из рабочей реальности.

    • Yakov Fain said, on January 22, 2013 at 5:58 am

      А ты сделай свое исследование. Выбери географическую зону, где ты хотел-бы работать и посмотри на работодателей, какие скилы они просят и что за это предлагают.

      • geektroubles said, on January 22, 2013 at 6:10 am

        Мой вопрос относится скорее к общемировой статистике и аутсорсингу рабочей силы.
        Понятно, что каждый язык заточен под свои задачи, и где-то лучше использовать одно, а где-то – другое. Вот поэтому я и указал параметр “большие платформы”, которые пишутся с нуля. Потому что, когда ты изучаешь технологию, ты вынужден соглашаться, что серебряной пули нет, и ты берёшь этот продукт, т.к. он подходит для этой области. Но может так получиться, что рынок узкий

        • Yakov Fain said, on January 22, 2013 at 6:17 am

          Большинство больших систем в США и Европе пишется на платформе Java, затем идет .Net.

  27. ILIS said, on January 22, 2013 at 8:37 am

    Спасибо за полезный подкаст, кстати можно очень быстро сделать себе карьеру благодаря сайтостроению. За неделю можно изучить HTML, а CSS, JavaScript, PHP и MySQL можно применять точечно и при необходимости подучивать во время работы.

    Главное – необходимо найти среди знакомых человека с собственным бизнесом и сделать ему бесплатно сайт на приделе своих возможностей, постоянно совершенствуя и улучшая по ходу изучения. Еще лучше – сделать 2 версии, одна для владельца, а вторая для своего резюме.

    В моем случае – это была курсовая работа, сайт я сделал для отца друга (промышленные насосы). Ну и вот, еще студентом моё резюме вызывало сумасшедший интерес (2006г) только из-за этого сайта, меня сразу просили оценить сайт их компании (или сделать новый) и я с умным лицом говорил о крошечных недостатках, которые раздувал до вселенских масштабах и меня почти всегда брали на работу на следующий же день. Особенно менеджеры возбуждались от слов “оптимизация сайта для продвижения в поисковых системах”, “увеличение клиентской базы” и т.п.

    Самое интересное – это особое отношение к тебе, вроде ты даже и не программист, а тебя уважают и ценят как человека побывавшего на луне. Я думаю это из-за того, что любой человек представляет себе результат работы web-программиста, ибо он сталкивается с множеством сайтов каждый день и ему не надо долго объяснять предназначение настоящей сложной программы.

    Вот вы знаете чем занимается электромонтёр? А автослесарь? Вот, а электромонтер занимается ремонтом, например современных станков с ЧПУ и даже самый сложный двигатель покажется примитивной погремушкой, по сравнению с многомиллионным современным станком, но большинство думают, что электрик и электромонтёр – одно и тоже, а автослесарь всяко более квалифицированнее.

  28. Sergii said, on January 23, 2013 at 3:28 pm

    Спасибо за подкаст! А можно подкаст о том как обговаривать с заказчиком требования, новый функционал, как сосредоточится на необходимых задачах во время разработки, а не на рюшечках и красивостях.

    • evgenius said, on January 24, 2013 at 7:42 am

      Похоже вам нужны первые выпуски Радио “Бермудский Треугольник” (btradiopodcast.com)

      • Sergii said, on January 24, 2013 at 4:18 pm

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

        • Анатолий said, on January 24, 2013 at 4:41 pm

          Мой совет покажется странным, но тут уж извините. Если вы хотите “правильных” отношений, вам придется выучить предметную область как минимум на уровне пользователя системы – или конкурентных систем/ручных процессов. Без этого вы будете говорить о кнопках. Если вы входите в уже раскрученный проект полный проход по функционалу, базе данных и модулям тоже обязателен.

          Вообще на раскрученном проекте все намного интересней, так как вы адаптируетесь не к заказчику, а к пользователям. Разница существена, и современные большие проекты должны иметь статус беты минимум год. Примерно через 4-6 месяцев заказчик должен уйти в сторону от разработки системы и сосредоточиться на развитии бизнеса.

          • Sergii said, on January 25, 2013 at 1:42 am

            Спасибо, на самом деле ответ хороший.

  29. Yakov Fain said, on January 25, 2013 at 7:03 am

    В воскресенье начинаю мой очередной тренинг по Java. В группе 27 человек от Чикаго до Владивостока. Разница во времени между этими городами 18 часов. Снимаю шляпу перед Чикагчанами, которые будут “садиться за парту” в 6 утра, а девушка из Владика подключится в полночь. Всем удачи!

    Будет-ли еще курс по Java в этом году не знаю. Возможно, осенью сделаю курс по разработке клиентской части для Web на HTML/JavaScript/CSS.

    При всем при этом, сегодня еду встречаться с новым клиентом из большой фирмы на Wall Street – им нужно переделать (и расширить) протал с Флекса ана Флекс. Не пойму я вас, Петровых 🙂

    • Arthur said, on January 25, 2013 at 6:18 pm

      Спасибо за очередной замечательный выпуск, Будам. Хотел бы у вас узнать, как у специалиста с большим стажем в программировании в общем, и в частности на Java. Насколько сильно влияет на позиции Java на мировом рынке то, что этот язык немного “отстает” от своих ближайших конкурентов (си шарп, например) в появлении новых ‘фич’? Многие программисты ругают Java за ее неповоротливость, другие же считают, что так и необходимо развиваться – размеренно. В чем же истина, как по вашему? Спасибо.

      • Yakov Fain said, on January 26, 2013 at 8:03 am

        По моему мнению, языку Java не нужны новые фичи. Я об этом писал давным давно: http://www.javalobby.org/java/forums/t93251.html.

        Новые библиотеки и решения нужны. И люди должны ими пользоваться. Например, concurrent package или Servlets 3.0.
        JVM – очень надежная и стабильная платформа и правильнее добавлять новые языки, которые быдут ранаться (выполняться?) на этой-же виртуальной машине.

    • Gene_IT said, on February 21, 2013 at 4:06 am

      “курс по разработке клиентской части для Web на HTML/JavaScript/CSS” – это было бы хорошо, если там будут такие вещи как responsive design и т.п., ну то есть, не азы каждой технологии, а именно разработка с учетом современных тенденций.

  30. iVan said, on January 25, 2013 at 4:39 pm

    Яков и Анатолий большое спасибо за интересный подкаст.

    Интересует несколько технических вопросов:
    – используете ли вы jslint или jshint ?
    – какие инструменты вы используете для тестирования (jasmine, qunit….) и для code coverage ?

    А как отражается этот некий бум HTML5 (JavaScript) на рынке труда в США, появилось ли больше вакансий на full-time для Js-разработчиков? Или JS остается некоторым второстепенный скилом?

    • Yakov Fain said, on January 26, 2013 at 10:09 am

      1. Не используем
      2. Используем Jasminе. Наш CDB tool даже генерирует тесты.
      3. HTML5 пока революции не сделал на рынке труда программистов. Часто его изучают как дополнение к тому наборы скилов, которые уже есть у девелопера или Web дизайнера.

      • iVan said, on January 27, 2013 at 4:01 am

        Спасибо за ответы. Вчера прочитал статью (http://blog.ziade.org/2013/01/25/a-new-development-era-essay/), и хотел узнать ваше мнение относительно нее и вообще относительно этого подхода в целом. У вас в подкастах когда-то уже звучала мысль про то чтобы от сервера только получать данные в формате json а всю остальную логику делать на стороне клиента. На данный момент уже есть MV(*C) фреймворки для JS, видел даже несколько проектов сделанных при помощи этого подхода. Если действительно этот подход “распробуют” то стоит ли ожидать в таком случае оживление на рынки для JS разработчиков ?

        • Yakov Fain said, on January 28, 2013 at 6:22 am

          Читать не буду, но JSON – это сегодняшний компромис по передаче данных между XML и бинарной типизированной сериализацией. Во многих приложениях он годится, а в высоко нагруженных – нет. Часть логики можно делать на клиенте.

  31. Артур said, on January 26, 2013 at 8:17 am

    Спасибо за ссылку, Будам, почитаю тему!

    На счёт JVM тоже так считаю. Платформа хорошая и новые языки с другими парадигмами (та же Scala) открывают больше возможностей на ней.

  32. Konstantin said, on January 28, 2013 at 4:29 pm

    Яков, спасибо за познавательную беседу.
    Близко знаком с Flex с 2008 г. Полностью согласен аргументами Анатолия в отношении Flex’а. На мой взгляд, Flex в разы более изящная архитектура, чем нагромождение абсурда в JS-фреймворках, например JQuery или Dojo. Извините, но с этим может не соглашаться лишь тот, кто никогда не участвовал в командной разработке больших приложений уходящих в полноценный живой продакшен с высокими требованиями к UI.
    Очень жаль, что Adobe не удалось удержать Flex на рынке и пришлось ориентироваться на GameDev индустрию.
    Анатолий пишет о том, что квалифицированных программистов на Флексе не хватает. А я сталкиваюсь с обратной стороной – квалифицированные специалисты на Флексе никому не нужны. В центральной части РФ, лично мне удавалось найти работу с применением Flex-скилов только в Москве. И то таких вакансий очень мало, мало энтерпрайза, превалирует бестолковый геймдев. А самым интересным проектом была работа в стартапе из Palo Alto на тему Enterprise 2.0 со связкой Flex+Java, и как понимаете не для российских инвесторов. Дальше хуже – вернулся в родной регион – все сидят либо на старых Java-проектах, либо молятся на HTML5 изобретая свои архитектурные велосипеды.

    P.S. Обожаю UI и Flex. Удачно попал на ваш подкаст в поиске инфы про будущее Flex’а, т.к. меня как относительно молодого специалиста, также волнует судьба моих скилов.
    Яков, вопрос к вам, открытые Flex-вакансии Farata Systems лучше мониторить на faratasystems.com или есть еще другие источники? Бывают ли вакансии на территории РФ?

    • Yakov Fain said, on January 28, 2013 at 4:35 pm

      Я сейчас ищу сильного enterprise Flex разработчика (знание Java будет плюсом). Это удаленная работа по контракту и место проживания в РФ может быть любым. Резюме присылать по адресу yfain@faratasystems.com.

  33. Roman said, on January 31, 2013 at 4:05 am

    Яков и Анатолий, спасибо за отличный подкаст! Всегда приятно слушать профессионалов.
    Отчет и планы от adobe:
    http://www.adobe.com/devnet/flashplatform/whitepapers/roadmap.html

  34. Snow_Rambo said, on February 3, 2013 at 4:35 am

    …. я ничего непонял господа, билеберда блин, Толик можно всё заново и попорядку….

  35. Эльдар said, on February 17, 2013 at 10:23 am

    Здравствуйте, подкаст очень понравился, но вот вопросы который мучает меня 2 года и по сей день. Кратко о себе – я закончил 4 ый курс, и есть свободное время до июля (так как в июле в армию). Хочу устроиться начинающим программистом, как ученик , чтобы получать навыки, изучаю язык Python, хотя базовые основы уже знаю, но вот и Django подключил, но мешают вот какие вопросы:

    1) А стоит ли вообще браться за Django ? (на данный момент я редко встречаю проекты на Django)
    2) Стоит ли смешивать изучение Питона + фреймворки (js, html5) ?
    3) Есть ли будущее у Django и Питона в плане востребовательности.

    Как Вы говорили в подкасте, что молодой специалист боиться потерять время на изучении той или иной технологии, которая в дальнейшем не будет востребовательна. Я тоже переживаю, что изучу я Питон + Django и останусь не востребовательным, а в нашей стране Азербайджан (нету вакансий на Питонщиков). Нужен Ваш совет очень.

    Спасибо заранее Вам.

    • Владимир said, on February 17, 2013 at 12:45 pm

      Привет, Эльдар.
      Отвечу я, можно?

      >>стоит ли вообще браться за Django ?

      Да, стоит. Питон нужная штука, просто СНГ – окраины цивилизации.

      >> Стоит ли смешивать изучение Питона + фреймворки (js, html5) ?

      Однозначно, питон это в основном веб.

      p.s. Вместо защиты родины ехал бы ты лучше в другую страну и устраивался бы программистом. На Украине, к примеру, вашего брата – кавказца уже много, у своих поддержку найдешь всегда + отношение у коренных толерантное. Украина никогда не была страной с проблемами по нац. вопросу.

      • xaknet said, on February 17, 2013 at 1:39 pm

        Здравствуйте, спасибо за ответ, согласен на счет переезда, но не все так легко, дело в том, что я хочу остаться в своей стране и делать продукты здесь, но вот вся проблема в том , что начинать здесь сложно, в том плане что нет вакансий на мою специальность (Питонщика), и для переезда нет необходимых навыков и практики в этом деле. Есть к примеру требования – C#, C/C++, php и т.п , а именно Питон еще многим не знаком, я 2 года тратил на то чтобы найти свой язык, начинал с C++, Java, но потом уже почти как полгода года нравится Питон, так как он именно для веб, я не хочу программировать системные или же приложения для десктопа, а именно веб, но опять же столько технологий и фреймворков, что аш глаза разбегаются, а времени мало чтобы каждому фреймоврку уделять время, и тем более если изучать html5 и js, то следовательно нужно знать и php, поэтому я запутался. С другой стороны , что скоро в армию (в июле), не хочеться терять несколько месяцев в пустую. Я не за то, чтобы защищать свою родину, дело не в этом совсем. У нас свои законы, и другие понятия, но есть один + , то что здесь пока я не видел специалистов по Питону и фреймворков, большинство пхпэшников и системных админов.

        • Yakov Fain said, on February 17, 2013 at 3:58 pm

          Я не специалист по Питону и не знаю каким спросом он пользуется в вашей стране. Ты должен для себя решить, чего ты хочешь. Если ты хочешь стать профессиональным программистом (зарабатывать деньги программированием), то посети один из сайтов где предлагается работа в том городе/стране где ты хотел бы жить. Выбери два набора скилз, которые тебе не противны, затем посмотри где ТЕБЕ будет легче устроится для получения максимальной денежной компенсации . Затем изучай именно этот набор (язык, фреймворки, тулзы).

        • Gene_IT said, on February 19, 2013 at 8:22 pm

          “если изучать html5 и js, то следовательно нужно знать и php” – какое отношение имеет PHP к html5 и js? В том плане, что чаще всего требуется PHP? Но в любом случае, html5 и js используется почти во всех проектах как клиентская часть, и невозможно знать все языки, которые могут использоваться при этом на сервере. Поэтому либо надо искать проекты где серверсайд на Питоне, либо искать вакансию фронтэнд-программиста в чистом виде.

  36. Gene_IT said, on February 19, 2013 at 3:05 am

    Спасибо, было очень интересно!

    Мое мнение – заниматься HTML5 стоит, тем более, если есть возможность найти хорошую уже сейчас. Flex – учить с нуля вряд ли имеет смысл, другое дело если его уже знаешь, то почему бы не использовать, если это можно продать? Тем более, что для разработчика на ActionScript JS не составит проблемы, когда понадобится.

    Касательно TypeScript – вполне интересно, но я не думаю, что это так уж отличается JS, насколько я его видел. Любой нормальный разработчик на JS легко это освоит. Всё самое сложное находится в самом JS с его необычным наследованием, передачей функций в виде аргументов, замыканиями итд. С DOM JS программист и так постоянно работает. Поэтому, для более-менее опытного JS-разработчика это всё не составит труда, тем более что всегда можно посмотреть какой JS код генерируется в ответ на введенный TypeScript и сразу станет понятно что и как работает.

    Так что можно работать на HTML5 и на досуге играться с TypeScript – очень может быть, что пригодится.

  37. xaknet said, on February 20, 2013 at 12:54 pm

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

  38. Sanny Sanoff said, on April 11, 2013 at 4:49 am

    Про GWT вообще ни слова не сказали…


Оставь комментарий