JetBrains corporate blog
27 August 2012

Интервью с Джоном Линдквистом, евангелистом JetBrains

John LindquistПросим любить и жаловать: Джон Линдквист (John Lindquist), новый член команды технологических евангелистов JetBrains. В начале августа Джон дал нам подробное интервью, русскую версию которого мы и хотим представить аудитории Хабра. Но довольно предисловий — читайте и знакомьтесь!

1. Здравствуйте, Джон! Мы рады приветствовать Вас в JetBrains. Спасибо, что нашли время поговорить с нами. Вы довольно известная личность — например, в мире Flash, но не могли бы Вы рассказать немного о себе для тех, кто еще Вас не знает?

Конечно. Сначала о своем профессиональном пути: я занялся программированием еще в школе, писал игры на калькуляторе TI-85 вместо того, чтобы заниматься математикой (если не считать hypercard, это было еще раньше). Позже я увлекся написанием собственного программного обеспечения для ведения блогов с домашнего сервера (ASP), а затем перешел к выполнению разовых проектов еще во время учебы в колледже, примерно в 2000 году (php, java). Следующие пару лет разрабатывал внутреннее приложение для Университета штата Юта, предназначенное для отправки/ преобразования для просмотра документов в формате pdf (php, pdf и т.п.). Затем устроился на работу в компанию Schematic и работал с такими клиентами, как Disney, Dell, Target и другими (flash, html). В последнее время работал консультантом в компании Roundarch с такими клиентами, как Bloomberg, HBO, ВВС США (HTML/JS, flex, flash и т.п.).

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

2. Почему Вы хотите работать в JetBrains и над чем будете работать?

В течение нескольких лет у меня был публичный «роман» с IntelliJ (при этом я нашел многих единомышленников). Эта интегрированная среда разработки JetBrains позволила мне сэкономить кучу времени благодаря интеллектуальному рефакторингу кода, проверкам и т.п. Я чувствую, что просто обязан поделиться своими знаниями с миром ;) Кроме того, я очень доволен поддержкой со стороны разработчиков JetBrains в плане реализации моих предложений по улучшению и обработке отчетов об ошибках. Наверное, теперь я буду надоедать им своими предложениями еще чаще, ведь мы в одной команде. ;)

