Мастера разработки: Джон Резиг, автор jQuery

2013-08-09

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

Это он дал нам jQuery, самую распространенную библиотеку JavaScript на планете. Это он дал нам Processing.js, открытый язык программирования для визуализации в вебе. Одна из последних миссий Джона Резига — KhanAcademy, крупнейшее онлайн-сообщество для изучающих программирование. Этот человек постоянно на связи с сообществом (он вообще спит когда-нибудь?), но всё же нашел время на небольшое интервью.

В: Ты как-то исчез из поля зрения в последнее время. Где ты был?

О: Везде :) На самом деле я решил посвятить время разработке приложений и серверной стороне вопроса — тому, на что у меня никак не хватало времени, пока я работал над jQuery.

В: Ты всё еще занят в проекте jQuery, но ежедневное управление передал Дэйву Метвину (Dave Methvin). Что послужило причиной?

О: У меня оставалось всё меньше времени на повседневный баг-фиксинг jQuery, и мне нужно было удостовериться, что проект останется в надежных руках, пока я буду занят в других сферах. Эти ребята проделали огромную работу над библиотекой. Так что она действительно в хороших руках!

В: Кажется, ты всерьез увлекся KhanAcademy. Какова твоя роль в этом проекте?

О: Да чем только я там не занимался. Создал фреймворк, который используется для построения упражнений, помогал с разработкой приложения Khan Academy для iPad, запустил платформу Computer Science, а сейчас работаю над тем, чтобы сервис стал многонациональным.

В: В чем заключается отличие KhanAcademy от других учебных ресурсов по программированию? Какова целевая аудитория, и как вы к ней обращаетесь?

О: Я очень вдохновлен тем, что мы делаем в KhanAcademy. Мы много работали над методами преподавания основ программирования тем, кто никогда прежде этим не занимался. Также мы ищем пути интегрирования системы начального обучения в существующую программу математических наук.

Это очень осмысленный подход и предоставляет возможности обучения в целостной системе, чего не было до этого ни в одной из обучающих платформ. Понимание алгебраических действий, например, — это ключевой момент для понимания переменных. Знание тригонометрии — ключ к успешной работе с графикой. Совмещение этих навыков даёт поистине превосходные результаты.
Что касается аудитории, наш ресурс рассчитан на старшеклассников и студентов первых курсов. На данный момент на ресурсе зарегистрировано 2,9 млн пользователей.

В: Каким ты видишь баланс между традиционной образовательной системой и Khan Academy? Как они могут взаимодействовать?

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

В: Начальный курс программирования, над которым вы работаете, основан на принципах программирования на JavaScript (что неудивительно). Каковы планы на будущее?

О: Мы используем JavaScript и Processing.js для программирования в режиме реального времени, что дает студентам возможность начать работу и взаимодействие с кодом. Сейчас мы ищем способы, которые смогут обеспечить взаимодействие студентов в процессе работы. Когда мы запустили проект, мы включили в функционал возможность «поковыряться» в кодах друг друга. Мы сделали так, чтобы изменения в коде было легко отслеживать, и в итоге студенты помогают друг другу строить свои коды. Наблюдать за этим процессом — одно удовольствие!

В: Ты упоминал о том, что много работаешь над интернационализацией проекта. Как обстоят дела? Насколько это сложно? Какие препятствия возникли на твоём пути?

О:  Я занимаюсь интернационализацией двух проектов, один из которых — как раз сайт KhanAcademy. Это настоящее испытание; у нас на руках крупный ресурс с большим количеством оригинального контента, который нужно перевести. Организовать подвижные элементы сайта и придать им некоторое подобие порядка оказалось очень сложно. К счастью, есть множество инструментов, которые способны помочь в этом деле (к примеру, мы используем библиотеку Jed.js для проведения изменений с клиентской стороны).

В: jQuery — самая распространенная JavaScript-библиотека в мире. Как тебе живется с этим знанием?

О: Круто живется! Очень приятно видеть, как она приносит пользу стольким людям. Потрясающе, что даже в новых браузерах и API нам не приходится сталкиваться с нерешаемыми проблемами кроссбраузерности. Момент полной идентичности всё ближе, и jQuery способствует этому. Я жду того дня, когда мы получим по настоящему унифицированный, простой в использовании API.

В: В последнее время сообщество jQuery отличается снисходительным отношением к тем, кто часто использует эту библиотеку. В этом есть некая доля иронии. Каково твоё мнение?

О: Да уж, это на самом деле парадокс. Я думаю, это проблема большинства людей  воспринимать плохо написанный код с использованием библиотеки как признак того, что любой код, написанный с её помощью  плохой. Конечно, это не так.

Поскольку библиотека jQuery очень популярна, почти каждый может использовать её. Даже те, кто не имеет представления о программировании и занимаются лишь копипастой кусков кода, не задумываясь о дальнейшей работе. Лучшее, что мы можем сделать в таком случае — это предоставить обучающие материалы для тех, кто хочет совершенствоваться в качестве программиста (например, материалы из Учебного центра jQuery).

