Лица.тостер {javascript}: Джо МакКенн

в 15:18, , рубрики: .тостер, html, javascript, Блог компании .тостер, приложения, разработка, метки: , , ,

Лица.тостер {javascript}: Джо МакКеннДжо, буквально — один из самых больших гостей, которые 25 мая съедутся в Digital October для того чтобы поделиться опытом с участниками конференции .тостер {javascript}. Джо не влазит в стандартное самолетное кресло, о чем он нам с радостью сообщил после нашего приглашения выступить в Москве.

Этот человек уже очень давно работает на мобильном рынке, сейчас занимаясь архитектурой всего портативного направления компании Bazaarvoice — крупного SaaS-агреггатора брендов и их клиентов. Джо занимается исследованием будущего (без шуток) — это называется «device-agnostic», словосочетание с трудом адекватно переводящееся на русский язык, описывает на самом деле очень интересные явления, свидетелями которых мы станем в самое ближайшее время.

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

image

Как давно ты начал писать код?
— Я начал кодить около 12 лет назад, хотя меня вдохновляли компьютеры, программирование и хакерская культура еще очень давно, где-то с ранних девяностых, когда я дурачился с графическим калькулятором TI-81. Было что-то мистическое в том, как введя данные в калькулятор, или набор инструкций, я заставлял его «создавать» или «делать» что-то с ними, выдавая определенный результат. Я до сих пор испытываю трепет от осознания того, в каком месте мы живем — в мире, где мы задействуем машины для решения тех задач, которые раньше были прерогативой человека, притом образованного и обученного.

Что изменилось за эти годы?
— Изменилось все, включая самое понятие «изменения». Мы напрямую видим действие (и противодействие, если угодно) Закона Мура, собственными глазами, уже и на мобильном рынке, а не только на более привычных нам устройствах, вроде ПК. Сегодня мощность iPhone уже превышает мощность PC, которые были на рынке всего лишь несколько лет назад (не более 5 лет). Мне очень нравится и то, насколько стремительно все меняется в области разработки, разрушая стереотипы, образовывая новые ниши на рынке, помогая создавать новые концепты, идеи, продукты. Сегодня парадигма взаимодействия и коммуникации, как таковой, очень расширилась.

Чем ты гордишься больше всего из своего опыта?
— Непростой вопрос. Когда я оборачиваюсь назад и смотрю на те приложения и продукты, к созданию которых я когда-то приложил руку, я вспоминаю то, что я думал об этом тогда и расстраиваюсь: «Вау, это совсем не круто по-сравнению с тем, что я делаю сейчас и что вообще возможно сегодня». Мне кажется это проблема каждого хорошего разработчика, прогрессирующего в своем навыке с течением времени.

Некоторые из продуктов, над которыми я работал во Frog Design были действительтно потрясающими и инновационными, для своего времени, да и сейчас. Мне повезло поучавствовать в проекте, где была задействована альфа-версия 3D-камеры (тогда их не было на рынке) и XNA — фреймворк XBOX 360. Мы создавали «творческое открытие» (по-меньшей мере от нас требовалось создать именно жто) вокруг того, что можно было достать из железяки одного-единственного вендора (которого я не могу назвать). Это было очень круто.

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

Расскажи о наиболее захватывающем опыте создания чего-либо.
— Это может прозвучать как клише, но когда я начал программировать на C++ — я начал видеть результат работы определенного кода, который я написал, и это было очень классное ощущение. Это действительно зажигает огонь внутри меня, заставляя учиться и делать новые продукты, придумывать новое ПО. Вообще я считаю, что писать код — хорошо, это артистически и творчески развивает человека, в то же время позволяя использовать свои аналитические и интеллектуальные способности на полную катушку. Мой мозг работает именно так, поэтому стимулировать его работу в этом же направлении всегда было весело, полезно и здорово.

Какие продукты/технологии ты оцениваешь выше всего?
— Я ярый сторонник опен-сорс технологий и продуктов. С этим можно спорить, но объективно, большая часть самых совершенных и удобных продуктов в мире основываются на открытых технологиях: Linux, Apache, MySQL, Redis, CouchDB и даже такие библиотеки, как jQuery или PhoneGap (теперь известная как Cordova) открыты по своей сути. Все эти технологии сделали возможным создание отличных продуктов и сервисов, которые вряд ли бы получились, не имей мы открытости тех, или иных, технологий и разработок.

