Статьи

Подкаст SitePoint № 39: Интернет-фьючерсы с Алексом Пейном

Эпизод 39 подкаста SitePoint теперь доступен!

Полная стенограмма интервью приводится ниже.

Скачать этот эпизод

Вы также можете скачать этот эпизод в виде отдельного файла MP3. Вот ссылка:

  • Подкаст SitePoint № 39: Интернет-фьючерсы с Алексом Пейном (MP3, 18,5 МБ)

Стенограмма интервью

Кевин: 4 декабря 2009 года. Ведущий API Twitter делится своими мыслями о том, куда ведут технологии, которые мы используем для создания Интернета. Это подкаст SitePoint № 39: Интернет-фьючерсы с Алексом Пейном.

Кевин: Это Кевин Янк для подкаста SitePoint в Перте для конференции Edge of the Web, и я здесь с Алексом Пейном, одним из разработчиков, фактически ведущим разработчиком API Twitter. Это правильно?

Алекс: Да, это я.

Кевин: Я полагаю, что многие люди, встречаясь с вами, сразу же думают об API Twitter и обо всем, что стало возможным; с вашей точки зрения, что означает API Twitter для Twitter?

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

Кевин: Таким образом, это позволяет пользователям, в некотором смысле, сказать вам, реализуя вещи так, как они хотят использовать сервис.

Алекс: Да, определенно.

Кевин: Итак, ваш разговор был более общим. Это было действительно о том, откуда мы пришли в веб-технологиях и куда мы можем идти. Одна из вещей, которые вы упомянули, которая действительно вызвала у меня интерес, заключалась в том, что все больше и больше веб-сервисов, таких как Twitter, могут и должны исследовать методологию, основанную на API, чтобы они могли создавать свои API, а затем «есть свою собачью еду», как вы сказали в создание своего веб-интерфейса пользователя. Можете ли вы сказать, что это подход, который был принят в Твиттере, и можете ли вы вспомнить другие примеры, где этот подход работал?

Алекс: Ну, я слышал от людей из команды Flickr, что это своего рода подход к их архитектуре. Это не тот подход, который мы использовали в Твиттере. Наш API-интерфейс выпал из нашего ориентированного на пользователя приложения, и если бы мы могли сделать это снова и снова, я бы предпочел начать с API сначала, потому что это был наш основной источник трафика, а частично, потому что проблемы API, проблемы дизайна, проблемы производительности как бы укрепляют ваши взгляды на вашу систему.

Кевин: Я технический парень, что бы ты сказал о технологии в Твиттере? Я думаю, что не только веб-языки, которые вы, ребята, используете, но я имею в виду, вы все люди Mac в Твиттере?

Алекс: По большей части, да. Я думаю, что все сейчас работают на оборудовании Apple, все наши инженеры. У нас есть пара человек, которые загружаются в Linux изо дня в день, но по большей части мы все люди Mac.

Кевин: Круто. И вы упомянули в своей речи в основном, что в какой-то момент вы работали на Mac с предустановленным PowerPC, так что вы, должно быть, пережили плохие времена, когда были пользователями Mac.

Алекс: Да. Я думаю, что это был Performa 575 лет и много лет назад, и вскоре после этого я получил свое первое оборудование Wintel и ушел в страну Linux, пока OS X не улучшилась настолько, чтобы люди могли его использовать.

Кевин: Ладно, ты переезжал?

Алекс: Да, и я рад, что сделал. Я имею в виду, я думаю, что, как и многие люди из Mac, у всех нас был такой кризис веры в течение нескольких лет, и мы учились Linux, и это оказалось своего рода активом карьеры, понимаете?

Кевин: Есть ли у вас причины для использования Mac сегодня, они отличаются от причин, по которым вы использовали Mac в то время?

Алекс: Я имею в виду, тогда это было то, что было вокруг дома. Сегодня более того, что ни у кого такого нет такого «из коробки», все работает с опытом, и никто больше не производит аппаратные средства такого качества, которые просто сбивают с толку. Как и в некоторые дни, я бы предпочел работать на Linux, чтобы я мог делать странные вещи, такие как запуск оконного менеджера, но, глядя на аппаратное обеспечение сторонних производителей, никто не делает хорошие вещи, даже если вы хотите потратить 2500 долларов, это просто очень сложно. чтобы получить хорошую машину.

