Главная/ Блог/ Дуглас Крокфорд: «Лучшее, что мы можем сделать сегодня для JavaScript, — это отправить его на пенсию»

Интервью с создателем формата JSON Дугласом Крокфордом

August 2022

Вступление

Мы поговорили с Дугласом Крокфордом, известным американским программистом, который принимал участие в разработке языка JavaScript. Дуглас — автор книги «Как устроен JavaScript». Он также придумал самый популярный в мире текстовый формат обмена данными JSON.

Интервью

Evrone: Ты работал на знаменитых киностудиях Lucasfilm и Paramount Pictures. Можешь поделиться впечатлениями?

Дуглас: Ранчо Скайуокер — это лучшее место из тех, где я работал: уединённое, не тронутое цивилизацией и прекрасное. Там работали невероятно умные и талантливые люди. Мы смотрели массу фильмов на предварительных показах. Мне выпала честь водить гостей на экскурсии по ранчо. Однажды я показывал ранчо основателю компании Atari Нолану Бушнеллу. Под впечатлением от увиденного он в какой-то момент повернулся к своему ассистенту и сказал: «Мне нужно зарабатывать куда больше денег!»

 

Evrone: В 1997 году ты участвовал в разработке языка программирования «Е». Какой язык был тогда для вас ориентиром?

Дуглас: Дин Триббл разрабатывал удивительный язык под названием Joule. Даг Барнс придумал, как перенести лучшие идеи Joule на Java. То, что получилось, мы назвали E. Мартин Одерски разработал первый компилятор E. Марк Миллер переработал E, устранив многие из недочетов Java. Целью всех этих языков была поддержка разработки безопасных распределенных систем.

 

Evrone: Как ты считаешь, какие изменения в JavaScript будут наиболее важными?

Дуглас: Лучшее, что мы можем сделать сегодня для JavaScript, — это отправить его на пенсию. Двадцать лет назад я был в числе немногочисленных защитников JavaScript. Сочетание вложенных функций и динамических объектов в нём было гениальным. Десять лет я пытался исправить его недостатки и добился некоторого успеха с ES5. Но с тех пор появилась тенденция ко всё большему раздуванию языка вместо его улучшения. Так что JavaScript, как и другие языки-динозавры, стал препятствием на пути прогресса. Нам нужно сосредоточиться на следующем языке, который будет больше похож на E, чем на JavaScript.

 

Evrone: Исторически сложилось так, что JSON противопоставляется XML. Как по-твоему, JSON уже выиграл битву, и XML должен уйти?

Дуглас: Период полураспада XML составляет примерно три года. Можете сами убедиться здесь.

 

Evrone: Ты ратуешь за то, чтобы разработчики регулярно читали код друг друга. Бизнес-выгода здесь очевидна. Но как мотивировать команду принять такой способ взаимодействия?

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

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

Легко убедить умных программистов принять эту практику. Труднее убедить менеджеров, потому что время на чтение кода они считают потерянным. Но на самом деле это точное планирование качества в процессе работы. Как правило, просмотр не занимает много времени, поскольку мы не можем написать за день столько кода, чтобы долго его читать. Но подход будет работать только в том случае, если руководство его требует, и он становится частью культуры.

 

Evrone: В своих прежних интервью ты упоминал, что аппаратное обеспечение стало в миллион раз лучше, а программное сильно отстает. Ты можешь дать совет разработчикам, как улучшить качество кода?

Дуглас: Я уже частично дал такой совет в предыдущем ответе. Кроме того, нам нужны более совершенные языки. Большинство языков программирования были разработаны для парадигмы «вся программа выполняется как единый процесс на одной машине». Для нынешней ситуации это не годится.

 

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

Дуглас: В то время, когда jQuery разрабатывалась, объектная модель документа (DOM) была в ужасном беспорядке. Нужен был слой, который корректировал бы ее ошибки, ограничения и баги, а также улучшил переносимость. jQuery сделала это блестяще. Но с тех пор были разработаны более совершенные стандарты, производителей браузеров в основном убедили соблюдать их, а Internet Explorer наконец-то сняли с поддержки. jQuery тем временем раздулась.

 

Evrone: Возможно ли, что в обозримом будущем появится замена JavaScript для работы с DOM на стороне клиента?

Дуглас: Я надеюсь на это с 1995 года. Тут есть две трудности. Во-первых, у нас ещё нет языка для замены. Это должен быть язык с поддержкой модели акторов и системы минимальных привилегий, спроектированный специально для безопасного распределенного программирования. Ничто меньшее не подойдёт. Во-вторых, нам нужно, чтобы все производители браузеров приняли его и одновременно заменили DOM хорошо сконструированным интерфейсом. Удачи всем нам в этом.

 

Evrone: Ты не только разработчик JavaScript, но и успешный писатель. Над чем работаешь сейчас? Стоит ли нам ожидать в будущем твоих новых книг по JavaScript?

Дуглас: Я только что опубликовал книгу A Million And One Random Digits и её продолжение A Million Nines. В настоящее время я работаю над Lower Mathematics, которая представляет собой переработку математики, начиная с основ информатики: функций и битов. Я больше не буду писать о JavaScript, но когда появится наш следующий язык, я обязательно напишу о нём.

 

Evrone: И под занавес поделись, пожалуйста, своими советами насчёт баланса между работой и личной жизнью. Необходим ли он для того, чтобы каждый день работать продуктивно?

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

Работайте разумное количество часов и выделяйте время для длительных прогулок, здорового питания, общения с семьей и друзьями.

Заключение

Спасибо Дугласу за то, что поделился своими мыслями и рассказал о своем опыте. Это был интересный разговор.

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

JavaScript, как и другие языки-динозавры, стал препятствием на пути прогресса. Нам нужно сосредоточиться на следующем языке, который будет больше похож на E, чем на JavaScript
Дуглас Крокфорд
создатель JSON
Будем на связи
Прикрепить файл
Максимальный размер файла: 8 МБ.
Допустимые типы файлов: jpg jpeg png txt rtf pdf doc docx ppt pptx.