В: JavaScript очень изменился с момента первого релиза jQuery. Было бы гораздо легче, если бы в то время у тебя были какие-нибудь современные инструменты? 

О: О, да! Мне бы очень пригодился тогда Selectors API. Забавно, но jQuery популяризировала использование CSS-селекторов для поиска DOM-узлов, и именно это положило начало стандартизации. Это ситуация из серии «что было раньше — курица или яйцо?» :)

В: Если говорить в целом, какие ты видишь тренды фронт-енд разработки, и на что бы порекомендовал обратить внимание разработчикам?

О: Как человек, много пишущий на JavaScript, я провожу много времени с Node.js и PhantomJS. Их пространство дает возможность писать на JavaScript на серверной стороне и выполнять все виды скриптинга и разработки приложений. Действительно классно писать на JavaScript и знать, что код будет работать и со стороны клиента, и со стороны сервера.

В: Ты много говорил о переменах в браузерном пространстве. Что скажешь о текущем состоянии браузеров и конкуренции между ними?

О: Думаю, что основное изменение, которое коснется браузеров в ближайшие годы — это акцент на короткий срок новых релизов. Лидером будет Chrome, за ним последует Firefox. Релизы, выходящие каждые три месяца, взамен прежних ежегодных релизов, полностью меняют схему внедрения новых функций и их использования разработчиками. Любой браузер, который хочет остаться конкурентноспособным, должен успевать за этой стремительной гонкой.

В: Карен МакГрэйн (специалист по контентной стратегии, информационной архитектуре и интерфейса, основатель и управляющий партнер консалтинговой компании Bond Art+Science — прим.переводчика) на одной из конференций упомянула о том, что 31% американских пользователей Интернета выходят в сеть через мобильные браузеры. Каковы твои мысли о текущем состоянии мобильных браузеров, особенно в отношении доступности образовательных материалов Khan Academy?

О: Чем больше людей имеют доступ к мобильной версии сайта или ресурса – тем лучше. Khan Academy не рассчитан для этих целей, но у нас есть проект KA Lite, который предоставляет такую возможность.

В: Несколько лет назад много говорилось о концепте прямого включения библиотек JavaScript в браузер для улучшения производительности. Как думаешь, об этом ещё есть смысл рассуждать?

О: Я всё ещё считаю это возможным, но сложно оценить, какие это принесёт преимущества. Если бы код был предварительно скомпилирован и просто лежал в памяти, это привело бы к повышению скорости. Но, зуб даю, увеличение производительности в таком случае было бы гораздо меньше, чем общие улучшения DOM.

В: Наконец издана твоя книга «Секреты от ниндзя JavaScript» (Secrets of the JavaScript Ninja). Расскажи о пути, который прошла книга.

О: Да уж, это было долгое путешествие! Большую часть содержимого я написал в 2008–2010 гг., а мой соавтор, Бир Бибо, работал над ней в 2011-2012 гг. И я считаю, что всё в ней изложенное полностью соответствует современным принципам разработки.

Первая часть книги посвящена практике программирования на JavaScript и тонким нюансам. Во второй части читатели узнают о DOM и о написании кроссбраузерного кода. Эти две темы до сих пор являются основными в программировании на JavaScript и полезны всем — и программистам среднего уровня, и опытным.

В: Готов написать ещё одну книгу?

О: Ну уж нет! По крайней мере, не печатное издание точно. Гораздо больше мне нравится писать заметки в блоге или статьи. Даже если когда-нибудь созрею до новой книги, скорее всего, буду издаваться сам и выпущу её только в электронной форме.

В: Ты сейчас живешь в Нью-Йорке. Есть различия в сообществе программистов Бостона и Нью-Йорка?

О: Нью-Йорк я люблю. Я повстречался тут со множеством разработчиков, и их жизнь здесь просто кипит: тонны встреч, лекций, хакатонов и прочих мероприятий. Я здесь пока не так давно, но складывается ощущение, что сообщество всё растёт.

В: Под конец поговорим о повседневной жизни. У тебя, кажется, появилось новое хобби. Расскажешь?

О: Конечно! В последнее время я уделял много времени искусству и открыл для себя одно интересное направление: японская ксилография. Этот вид искусства был популярен в XVIII-XIX веках. Изображались обычно самураи, воины, божества, красивые женщины и пейзажи. Изображения тех времён удивительно живы и близки современному человеку. Я настолько увлёкся, что задействовал свои навыки программирования и создал веб-агрегатор для поиска принтов по архивам музеев со всего мира. За это я получил множество благодарных отзывов от культурологов из разных стран, и это — самое приятное.

Перевод: Люся Ширшова. По материалам Net.Tuts.

Комментарий редакции: 

Dave Methvin, президент jQuery Foundation, принявший в свои руки управление проектом, 15 октября выступит в Москве на международной конференции jQuery Russia

Смотрите также: 

Первая работа: как стать java-стажером?

Новое в JDK8, Maven - от новичка до мастера и другие доклады по Java

jQuery Russia: мировая конференция приходит в Россию!

Вакансии разработчиков JavaScript можно посмотреть здесь