Кевин: Да, по иронии судьбы, одним из последних противников Mac в офисе SitePoint был наш дизайнер, а недавно он просто пошел искать ноутбук и совсем не собирался покупать Mac, но не смог найти ноутбук хорошего качества и в итоге купил Mac по этой причине.

Алекс: Да, это действительно очень удивительно. Я не знаю, о чем думают Деллс и Сонис, но это очень странно.

Кевин: Итак, одно из различий, которые вы провели, говоря о различных языках веб-программирования, которые сегодня присутствуют в миксе, состоит в том, что вы различаете языки общего назначения, которые используются в Интернете, и языки, такие как PHP и JavaScript, которые были задуманы для Интернета, и вы упомянули, что у этих языков, созданных для Интернета, есть тенденция к сокращению срока службы. Почему ты так думаешь?

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

Кевин: Говоря о странностях, у нас тут немного шума, но продолжай.

Алекс: Так что я думаю, что отчасти это объясняется тем, что людям, работавшим над языками более общего назначения, приходилось удовлетворять пользователей в самых разных областях. У них есть академические пользователи, научные пользователи, люди, создающие настольное программное обеспечение, люди, строящие программное обеспечение для серверных сайтов, и я думаю, что это как бы округляет язык, заставляет, как Гвидо ван Россум или Мэтц мира, расширяться за пределы своей первоначальной концепции. языка и выяснить, как мы улучшаем API, как мы улучшаем основные библиотеки, и тому подобное. Если язык нацелен на Интернет и имеет более узкую аудиторию, я думаю, вы никогда не увидите такого рода перекрестного общения между программистами и различными дисциплинами. Например, PHP стал намного лучше, когда вы могли начать использовать PHP на стороне клиента или, извините, для сценариев командной строки и тому подобного. Внезапно язык стал более устойчивым, и теперь я думаю, что JavaScript проходит этот процесс и сейчас, когда люди используют такие вещи, как виртуальная машина Rhino JavaScript для выполнения кодирования на стороне сервера. Кажется, что они переосмысливают язык и как бы улучшают его.

Кевин: Таким образом, чем больше вариантов использования, тем сильнее становится язык.

Алекс: Кажется, так.

Кевин: По этому поводу, и это то, что вы упомянули также в своем выступлении, что в Интернете кажется, что лучшая технология не всегда выигрывает, и это то, что Марк Пилигрим поднял на этой неделе, глядя на старое. перечислите сообщения о <img> Является ли это проблемой в Интернете, что вещи, которые развиваются только в контексте Интернета, не всегда являются технически превосходными решениями, и становится ли это хуже или лучше?

Алекс: я не знаю. Я иду туда и обратно по этому вопросу. Я имею в виду, что это давняя дискуссия в области технологий, она восходит к тому, что Гай Стил говорит: «чем хуже, тем лучше». Я думаю, что в Интернете полезно то, что мы переживаем такой постоянный период эволюции, отчасти отбрасывая старую кожу, что если технологии, которые мы используем сегодня, немного ошибочны, легче сделать переход к следующему набору технологий. Если бы у нас были совершенные решения или решения, которые даже охватывали бы 80% или 90% случаев, каждые три или четыре года было бы намного сложнее заново изобретать Интернет, заново изобретать, как мы все это делаем.

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

Алекс: То, что я пытался сделать в течение последних нескольких лет, это то, что я потратил большую часть своей дневной работы, работая в Ruby on Rails, которая была, по большей части, невероятно продуктивной, мы только что проделал тонну работы в этом фреймворке в Твиттере, но снаружи я потратил много времени на изучение других языков программирования, пытаясь взглянуть на проблемы вне веб-пространства, и особенно на проблемы, которые немного ниже уровень, чтобы он как бы уравновешивал. У вас есть очень высокоуровневое ориентированное на фреймворки мышление, где вы просто сосредоточены на том, «как мне достичь этих бизнес-целей для Интернета в максимально короткие сроки?». Это один из способов мышления, но затем сказать, как я собираюсь реализовать весь язык программирования или даже смотреть на проблемы в области безопасности, в которой я работал. Это просто дает вам совершенно иную перспективу.

Кевин: Вы как разработчик API, создатель API, должны иметь уникальную перспективу, потому что люди с таким количеством разных инструментов на разных языках используют этот API. Таким образом, вы должны создать что-то, что работает естественным образом, независимо от того, является ли потребительская сторона разработчиком Rails, разработчиком PHP?

