Создатель Svelte: Веб-разработка должна приносить больше удовольствия

автор vadim


Svelte и ее полнофункциональный фреймворк SvelteKit произвели фурор и завоевали аплодисменты, в том числе недавнюю награду Best of Open Source Software Award, благодаря нестандартному подходу к разработке JavaScript.

Недавно у меня была возможность поговорить с Ричем Харрисом, создателем Svelte, о тенденциях в интерфейсном JavaScript и будущем Svelte. Мы также обсудили многостраничные приложения и одностраничные приложения, приложения и документы, его концепцию «переходного приложения» и запуск проекта программного обеспечения с открытым исходным кодом, среди прочего.

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

Рич Харрис: Я действительно живу в Нью-Йорке, в Бруклине. Однако на самом деле я подал уведомление в «Нью-Йорк Таймс» и теперь изо всех сил стараюсь распределить все свои обязанности перед отъездом. Я начинаю Vercel 8 ноября.

Тайсон: Ах, Vercel — это хорошая синергия со SvelteKit. (Vercel — это интерфейсная платформа доставки.) Я помню, что Vercel недавно добавила поддержку SvelteKit.

Харрис: SvelteKit был частично вдохновлен Гильермо (Гильермо Раух, генеральный директор Vercel), как в том смысле, что он создан по образцу Next.js (Next.js поддерживается Vercel), так и потому, что Гильермо заметил, что пользователи Vercel часто не уверены. каким был «благословенный» способ создания приложения Svelte.

Тайсон: Мне интересно, что Svelte успешно удалось изменить статус-кво, то есть перейти во время компиляции. Как вы и ваша команда научились смотреть на вещи по-новому?

Харрис: Двумя способами. Мы сохраняем здоровый уровень скептицизма по отношению к тенденциям внешнего интерфейса в целом. Люди за пределами мира JS склонны смотреть на тех из нас, кто внутри него, как будто мы все немного глупы, и наша позиция состоит в том, что они очень часто правы.

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

Тайсон: Эргономичность использования Svelte — это то, что изначально привлекло меня как разработчика. Считаете ли вы важным развивать опыт разработчика?

Харрис: Мы делаем. «Опыт разработчика» в определенных кругах почти ругательное слово, потому что предполагается, что оно противоречит опыту конечного пользователя, который имеет приоритет, но это не обязательно так, особенно когда у вас есть большее пространство решений, предоставляемое менталитетом, ориентированным на компилятор. . Svelte — это во многом эксперимент по максимизации UX без ущерба для DX и наоборот.

Это не всегда было правдой. До версии 3 о DX думали второстепенно. Но оказывается, что у вас может быть лучший UX в мире, и это не будет иметь никакого значения, если DX не будет достаточно хорош, чтобы люди действительно захотели его использовать. Люди терпели Svelte 2, но они любовь Svelte 3, и именно с этого релиза мы начали набирать обороты.

Тайсон: В своем недавнем выступлении на Jamstack Conf 2021 вы описываете очевидный конфликт между многостраничными приложениями (MPA) и одностраничными приложениями (SPA), а также то, что это не очень тонкий способ взглянуть на него. В качестве решения вы предлагаете идею «переходного приложения». Не могли бы вы кратко рассказать, что вы подразумеваете под переходным приложением и как SvelteKit вписывается в эту картину?

Харрис: Существует много племенных представлений о «правильном» способе создания приложений, и в последнее время это проявляется в расколе между лагерями традиционалистов и модернистов, которые выступают за создание MPA и SPA соответственно. По крайней мере, это карикатура.

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

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

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

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

Харрис: Я немного рву на себе волосы от людей, которые относятся к документам и приложениям как к совершенно разным вещам с совершенно разными технологическими требованиями. Вся суть интерактивных медиа в том, что документы могут быть похожи на приложения!

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

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

Платонический идеал среды веб-разработки позволит вам создавать сайты, даже не задумываясь о том, какой «тип» сайта вы создаете. Одним из примеров того, как это работает на практике, является ограничение JavaScript, загружаемого конечными пользователями, только тем, что им нужно для «прикладных» частей.

SvelteKit позволяет отключать клиентский JavaScript на уровне страницы, а некоторые фреймворки имеют еще более детальную настройку. Идея о том, что вам следует выбирать фреймворк «документов» или фреймворк «приложений», исключая все остальное, кажется мне ужасно недальновидным.

Тайсон: Позвольте мне спросить вас о Васме. Насколько велико, по вашему мнению, влияние это окажет на фронтенд-разработку в целом и, в частности, насколько велико оно будет для языков, не относящихся к JS, таких как Java или C, используемых во фронтенде?

Харрис: Я думаю, что люди склонны переоценивать влияние Wasm на фронтенд-разработку. Wasm не сделает вас более быстрым обработчиком div. Это определенно открывает новые возможности. Невероятно, что теперь мы можем, например, запускать FFmpeg в браузере. Но я не ожидаю, что большинство из нас будут с ним регулярно взаимодействовать.

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

Тайсон: Можете ли вы рассказать немного о поддержке SvelteKit нескольких сред вывода?

Харрис: Мы сразу поняли, что поддержка нескольких сред таким образом, чтобы в полной мере использовать их уникальные возможности, имеет важное значение. В наши дни нет смысла быть привязанным к конкретной платформе или технологии, такой как серверы Node или Lambda. Благодаря этому мы смогли спроектировать структуру таким образом, чтобы люди могли добавлять свои собственный поддержка новых сред с минимальными усилиями. Есть еще некоторые детали, которые нам нужно выяснить, но в целом это был большой успех, и я не могу себе представить, чтобы в будущем фреймворки работали по-другому.

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

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

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

Тайсон: Отличные мысли – спасибо, Рич. Желаю вам удачи на вашем новом посту в Верселе!

Харрис: Спасибо!

Related Posts

Оставить комментарий