#382 HTML5 and Flex Framework
Разговор во время лыжного отпуска с Анатолием о настоящем и будущем HTML5 и Flex framework или куда бежать молодому программисту.
Качаем или слушаем
Follow @yfainРазговор во время лыжного отпуска с Анатолием о настоящем и будущем HTML5 и Flex framework или куда бежать молодому программисту.
Качаем или слушаем
Follow @yfain
А какое у Вас отношение к надстройкам над синтаксисом Javascript? Typescript – (псевдо)строгая типизация, интерфейсы, главный разработчик – Андерс Хейлсберг. Сoffeescript с его функциональностью. Считаете ли Вы что с их помощью можно писать код, который можно назвать более чистым или более подходящим к Enterprise ?
Спасибо за выпуск! 🙂
Ой, я еще не дослушал а уже написал комментарий про Typescript (blush)
Яков, а вы не смотрели в сторону Embarcadero Html 5 Builder?
http://www.embarcadero.com/products/HTML5-Builder
Embarcadero живее всех живых и выпускает продукты – новые версии Delphi, инструменты для работы в вебе, работа с БД и прочее.
Не смотрели. Мы портировали свой Clear Data Builder для генерации CRUD приложения, у которого клиент на ExtJS, а серверной часть на Java.
Нашел на sourceforge версию для флекса, спасибо.
Вот видео о генерации CRUD app для ExtJS: http://www.youtube.com/watch?v=13PgRSs2At0
У Embarcadero свой велосипед вместо ExtJS, насколько я понимаю. Причем они обещают всестороннюю поддержку для мобильных платформ и простые способы работы с БД (этим они славились всегда). У меня купленная RAD Studio XE3, правда я использую Delphi XE3, остальное просто установлено. На фирме есть задумки (вернее у меня, на фирме пока не знают – homework) покопать в сторону мобильных клиентов. За подкаст спасибо, “копать” в сторону flex не стоит.
Спасибо за классный подкаст. Вот ценю такие технические подкасты больше всего.
У меня есть несколько вопросов:
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 для юнит тестов и для серверных приложений?
1. Зависит от темы главы. Если в главе будут практические примеры, то лучше их написать сначала. Наша книга очень практическая – мы делаем реальное Web приложение, поэтому большинство глав начинается с написания кода.
2. IMHO, Java. Это богатый, но не очень сложный язык для изучения. А знать приципы объектно-ориентированного программирования не помешает. А помощь компилятора действительно очень важна и при изучении, и при разработке.
3. Политики обязательного написания юнит тестов в нашей компании нет. Если некоторым программистам это полезно, то они пишут. У меня нет однозначного мнения насчет полезности их написания. На JavaScript они полезнее, чем на Java, т.к. там легче поломать работающий код. У нас серверная часть всегда на Java, поэтому Node.js пока не используем.
Спасибо, Яков. И еще один вопрос о книге на гитхабе:
На сколько я помню, первые главы были написаны в формате markdown. Сейчас, судя по расширению, используется asciidoc. А чем был обусловен такой переход, с технологической стороны?
На Markdown на том же Github пишутся мануалы и вики страницы. Но, видимо, asciidoc предоставляет более широкий функционал?
И еще вопрос. На сколько я знаю, прошлую книгу Вы писали в Word. Насколько проще или сложнее стало работать с «текстовыми» форматами при написании книги?
На asciidoc больше тагов, что удобнее для книги. Кроме того сервер O’Reilly настроен на asciidoc и дает возможность легко генерировать книгу в режиме pdf и epub так, как она будет выглядеть в печати.
Писать с Word было проще, но реальный формат книги видел только в конце.
И еще один вопрос 😉 А как в таком формате работы вы используете, например, проверку орфографии? Ведь даже самый грамотный человек может очипятатца, а в книге очипяток быть не должно?
Пока писал этот комментарий, нагуглил похожий проект:
https://github.com/hudson/hudson-book#spell-checking-with-ispell
Тут автор использует ispell
Какие инструменты используете Вы?
В написании слов помогает обычный spell checker встроенный в Sublime Text, которым мы пользуемся. Для проверки синтаксиса существуют редакторы издательства O’Reilly.
Начинать с Perl явно не стоит, это язык для профи, с кучей своих особенностей и который довольно сильно отличается от других скриптовых языков. Наверное, это самый сложный скриптовый язык. В создании языка Руби использовался принцип “principle of least surprise”. А Perl как раз язык наибольшего сюрприза. Я говорю о языках вообще, не только веб, включая C, C++, C# и т.д.
Python я считаю лучшим скриптовым языком, очень ясный и красивый, и в целом некая противоположность Perl.
Я просто оставлю это здесь
Ссылку удалил. Оставь ее в другом подкасте. А в техническом не надо мусорить.
Хотел оставить это в свежем выпуске, не думал, что существует жесткое разделение на технические и нетехнические.
Как-то совсем не к месту это видео здесь.
Дякую за випуск.
Спасибо Якову и Анатолию за интересные рассуждения. Где ещё можно послушать такие вещи, даже и не знаю. На ковыряние интернетов времени особо нет, а здесь всё свежее и вкусное, ещё раз спасибо.
Для молодого спеца, слово “JavaScript” в резюме дает гораздо более широкие возможности, чем слово “Flex”. Многие крупные компании считают знание JavaScript плюсом, тк. имеют проекты на соответствующей технологии. По моим наблюдениям соотношение предложений на JavaScript-Flex для back-end разработчиков от 90%-10% до 95%-15%. Если смотреть с такой позиции – JavaScript в гораздо более выигрышном положении.
Анатолий говорит, что Flex это Бусидо для девелоперов. Мол работайте на тру-платформе, не разменивайтесь и вам зачтется. И это тоже подход. А насчет отмирания… в штатах достаточно вакансий для Cobol, Delphi, VB.NET, ColdFusion и тд., по сравнению с которыми Flex – новорожденный. И люди с такими программеско-нишевыми знаниями зарабатывают на уровне с другими разработчиками (не знаю правда, какие возможности для роста, тут вероятно есть проблема), в общем хлеб насущный им есть сегодня и будет завтра. Тем более не прыгая с тренда на тренд есть возможность спокойного роста программиста в серьезного спеца в технологии, что гарантирует востребованность и хорошую компенсацию за труд.
Резюме я вижу в том, что есть разные типы людей – по характеру, темпераменту, целям, и все эти факторы влияют на выбор первого или второго пути. Оба варианта могут быть успешными при правильном подходе и прекрасно, что IT дает такой выбор. Наслаждайтесь и выбирайте рубашку по размеру.
Яков, имею к вам важный для меня вопрос. Хочу подобрать удобную систему для управления проектами/багтрекинга, ибо та, с которой работаем сейчас, по моему мнению не удобна и расходует время в пустую. Так вот:
1. Какую систему управления проектами вы используете?
2. Это одна система для всей компании или каждый отдел/комманда использует что-то своё?
3. Используете ли вы Agile методологию при разработке проектов?
Я бы все же не сравнивал флекс с фортраном, коболом или паскалем.
Последние три – языки, имеющие исполняемый код на выхлопе и не нуждащиеся ни в чем вроде
флеша. ПО, написанное на них еще в 90-х спокойно работает на Windows 8. У вас есть уверенность, что флеш будет актуален через 5-10 лет? У меня нет.
Кроме того, Фортран например имеет огромную базу готового кода для матана и умирать точно не будет более, чем сейчас.
VB.NET вы явно с VB6 перепутали. “Умирать” VB.NET нет никакого резона. Собственно, трансформированный VB6 и сейчас существует в форме VBA.
Замечания справедливые, машинный код это всегда машинный код. Даже если присутствует избыточность кода или длительное время компиляции, программа работает и задача решается.
Про Фортран не упоминал тк. эта вещь вполне даже используется в научных целях насколько я знаю. 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
Не трендовая вещь, а поддерживать и допиливать такие сайты тем не менее кто-то должен.
1. Redmine
2. Для проектов нашей компании да.
3. Типа того. Есть спринты и нет жесткой спецификации того, что будем разрабатывать на следующие полгода. Все время корректируем.
Благодарю. У нас отдел тестирования обеими руками за Redmine 🙂
Посмотрите в сторону Angular.js (http://angularjs.org)
Посмотрел. Грустно это все. Есть два направления:
1. Простое внутри, сложное в использовании (HTML5)
2. Простое в использовании, сложное внутри. (Флекс)
Когда то специализированные языки развивались по приоритетам: простота выражения типичных задач (читабельность), и эффективность выпонения. Подкручивать HTML5 можно, только не надо называть это стандартом. Здесь налицо попытка слегка упростить читабельность за счет HTMLа, с серьезной доработкой на уровне кода, и с проблемами в эффективности. В общем попытка решить проблемы задним числом.
А можно ли на Flex делать динамические формы например, когда сам UI храниться где то в RDBMS?
да
Оценить сложность по сравнению с Flex не могу, но по сравнению с обычным подходом с jquery для создания веб приложений, это работает намного проще в итоге. Для меня решило главную проблему – разделение сервера и клиента. Сервер возвращает данные в json, вся верстка подгружается с сервера сразу, а данные, которые могут меняться от запроса к запросу (относящиеся к пользователю, данные профайла, купленные item’ы, корзина) подгружаются вместе с ответом на любой из API запросов (если изменились на сервере) и тут же без действий с моей стороны отрисовываются в вертстке ангуларом, т.к. я декларативно задал как рисовать верстку из полученных данных. Если нужна гибкость, есть возможность делать hook’и на изменение определенных данных ($scope.$watch()) и некоторые другие возможности. Сейчас использую очень маленькую часть Angular, но она решает почти все мои задачи.
Спасибо! Было очень интересно!
Хорошая фотография!
Спасибо. Снял на прошлой неделе во французских Альпах.
Вы говорите хорошо о флексе и он хорош но если человек занимающийся флексом не подходит вашей компании то у него остается не так уж и много мест где он может работать.
Это правда. Просто компания позиционируется как экспертная группа, а не большой аутсорсинг. Следовательно, мы отвечаем за качество кода ( материально и физически переделывая код). Соответственно требуются профессионалы. А кодировщики без “роста/дефицита” не нужны никому. С другой стороны, мы с удовольствием учим Флексу квалифицированных джавистов, так как квалифицированных специалистов на Флексе не хватает.
Спасибо, отличный выпуск
КОН-ГЕ-НИ-АЛЬ-НО!!!!!!!!!!
Спасибо за подкаст подкаст.
А вобще.
Программисты client side – не настоящие программисты (c) umputun
У нас в команде большинство кодируют клиент и сервер. Я бы повторил Козьму Пруткова : Специалист подобен флюсу: полнота его односторонняя. Профессионал отвечает за продукт. А если при пошиве костюма возникают вопросы: К пуговицам претензии есть? то дело это гиблое
Довольно спорная точка зрения, конечно клиентсайд-программист пишет код, который взаимодействует с серверсайдом, но при этом при грамотном API, ему не нужно знать о серверсайд так уж много. Кроме того, есть фактор времени – программист не может сосредоточиться лишь на одной стороне. В больших и сложных проектах как правило есть чистые фронтэндщики.
Сейчас программирование на client-side –это тренд такой. Раньше client-side программирование сводилось к тому, чтобы менюшку выпадающую прикрутить и снежинки падающие на новый год поставить.
Сейчас же создается все больше приложений, в которых большая часть программирования – это client side. И это делает приложение удобным для пользователя. Я даже не упоминаю Google Docs 😉
Давайте возьмем Trello. Когда я с ним работаю, то даже не замечаю в сети я сейчас или нет. И есть ли связь с сервером. Он работает как декстопное приложение.
Ты не видишь идею этой фразы) никто не говорит, что оно не нужно или неквалифицировано. Более того обоснование Umputun’a было противоположное “трудное, долгое, нудное, я делать не умею”.
У определения “настоящивости” может быть отличное от Будамовского “за что платят большие деньги”
Программирование клиентской части в enterprise applications более трудоемкое, чем программирование серверной стороны.
Наверное, umputun это крупный авторитет в области client side программирования :))
Отличный подкаст, с удовольствие прослушал.
Кстати, а почему было сказано, что у Flex’а нет конкурентов? А как же Silverlight? Очень крутая штука именно для энтерпрайза и очень жаль что Майкрософт его недавно похоронила. Хотя, не смотря на это до сих пор используется и вакансий не так уж мало.
И рейты на Silverlight developer’ов в штатах весьма высокие.
Насколько “крутые” выглядят PL/SQL программисты на фоне Java, iOS, Flex или Web программистов?
PL/SQL – это идин из skills, которые можно иметь в дополнение к этим языкам. Делать карьеру зная только не рекомендуется – рынок маловат. Настораживает слово “круто” в твоем коменте. Не старайся показаться крутым перед соседом, стань профессионалом и делай деньги. Пусть твои друзья будут “крутыми”.
Привет, Яков. Спасибо за подкаст.
Как ты считаешь: что делать флекс – разработчикам в условиях СНГ? У нас в основном оутсорсинг, мы не принимаем технических решений. Доказать заказчику, что в определённых условиях флеш/флекс лучше HTML5 бывает сложно. Тем сложнее, чем меньше у заказчика технических знаний – он слышал модное слово HTML5 и всё, никак его не переубедить, что его продукт сложно, иногда совсем невозможно создать на JS.
Так вот, оставаться нам на флеш, или переходить на что то другое? Переход сейчас это потеря в зарплате, поскольку люди хотят уже готовых людей со знанием всего, что им нужно. Кругозор программистский редко ценится.
Если не переходить, можно остаться в ситуации, когда другой работы в наших краях просто не найти будет.
p.s. Я сейчас занимаюсь разработкой мультиплатформенных Adobe air игр с использованием Starling + FeathersUI(это 2D библиотека и UI framework поддерживающие аппаратное ускорение во флекс). На много удобнее, чем конкурент – Unity, но приходится преодолевать сопротивление менеджеров без программистского беграунда.
В штатах рынок Flash игр очень ненадежен для построения карьеры. В оффшорных странах он должен быть еще хуже. Если ты просто программист, убедить людей, которые делают бизнес на разработке игр почти не реально ибо не только технические преимущества той или иной платформы имеют значение.
Спасибо за отличный подкаст, побольше бы таких.
P.S. Подкаст с Анатолием – всегда праздник 🙂
Этот Толик вообще сомневаться умеет?!!!
Конечно! Как придем в ресторан, никак не решится выбрать блюдо.
Любопытный персонаж.
С одной стороны какой-то явный ассемблер-программист, до сих пор не избавившийся от комплекса, что всё что не компилируется, якобы, плохо.
С другой стороны, упертый в конкретную технологию выход за рамки которой равносилен расстрелу. Ну, вот, что делать, если во флексе нет нужной компоненты? Не предусмотрела адобе её? Нет – значит нам это не надо? 🙂 Ну, да, ну да…
Предсказание о том, что будущий браузерный язык будет похож на экшнскрипт более чем странное. Похож в чём? Синтаксисом? Да ведь все современные языки традиционной парадигмы синтаксически схожи. Лучше тогда сказать, – будет похож на си. Семантически? Так у экшнскрипта очень бедная семантика. Создать язык беднее – ещё постараться надо. Ну, и лучше всего оценивает и язык и его место в современном мире высказывание самого же Анатолия о том, что его программисты (с уровнем тимлида), запертые несколько лет в узком и ограниченном мирке простенького и бедного языка даже не могут осилить не то, что яваскрипт, а даже высокоуровневый фреймворк на нём, уже скрывающий семантическую сложность языка. По-моему, профессиональная деградация, не?
Dime,
Все правильно, да, программировал на ассемблере, виноват, и даже в машинных кодах, так что не всегда с компилятором. Кстати, там семантических изысков тоже не было, и жили не тужили, компилировали в голове, читали перфокарты. Единственное что отличается сейчас это возможность выбора. Раньше ее не было.
В подкасте речь шла именно о специализированных языках и средах программирования, а вовсе не о вселенских вопросах типа компилировать или пусть комп сам догадается.
Все объектно ориентированные языки похожи, и задача системных программистов в унификации а не в изобретении “новых” неизведанных семантических конструкций. Для сравнения рекоммендую посмотреть на компилируемые версии JavaScript такие как JScript.NET и сравнить их синтакс с экшнскриптом. Корреляция будет очень высокой. Если с другой стороны посмотреть на все уловки по созданию объектно ориентированных фрэймверков на классическом JavaScriptе налицо ручная трансляция ОО концептов в “псевдо ассемблер”. Эта ручная, не поддержанная валидацией, проверкой инициализации, оптимизаторами, и прочими отживщими технологиями пропагандируется как святая простота. Извините заранеее, но есть разница между святой простотой и блядской наивностью.
Флекс объединяет декларативный расширяемый (очень важно) НТМЛ с языком программирования. В результате у вас есть возможность решать какие части программы должны стать декларативными и где провести границу между переиспользованием и скриптингом. И в случае ошибки быстро провести рефакторинг.
С уважением
Анатолий
Не очень понимаю зачем нужна унификация, тем более, что она возможна в этом смысле только выборкой минимального подмножества из всех языков. Какой-то это безумный путь. И это всё уже есть. Называется – бейсик. Если вам нужна функциональность не входящая в этот базовый набор, придётся сидеть и ждать когда вендор удосужится включить данную функциональность в и без того гигантский рантайм. Экстенсивный путь и профессиональная деградация прикладников.
Что касается яваскрипта – вы просто хотите от него того, чем он не является. Он не является ОО-языком в тех жёстких рамках в которые вы его хотите загнать в силу _вашей_ привычки или чего похуже. Да, разумеется, если вы хотите писать на яваскрипте в стиле прошловековой давности – бейсика с объектами, вам придётся худо. Хуже может быть только программирование на экшнскрипте полностью игнорируя событийную модель. Представили? Ужаснулись? А ведь в “классическом”, или, более того, “унифицированном” ОО-языке НЕТ событийной модели. Ну, и помогли вам эти ваши ляхи (унифицированность)? 🙂 Пишите на яваскрипте в стиле яваскрипта и будет вам щастье. Да, это делается _иначе_ чем на вашем бейсике, но с чего вы решили, что иначе – значит хуже?
Валидация, инициализация? Да ладно! Пишите на том же кофескрипте. Будет вам компиляция и валидация. Да и сам язык прикольнее яваскрипта и позволит пережить ломку от “неправильности” объектной модели :).
Оптимизация? Да ладно! Вы же на яве пишите. Чем вам JIT-оптимизация плоха? В условиях зоопарка целевых платформ JIT рулит, бибикает и кроет статическую оптимизацию как бык овцу.
И, возвращаясь к подкасту, удивила претензия к HTML по части его многоплатформенности. Ну, да, писать в многоплатформенной среде сложнее, чем в одноплатформенной. Но ведь и результат качественно иной. Ну, пишите только под одну платформу и будет вам ровно как флекс. Ах, придётся затачивать стили под другую платформу? Ну, да, придётся. Так ведь вы получите приложение работающее на двух (и тд) платформах! В случае с флексом вам, да, не придётся ничего ни куда затачивать, но ведь и эти дополнительные платформы окажутся вне вашего покрытия.
Dime,
История повторяется, на новых витках. Какой смысл глядеть вперед если весь опыт сзади?
Итак налицо отсутствие изучения истории и осмысления процессов. Поэтому каленым железом.
1. Унификация необходима для упрощения коммуникаций между людьми. В первые 4 года программирования выучил 40 языков. Поговорить на этих языках было не с кем и не о чем.
2. JavaScript это больше Бэйсик чем все остальное – собственно и делался как таковой. Современная стилистика это попытка объектно ориентированного программированния вручную. Ничем не отличается от первых, объектно-ориентированных библиотек на С, если вспомнить или заглянуть в Википедию, первые версии С++ были макропроцессорами – и числом их было десятки. Соответсвенно, были десятки диалектов С++, с разными библиотеками.
3. Когда убили диалекты С и С++ стало лучше – код портировался быстро, просто, надежно. Компиляторы решали 99% проблем совместимости и надежности. Макропроцессоры и фрэймворки для них тоже.
4. Размер рантайма – ну это просто смешно. Интерпретатор, да с JIT-оптимизацией и своим рантаймом меньше чем просто рантайм? Загружемый на каждой странице и компилируемый на лету JavaScript со всеми фрэйворками меньше чем скомпилированный и пролинкованный до минимума код? В районе версии 3.5 Флекса все оптимизации по загрузке были доведены до нормального состояния – если вы не пишите “Hello World” разница будет не в пользу JavaScript
5. По мере роста количества кода на клиенте проблемы интерпретаторов растут экспоненциально – где модульность, можно или нет деаллоцировать память, как передавать на клиенте данные между страницами/модулями, и т.д и т.п.. Хорошо для обеспечения общей занятолсти, но есть вещи поинтересней.
6. Ну и наконец насчет многоплатформности. Тут я как раз ругал Адобе за то что они не держатся на уровне – много багов, не все работает. Но это касалось ядра, и ни коим образом не маркапа. На уровне НТМЛа в мобильных платформах все так же ужасно. Пусть тот кто написал НТМЛ бизнесс аппликацию (не игру, не паблишинг сайт) с одним исходником для десктопа и телефона отзовется, покажет, и я не только с удовольствием переменю свое мнение, но и попытаюсь воспользоваться идеями.
А пока,
С уважением
Анатолий
П.С.. Есть еще одна вещь о которой никто не говорит. Связана с возрастом. На сборочных линиях электроники в Китае нет людей в возрасте > 30 лет, большинство до 25. Ослабляется внимание, руки начинают дрожать, есть другие мысли/дела несовместимые с необходимостью постоянно концентрироваться на работе. За 10 лет люди изнашиваются в хлам. Инстинкт самосохранения приходит поздно, иногда слишком.
Вы берете одну сторону джаваскрипта и сравниваете ее c as3, конечно же он проиграет. JS – плохой OO язык (и честно сказать вообще не очень хороший язык), но зато у него неплохо удается совмещать ОО и функциональный стили, и это дает интересные возможности, благодаря ним существуют такие замечательные библиотеки как underscore и d3. Flex и HTML 5 нельзя сравнивать только по некоторым параметрам. Надо брать в расчет несравнимо большее js сообщество, огромное колличество инструментов, библиотек и открытость технологии.
Я говорю это по своему, гораздо более скромному, но опыту. Около 5 лет флекса, и вот уже год JS. Джаваскрипт не плохой, и не такой, каким он был в 2005, он другой, и к нему нужен другой подход.
А молодому программисту я бы дал такой совет: не стоит учить флекс без очень веских оснований. Стать сильным программистом можно и с более востребованными языками.
Если у молодого программиста есть шанс попасть в группу сильных программистов, ему должно быть все равно каким языком пользуются в этой группе. Он получит опыт, который несравненно более ценный, чем знание где ставить фигурные скобки и нужна-ли точка с запятой.
С этим спорить не буду. Но кажется это единственный серьезный аргумент в пользу флекса.
+100
Спасибо за отличный подкаст!
“Нужно понять где мы живем. Мы живем в будущем или в настоящем?” – мне кажется данную фразу можно занести в раздел “мыслишки”. Этот принцип применим ко многим жизненным ситуациям.
Вспоминается ответ Жванецкого на аналогичный вопрос:
Так что, раньше лучше было?
Раньше было хуже. А лучше еще будет.
The transcript of the most of this podcast in English is here: http://yakovfain.com/2013/01/21/html5-or-flex-framework/
Интересно мнение участников подкаста о Cappuccino (извиняюсь если вдруг прослушал). Пришлось столкнуться с этим фреймворком по работе. До флекса ему далеко, как ползком до Китая 🙂 , но все же хочется услышать мнение о том, есть ли у него будущее.
Спасибо вам большое за отличный подкаст, за все выпуски и этот в особенности !
Толик прав. Приложение надо создавать под определённую платформу, так как бизнес – процесс будет разным и тут набором css и каким то алгоритмом оптимизации под определённое разрешение не обойтись. А если у компании нет денег на разработку под каждую платформу – так пускай делает говно-приложение, которое удалить хочется сразу после того как установил. Я считаю, если у компании ограниченные средства на разработку стоит упростить сами приложение, но не надо делать универсальным. Честно говоря, не припомню универсальное и удобное приложение для разных платформ, даже от ИТ-гигантов.
И кстати, Silverlight ничем не хуже вашего флекса, даже лучше. Но пипл не схавал, он хавает html5 и похоже Silverlight’у конец. А жаль.
Пипл не схавал, потому, что Микрософт запенетрейтил его всего на половину компов, а вот Адоб вставил до конца (на 99%), excuse my French. 🙂
Что мешало MS разослать Silverlight на все 100% машин под Windows вместе с очередным обновлением системы?
Если речь идет о корпоративных системах то там, видимо, еще проще. Нужный софт устанавливается по распоряжению начальства.
Не подскажешь, почему ie6 остаётся одним из самых популярных браузеров?
Желательно не делать огульных заявлений. IE6 используют меньше 1% тех, кто использует IE вообще: http://www.statowl.com/web_browser_market_share.php. В основном им пользуются докладчики на конференциях, чтобы заработать дешевые аплодисменты.
Да, моя информация взята со слухов, никогда не проверял…
Угу, пока Джобс не вставил свои 5 копеек. А Микрософт не “запенетрейтил” полагаю в первую очередь потому, что понял, пиплу нужен html5 и не захотел писать против ветра.
У меня такой вопрос к ведущим подкаста: если выбирать для своей карьеры интерпретируемый или компилируемый язык, то какой из этих двух путей перспективнее для разработки действительно крупных приложений?
У меня интуитивное впечатление от интерпретируемых языков типа JavaScript, Python, Perl, Ruby, что они предоставляют удобство для разработчика по времени и лёгкости разработки (благодаря фреймворкам и читабельности кода), но имеют невысокую производительность. Могу ошибаться или это действительно не главное.
Интересует совместное мнение и Анатолия и Якова, исходя из рабочей реальности.
А ты сделай свое исследование. Выбери географическую зону, где ты хотел-бы работать и посмотри на работодателей, какие скилы они просят и что за это предлагают.
Мой вопрос относится скорее к общемировой статистике и аутсорсингу рабочей силы.
Понятно, что каждый язык заточен под свои задачи, и где-то лучше использовать одно, а где-то – другое. Вот поэтому я и указал параметр “большие платформы”, которые пишутся с нуля. Потому что, когда ты изучаешь технологию, ты вынужден соглашаться, что серебряной пули нет, и ты берёшь этот продукт, т.к. он подходит для этой области. Но может так получиться, что рынок узкий
Большинство больших систем в США и Европе пишется на платформе Java, затем идет .Net.
Спасибо за полезный подкаст, кстати можно очень быстро сделать себе карьеру благодаря сайтостроению. За неделю можно изучить HTML, а CSS, JavaScript, PHP и MySQL можно применять точечно и при необходимости подучивать во время работы.
Главное – необходимо найти среди знакомых человека с собственным бизнесом и сделать ему бесплатно сайт на приделе своих возможностей, постоянно совершенствуя и улучшая по ходу изучения. Еще лучше – сделать 2 версии, одна для владельца, а вторая для своего резюме.
В моем случае – это была курсовая работа, сайт я сделал для отца друга (промышленные насосы). Ну и вот, еще студентом моё резюме вызывало сумасшедший интерес (2006г) только из-за этого сайта, меня сразу просили оценить сайт их компании (или сделать новый) и я с умным лицом говорил о крошечных недостатках, которые раздувал до вселенских масштабах и меня почти всегда брали на работу на следующий же день. Особенно менеджеры возбуждались от слов “оптимизация сайта для продвижения в поисковых системах”, “увеличение клиентской базы” и т.п.
Самое интересное – это особое отношение к тебе, вроде ты даже и не программист, а тебя уважают и ценят как человека побывавшего на луне. Я думаю это из-за того, что любой человек представляет себе результат работы web-программиста, ибо он сталкивается с множеством сайтов каждый день и ему не надо долго объяснять предназначение настоящей сложной программы.
Вот вы знаете чем занимается электромонтёр? А автослесарь? Вот, а электромонтер занимается ремонтом, например современных станков с ЧПУ и даже самый сложный двигатель покажется примитивной погремушкой, по сравнению с многомиллионным современным станком, но большинство думают, что электрик и электромонтёр – одно и тоже, а автослесарь всяко более квалифицированнее.
Спасибо за подкаст! А можно подкаст о том как обговаривать с заказчиком требования, новый функционал, как сосредоточится на необходимых задачах во время разработки, а не на рюшечках и красивостях.
Похоже вам нужны первые выпуски Радио “Бермудский Треугольник” (btradiopodcast.com)
Спасибо, я их слушал, но я не помню чтобы там точечно разбирались именно они. Меня интересует как построить взаимоотношения с заказчиком для решения его бизнес проблем, а не аля сделать эту кнопочку розовой, а ту параллелепипедом(утрирую конечно). Или всетаки надо иногда так делать?
Мой совет покажется странным, но тут уж извините. Если вы хотите “правильных” отношений, вам придется выучить предметную область как минимум на уровне пользователя системы – или конкурентных систем/ручных процессов. Без этого вы будете говорить о кнопках. Если вы входите в уже раскрученный проект полный проход по функционалу, базе данных и модулям тоже обязателен.
Вообще на раскрученном проекте все намного интересней, так как вы адаптируетесь не к заказчику, а к пользователям. Разница существена, и современные большие проекты должны иметь статус беты минимум год. Примерно через 4-6 месяцев заказчик должен уйти в сторону от разработки системы и сосредоточиться на развитии бизнеса.
Спасибо, на самом деле ответ хороший.
В воскресенье начинаю мой очередной тренинг по Java. В группе 27 человек от Чикаго до Владивостока. Разница во времени между этими городами 18 часов. Снимаю шляпу перед Чикагчанами, которые будут “садиться за парту” в 6 утра, а девушка из Владика подключится в полночь. Всем удачи!
Будет-ли еще курс по Java в этом году не знаю. Возможно, осенью сделаю курс по разработке клиентской части для Web на HTML/JavaScript/CSS.
При всем при этом, сегодня еду встречаться с новым клиентом из большой фирмы на Wall Street – им нужно переделать (и расширить) протал с Флекса ана Флекс. Не пойму я вас, Петровых 🙂
Спасибо за очередной замечательный выпуск, Будам. Хотел бы у вас узнать, как у специалиста с большим стажем в программировании в общем, и в частности на Java. Насколько сильно влияет на позиции Java на мировом рынке то, что этот язык немного “отстает” от своих ближайших конкурентов (си шарп, например) в появлении новых ‘фич’? Многие программисты ругают Java за ее неповоротливость, другие же считают, что так и необходимо развиваться – размеренно. В чем же истина, как по вашему? Спасибо.
По моему мнению, языку Java не нужны новые фичи. Я об этом писал давным давно: http://www.javalobby.org/java/forums/t93251.html.
Новые библиотеки и решения нужны. И люди должны ими пользоваться. Например, concurrent package или Servlets 3.0.
JVM – очень надежная и стабильная платформа и правильнее добавлять новые языки, которые быдут ранаться (выполняться?) на этой-же виртуальной машине.
“курс по разработке клиентской части для Web на HTML/JavaScript/CSS” – это было бы хорошо, если там будут такие вещи как responsive design и т.п., ну то есть, не азы каждой технологии, а именно разработка с учетом современных тенденций.
Яков и Анатолий большое спасибо за интересный подкаст.
Интересует несколько технических вопросов:
– используете ли вы jslint или jshint ?
– какие инструменты вы используете для тестирования (jasmine, qunit….) и для code coverage ?
А как отражается этот некий бум HTML5 (JavaScript) на рынке труда в США, появилось ли больше вакансий на full-time для Js-разработчиков? Или JS остается некоторым второстепенный скилом?
1. Не используем
2. Используем Jasminе. Наш CDB tool даже генерирует тесты.
3. HTML5 пока революции не сделал на рынке труда программистов. Часто его изучают как дополнение к тому наборы скилов, которые уже есть у девелопера или Web дизайнера.
Спасибо за ответы. Вчера прочитал статью (http://blog.ziade.org/2013/01/25/a-new-development-era-essay/), и хотел узнать ваше мнение относительно нее и вообще относительно этого подхода в целом. У вас в подкастах когда-то уже звучала мысль про то чтобы от сервера только получать данные в формате json а всю остальную логику делать на стороне клиента. На данный момент уже есть MV(*C) фреймворки для JS, видел даже несколько проектов сделанных при помощи этого подхода. Если действительно этот подход “распробуют” то стоит ли ожидать в таком случае оживление на рынки для JS разработчиков ?
Читать не буду, но JSON – это сегодняшний компромис по передаче данных между XML и бинарной типизированной сериализацией. Во многих приложениях он годится, а в высоко нагруженных – нет. Часть логики можно делать на клиенте.
Спасибо за ссылку, Будам, почитаю тему!
На счёт JVM тоже так считаю. Платформа хорошая и новые языки с другими парадигмами (та же Scala) открывают больше возможностей на ней.
Яков, спасибо за познавательную беседу.
Близко знаком с 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 или есть еще другие источники? Бывают ли вакансии на территории РФ?
Я сейчас ищу сильного enterprise Flex разработчика (знание Java будет плюсом). Это удаленная работа по контракту и место проживания в РФ может быть любым. Резюме присылать по адресу yfain@faratasystems.com.
Яков и Анатолий, спасибо за отличный подкаст! Всегда приятно слушать профессионалов.
Отчет и планы от adobe:
http://www.adobe.com/devnet/flashplatform/whitepapers/roadmap.html
…. я ничего непонял господа, билеберда блин, Толик можно всё заново и попорядку….
Здравствуйте, подкаст очень понравился, но вот вопросы который мучает меня 2 года и по сей день. Кратко о себе – я закончил 4 ый курс, и есть свободное время до июля (так как в июле в армию). Хочу устроиться начинающим программистом, как ученик , чтобы получать навыки, изучаю язык Python, хотя базовые основы уже знаю, но вот и Django подключил, но мешают вот какие вопросы:
1) А стоит ли вообще браться за Django ? (на данный момент я редко встречаю проекты на Django)
2) Стоит ли смешивать изучение Питона + фреймворки (js, html5) ?
3) Есть ли будущее у Django и Питона в плане востребовательности.
Как Вы говорили в подкасте, что молодой специалист боиться потерять время на изучении той или иной технологии, которая в дальнейшем не будет востребовательна. Я тоже переживаю, что изучу я Питон + Django и останусь не востребовательным, а в нашей стране Азербайджан (нету вакансий на Питонщиков). Нужен Ваш совет очень.
Спасибо заранее Вам.
Привет, Эльдар.
Отвечу я, можно?
>>стоит ли вообще браться за Django ?
Да, стоит. Питон нужная штука, просто СНГ – окраины цивилизации.
>> Стоит ли смешивать изучение Питона + фреймворки (js, html5) ?
Однозначно, питон это в основном веб.
p.s. Вместо защиты родины ехал бы ты лучше в другую страну и устраивался бы программистом. На Украине, к примеру, вашего брата – кавказца уже много, у своих поддержку найдешь всегда + отношение у коренных толерантное. Украина никогда не была страной с проблемами по нац. вопросу.
Здравствуйте, спасибо за ответ, согласен на счет переезда, но не все так легко, дело в том, что я хочу остаться в своей стране и делать продукты здесь, но вот вся проблема в том , что начинать здесь сложно, в том плане что нет вакансий на мою специальность (Питонщика), и для переезда нет необходимых навыков и практики в этом деле. Есть к примеру требования – C#, C/C++, php и т.п , а именно Питон еще многим не знаком, я 2 года тратил на то чтобы найти свой язык, начинал с C++, Java, но потом уже почти как полгода года нравится Питон, так как он именно для веб, я не хочу программировать системные или же приложения для десктопа, а именно веб, но опять же столько технологий и фреймворков, что аш глаза разбегаются, а времени мало чтобы каждому фреймоврку уделять время, и тем более если изучать html5 и js, то следовательно нужно знать и php, поэтому я запутался. С другой стороны , что скоро в армию (в июле), не хочеться терять несколько месяцев в пустую. Я не за то, чтобы защищать свою родину, дело не в этом совсем. У нас свои законы, и другие понятия, но есть один + , то что здесь пока я не видел специалистов по Питону и фреймворков, большинство пхпэшников и системных админов.
Я не специалист по Питону и не знаю каким спросом он пользуется в вашей стране. Ты должен для себя решить, чего ты хочешь. Если ты хочешь стать профессиональным программистом (зарабатывать деньги программированием), то посети один из сайтов где предлагается работа в том городе/стране где ты хотел бы жить. Выбери два набора скилз, которые тебе не противны, затем посмотри где ТЕБЕ будет легче устроится для получения максимальной денежной компенсации . Затем изучай именно этот набор (язык, фреймворки, тулзы).
“если изучать html5 и js, то следовательно нужно знать и php” – какое отношение имеет PHP к html5 и js? В том плане, что чаще всего требуется PHP? Но в любом случае, html5 и js используется почти во всех проектах как клиентская часть, и невозможно знать все языки, которые могут использоваться при этом на сервере. Поэтому либо надо искать проекты где серверсайд на Питоне, либо искать вакансию фронтэнд-программиста в чистом виде.
Спасибо, было очень интересно!
Мое мнение – заниматься HTML5 стоит, тем более, если есть возможность найти хорошую уже сейчас. Flex – учить с нуля вряд ли имеет смысл, другое дело если его уже знаешь, то почему бы не использовать, если это можно продать? Тем более, что для разработчика на ActionScript JS не составит проблемы, когда понадобится.
Касательно TypeScript – вполне интересно, но я не думаю, что это так уж отличается JS, насколько я его видел. Любой нормальный разработчик на JS легко это освоит. Всё самое сложное находится в самом JS с его необычным наследованием, передачей функций в виде аргументов, замыканиями итд. С DOM JS программист и так постоянно работает. Поэтому, для более-менее опытного JS-разработчика это всё не составит труда, тем более что всегда можно посмотреть какой JS код генерируется в ответ на введенный TypeScript и сразу станет понятно что и как работает.
Так что можно работать на HTML5 и на досуге играться с TypeScript – очень может быть, что пригодится.
Спасибо всем за советы, теперь имею представление в ориентировки изучения.
Про GWT вообще ни слова не сказали…