Алекс: Хорошо, я имею в виду, к счастью, поскольку Twitter является более или менее RESTful API, на большинстве языков существуют соглашения для работы с веб-сервисами RESTful, поэтому мы как бы получаем выгоду от всего этого мышления.

Кевин: Итак, вы только что закончили книгу для О’Рейли о языке Scala, продайте меня на языке Scala.

Alex: Хорошо, так что Scala в двух словах: преимущества в том, что у вас есть объектно-ориентированное программирование, с которым все уже знакомы и с которым вам удобно, у вас есть функциональное программирование, которое многие люди немного узнали. но, как правило, они обнаружили, что синтаксис или библиотеки на функциональном языке, который вы выучили, были Lisp, или Occam, или Haskell, или что-то, чего немного не хватало. И хорошая вещь в Scala заключается в том, что, поскольку она основана на JVM и полностью совместима со всеми этими библиотеками, вы можете сразу воспользоваться преимуществами 10, 12-летней истории Java. Таким образом, мы можем думать о Java как о, возможно, не самом сексуальном языке, но есть большая коллекция библиотек, которые были написаны за эти годы, люди решали действительно сложные проблемы на Java в течение десятилетия, а в Scala вы можете работать в прекрасном язык, который немного больше похож на Ruby или Python или что-то такое, что нравится большему количеству разработчиков, но вы все равно получаете все преимущества JVM.

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

Алекс: Да, именно так. Я имею в виду, я знаю, что многие люди интересуются Erlang как своего рода первым функциональным языком, и Erlang великолепен, и он особенно хорош для проблем с сетевым сервисом, но он гораздо более ограничительный. Все должно быть неизменным. Таким образом, вы назначаете переменную один раз, вы не можете назначить ее снова. Это совсем другой способ мышления, чем мы привыкли во многих языках ООП, и он очень специфичен в отношении такого странного синтаксиса, основанного на Прологе, и всего остального. Со Scala это немного прощает. Язык оставляет программисту чуть больше вопроса о том, хотите ли вы работать в объектной парадигме или функциональной парадигме, хотите ли вы решить проблемы параллелизма с более активной моделью актера в стиле Эрланга или хотите ли вы вернуться к традиционной Java нить и тому подобное.

Кевин: И поскольку именно в JVM у вас есть свобода, вы можете создать определенный модуль в Java, а затем использовать что-то вроде Scala для доступа к нему.

Алекс: Да, именно так. Например, если вы работаете в стеке Java, таком как Hadoop, у вас есть все возможности Hadoop, доступные вам. Вы можете просто без проблем позвонить в Scala. Такие вещи позволяют сэкономить много времени.

Кевин: Итак, как вы сказали, Scala работает на JVM, что вы думаете о JVM как платформе? Ясно, что за этим стоят многие годы, и это прочная, мощная основа, но я не знаю, я не так уверен в Солнце, как раньше. Считаете ли вы, что JVM освободилась достаточно от Sun, что, если худшее станет худшим и Sun рухнет, JVM удовлетворительно уйдет?

Алекс: Я так думаю. Я имею в виду, что несколько месяцев назад я был на JVM Language Summit, и я ни в коем случае не являюсь экспертом по JVM, но похоже, что между Sun и IBM и всеми остальными, кто зависит от экосистемы Java, кто-то выберет до мантии JVM. Там слишком много хорошего проектирования, и теперь есть проект OpenJDK, а также другие различные дистрибутивы JVM. Так что я думаю, что выбор довольно большой.

Кевин: В дополнение к функциональным языкам, одно из других, своего рода «уколов в темноте» предсказаний о будущем, которое вы сделали, заключалось в том, что сервис-ориентированные архитектуры придут к своим собственным идеям, идея, которую мы собираемся стать Достаточно удобно создавать многократно используемые компоненты программного обеспечения для Интернета, и мы сможем объединить их согласованными и стандартными способами. Похоже, это как функциональные языки, которые мы всегда слышали: «О, в следующем году они действительно придут в голову». Эти идеи чистых программных компонентов, особенно в Интернете, всегда, кажется, уходят примерно через год и затем, когда все успокаивается, ручные кодеры начинают что-то новое и захватывающее. Какое-то время их WYSIWYG казалось, что это будет почти разумный способ работы, а затем внезапно появился CSS-макет, и нет, нет, обратного кодирования.

Алекс: Да.

Кевин: Есть ли еще одна волна сумасшедшего кодирования, которая смоет эту SOA?