Конечно, я уважаю и разработчиков приложений типа Adobe Photoshop, или игр типа Angry Birds. Не все ПО должно быть открытым, но большая его часть — точно. Это залог движения вперед.

Какие инструменты или технологии ты бы порекомендовал к изучению новичками в области разработки?
— Для начинающих кодеров, которые пытаются делать первые шаги в мобильной разработке или простом веб-девелопменте я рекомендую только одно — сфокусироваться на изучении JavaScript, как мощного языка программирования. JS позволяет писать мощные серверные приложения (Node), нативные приложения для iPhone (Phonegap/Cordova, Titanium), мобильные приложения и, конечно, десктопные.

Если говорить отдельно о Node — есть отличные провайдеры, вроде Nodejitsu, которые не только могут захостить ваши приложения, но и предоставить полностью готовую платформу для создания приложений (см. flatiron.js). Express — еще один великолепный продукт, фреймворк, который заставит вас пищать от восторга, особенно если у вас есть опыт работы с Sinatra (ruby-фреймворк).

Наконец, всем тем, кто еще не очень хорошо ориентируется в мире разработки, я могу порекомендовать только одно: лезть с головой в то, что доставляет удовольствие и приносит вам радость, хотя бы сиюминутную (для начала этого вполне достаточно). Кто-то может просто захотеть написать простое iPad-приложение — тогда нужно преследовать именно эту цель, не отвлекаясь на стороннее. Кто знает, может быть именно такой человек, пройдя по пути от новичка до профессионала со своим видением, создаст веб-сервис поддерживающий такое приложение, выучив Python или JavaScript и научившись использовать их на 100%. Количество свободной, открытой информации и литературы, доступной сегодня на тему создания ПО, веб-дизайна и веб-разработки, превосходит любые ожидания. Единственное, что сдерживает некоторых — это отсутствие стабильного и быстрого коннекта и/или отсутствие внутренней дисциплины. Не нужно думать, что все что вам нужно — это образование, я знаю блестящих программистов мирового уровня, которые даже среднюю школу не закончили.

Тогда каков совет профессионалам?
— Разработчикам с опытом я всегда советую оставаться на острие технологий, изучая последние нововведения и разработки, даже если вам кажется, что вы никогда не будете («мне не придется») их использовать. Особенно интересно сейчас движутся вперед облачные и инфраструктурные проекты и провайдеры, такие как Amazon и Rackspace. Сервис, предоставляемый AWS тоже очень крутой и позволяет разработчикам держаться в авангарде. Также стоит знать, хотя бы для общего развития, сегодняшние реалии jQuery Mobile, Sencha, Phonegap/Cordova и Titanium для кросс-платформенной разработки. Платформы, на которых стоит фокусироваться, для меня расположены следующим образом: iOS, Android и, возможно, Windows Phone 7 (я думаю что в России у него неплохие перспективы).

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

Расскажи о технологии или продукте, который ты сделал сам для себя, в свободное время, как у нас говорят: «на коленке».
— В настоящий момент я очень доволен парой своих «продуктов», которые я создал используя HTML5 и Node. Они достаточно простые, но я создал и собрал их в относительно короткий срок благодаря веб-стэкам и опен-сорс технологиям.

1. Gunnar — gunnarapp.com, это drag & drop аплоадер в Rackspace Cloudfiles. Написан с использованием Node, Titanium Descropt и он доступен для скачивания в Mac App Store: github.com/joemccann/gunnar

2. Dillinger.io — это облачный, HTML5-редактор, использующий Node, Redis, jQuery и Bootstrap (точнее его форк). Он позволяет, к примеру, синхронизировать ваши аккаунты на Github и Dropbox: github.com/joemccann/dillinger

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

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

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

Не забывайте отмечаться в событиях на Хабре, что вы идете на .тостер {javascript}, и подписывайтесь на наши официальные каналы в твиттере (@toster_ru), Вконтакте и Facebook'е.

Автор: Shapelez

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js