Я специализируюсь на создании видеоуроков (см. ссылку на мой канал http://youtube.com/johnlindquist), поэтому во время работы в JetBrains я буду в основном уделять внимание созданию видеоуроков о различных технологиях / средах разработки и т. п., используя инструменты JetBrains, чтобы подчеркнуть их полезные свойства. Сначала я направлю свое внимание на среды разработки JavaScript с использованием WebStorm, но через несколько месяцев или лет начну отклоняться от основной темы в сторону других языков и инструментов.

3. Что повлияло на Ваше решение переключиться с одной технологии на другую?

Я работаю с интерфейсной частью и люблю создавать нестандартные приложения. Мне неважно, какой язык или платформу использовать — главное, чтобы результат полностью удовлетворял конечных пользователей. Недавно я получил огромное удовольствие, разбираясь с Lua для реализации некоторых своих проектов, просто потому, что этот язык позволяет делать все что угодно. С другой стороны, я думаю, что написание плагинов для IntelliJ (на Java) максимально оправдывает затраченные усилия, так как ими можно поделиться с другими пользователями, и, в конце концов, я пользуюсь ими каждый день. К счастью, у меня достаточно большой опыт перехода с одного языка на другой, поэтому изучение нового языка происходит довольно свободно. Это такое странное ощущение, когда возвращаешься к языку, которым не пользовался несколько лет (например, php), и твои представления о языках, шаблонах, архитектуре и так далее изменились настолько, что кажется, будто ты все начинаешь заново.

4. В чем, на Ваш взгляд, заключаются преимущества HTML5 перед Flash, и что требует улучшения?

HTML (и, частично, HTML5) работает на iPad. Это, пожалуй, единственное, что сейчас волнует клиентов.

Вам стоит посмотреть недавнюю презентацию «The Web Can Do That?» с конференции Google I/O, чтобы понять, насколько потрясающими становятся браузеры. Очень жаль, что весь мир не работает с >Chrome 21, но сейчас наступает поистине удивительное время для веб-разработчиков.

Учитывая, сколько внимания Flash теперь уделяет играм, нужно полагать, что он еще несколько лет будет стабильнее и эффективнее на всех браузерах по сравнению с HTML/JS. Хотя я видел несколько впечатляющих демо-версий игр на JS. Честно говоря, я думаю, что сейчас в сообществах JS такой ажиотаж, мотивация и конкуренция, что они опровергнут любые предрассудки о слабых сторонах JS.

5. Какими из последних функций HTML5 Вы пользовались лично, и получили ли Вы желаемый результат? Вы бы посоветовали другим воспользоваться этими функциями при разработке корпоративных приложений?

Совсем недавно я работал в PhoneGap и использовал WebView для создания мобильных приложений. Ввиду особенностей мобильных устройств (колоссальное разнообразие версий операционных систем и поддержки WebView) приходилось постоянно искать компромиссы для реализации некоторых основных функций (графические жесты, прокрутка и т. п.). Что касается Canvas, WebGL, CSS3, sockets, видео, я приберегу свое мнение на потом, поскольку мой опыт ограничивается прототипами и онлайновыми демо-версиями.

6. Был ли кризис Flash в конце 2011 года единственной причиной прорыва JavaScript?

Отнюдь. Люди любят раскидываться обвинениями и тыкать пальцем. На самом деле, нужно просто анализировать рынок и выбирать наиболее подходящую технологию. Flash возрождается в качестве игровой платформы. JavaScript достиг того «зрелого возраста», когда разработчики начинают рассматривать его в качестве реального решения для создания приложений. Я считаю, что подъемы и падения указывают на рыночные предпочтения в выборе решений. Ни больше, ни меньше.

7. Обладает ли JavaScript достаточным потенциалом, чтобы вытеснить классические языки (Java, C#, C++)?

Моя сестра, блогер, часто «копипастит» фрагменты кода JavaScript, но в Java — вряд ли. Думаю, популярность языков сводится к их «входному барьеру». Если говорить о JavaScript, то для работы с ним не нужно ничего скачивать и устанавливать, к тому же визуально отображаются все вносимые изменения (html и т.п.). Я думаю, что это привлечет будущие поколения разработчиков (хотя уверен, что многие читатели со мной не согласятся).

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

8. Возможно ли теперь создавать корпоративные приложения на JavaScript с клиент-серверной архитектурой?

Корпоративные приложения обычно создаются большими командами, эффективно использующими существующие системы. На сегодняшний день, JS отлично подойдет маленьким слаженным командам, с энтузиазмом относящимся к использованию этой технологии, для создания приложения с нуля. С другой стороны, спросите любого, насколько сложно сегодня нанять команду талантливых высококвалифицированных JS-разработчиков, и вы поймете, как трудно будет собрать большую команду для реализации JS-проекта (особенно если вы хотите привлечь их к созданию «банальных» корпоративных приложений). Я думаю, сейчас как раз тот момент, когда технология готова к использованию, но сообществу не хватает опытных разработчиков приложений, которые бы сыграли роль «корпоративных JS-консультантов». Поэтому рано рекомендовать JS всем компаниям подряд.

9. Что бы Вы посоветовали новичкам и опытным JavaScript-разработчикам (помимо использования JB-продуктов!)?

Новичкам: существует множество хороших приложений, которые ставят интересные задачи. Например, попробуйте разработать twitter, используя фиктивные данные. Затем добавьте дополнительные функции, например, сделайте списки с сортировкой или упорядочиванием по общеупотребительным словам. Выполняйте работу поэтапно и оставьте Stackoverflow открытым в другой вкладке… вы сами не поверите, насколько быстро вы создадите собственное клиентское JS-приложение. Просто наслаждайтесь процессом и не бойтесь делать ошибки!

Бывалым: работайте над проектами с открытым кодом и участвуйте в обсуждениях. Если вы уже достигли определенного уровня мастерства, единственный способ чему-то научиться – позволить другим критиковать Вашу работу. Поверьте, open-source сообщества в совершенстве владеют искусством критики ;)

10. Чем Вы занимаетесь в свободное время? У Вас есть какие-то увлечения?

Я много программирую и/ или читаю специализированную литературу. Я думаю, это и благословение и проклятие одновременно — зарабатывать на жизнь своим увлечением. Иногда думаешь: «Надо больше отдыхать», но вдруг посреди ночи тебя осеняет, ты придумываешь новую классную фичу и прыгаешь прямо в кроличью нору.

Кстати, я люблю бадминтон и играю на гитаре, а еще помогаю с проектами помощи малоимущим.

11. Благодарим за внимание, Джон, и надеемся на положительный вклад в работу JetBrains! Есть ли какие-то события, книги или темы, которые Вы хотели бы обратить внимание читателей?

На данный момент только мой канал на youtube: http://youtube.com/johnlindquist

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

Вы можете получить более подробную информацию и узнать о Джоне на его веб-сайте и в учетной записи в Twitter.

+4
6.8k 9
Comments 3