Алекс: Это вполне возможно, да. На самом деле, я думаю, что в некоторой степени языковая штука JVM может немного подстегнуть это. Я видел, как все больше и больше программистов, за которыми я следую в Твиттере, выбирают такие вещи, как Clojure, и люди создают эти микро-веб-фреймворки в Clojure, которые как бы близко отражают то, что люди делали в сообществе Ruby за последние пару лет. годы и весь подход очень похож на то, что каждый проект очень легкий, очень сделанный на заказ, вы просто кладете эту тонкую фанеру поверх других библиотек и взламываете что-то вместе, и Лисп всегда поощряет это, что-то более гибкое как игровая методология разработки, а не такая большая корпоративная SOA. Так что, если все больше и больше программистов запрыгивают на этот тип победителя, то я думаю, что вы абсолютно правы. Мы можем увидеть другую волну «ну, давайте просто взломать ее вместе, пока она не сработает, а затем перейдем к следующей интересной проблеме». Это всегда фундаментальная часть культуры хакера, верно?

Кевин: У меня последний вопрос, и он связан с идеей, что эти веб-сервисы создаются и, похоже, особенно в случае с такими вещами, как Twitter, не-веб-интерфейсы пользователя. Как вы сказали, Я думаю, вам было проще объяснить вашей маме, как работает Twitter, когда он был настольным клиентом, который выглядел как обмен мгновенными сообщениями, а не веб-страница. Мы когда-нибудь дойдем до того момента, когда веб-сервису не нужно будет иметь веб-интерфейс, и это чистый веб-сервис, а основной пользовательский интерфейс отсутствует в веб-браузере? Я знаю, что Кэмерон Адамс, один из дизайнеров Google Wave, говорил около месяца назад на Web Directions South, и он сказал, что наиболее интересной задачей, с которой он столкнулся как дизайнер интерфейса для веб-клиента Wave, было то, что ему нужно было сделать что-то, что достаточно хороший, который привлечет людей к сервису Wave, но не настолько хороший, что он разрушит этот рынок для сторонних не-веб-клиентов.

Можем ли мы добраться до точки, когда веб-браузер не самая важная вещь для веб-службы?

Алекс: Да, я очень на это надеюсь. Похоже, что все больше и больше мест в Интернете действительно не имеют ничего общего с Интернетом. Интернет просто является средством доставки, но мы больше не доставляем гипертекст. Например, если вы думаете о видеосервисе Hulu, который довольно популярен в США, я имею в виду, что он заменяет телевидение на целую демографию. Это действительно не имеет никакого отношения к тому, чтобы быть в сети. Я имею в виду, что вы можете как бы переходить от одного шоу к другому, но они очень быстро доставили, я полагаю, приложение на основе Adobe AIR, может быть, через несколько месяцев, возможно, через год после их запуска, и для большинства моих друзей это теперь их телевизор. , Это приложение Adobe AIR, которое общается с Hulu и транслирует видео. Веб-сайт в основном состоит в том, что вы регистрируетесь на нем, а затем они указывают на приложение Adobe AIR, и это действительно лучший способ взаимодействия со службой.

Кевин: Я должен сказать здесь, в Австралии, где мы не получаем Хулу, мы все безумно ревнивы.

Алекс: Ребята, у вас есть Spotify?

Кевин: Нет, нет, у нас даже этого нет.

Алекс: У тебя нет Spotify? Да, в США это похоже на компромисс: у нас есть Hulu, но у нас нет Spotify, но вы, ребята, облажались.

Кевин: Мы ничего не получаем.

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

Кевин: Алекс @ al3x в Твиттере, и спасибо, что нашли время, Алекс.

Алекс: Большое спасибо.

Кевин: И спасибо за прослушивание подкаста SitePoint. Если у вас есть какие-либо мысли или вопросы по поводу сегодняшнего интервью, пожалуйста, свяжитесь с нами.

Вы можете найти SitePoint в Твиттере @sitepointdotcom , и вы можете найти меня в Твиттере @sentience .

Посетите sitepoint.com/podcast, чтобы оставить комментарии к этому шоу и подписаться на получение каждого шоу автоматически. Мы вернемся на следующей неделе с новым показом новостей и комментариев с нашей обычной группой экспертов.

Этот эпизод подкаста SitePoint был создан Карном Броудом, а я — Кевином Янком. А сейчас до свидания!

Тема музыки Майка Меллы .

Спасибо за прослушивание! Не стесняйтесь сообщить нам, как у нас дела, или продолжить обсуждение, используя поле комментариев ниже.