Найти в Дзене

Фронтенд не нужен? Разбираем мифы о разработке

В интернете временами взбулькивает ненависть к фронтенду от настоящих программистов™ — мол, это все игрушки, да и вообще фронтенд не нужен, вон я еще в 98 без этих ваших фронтендов сайты делал. Понятно, что это вообще типично для интернета, а разбирающиеся в вопросе ребята умеют потешить самолюбие другими способами, но все же хотелось бы подробнее рассказать, почему фронтенд, что бы там ни говорили, всё же пожирает мир. Миф 1: Веб вообще не нужен! Каждой задаче — нормальное приложение Некоторые ребята бьют в самый корень — веб как платформа безнадежен, и все приложения нужно писать на qt. Лучше всего на это возразил Джоэл Спольски еще в 2004 году: Сегодня я установил новое приложение гугл-почты: написал в адресной строке "gmail" и нажал энтер. В первую очередь веб — гениальная платформа распространения программ: пользователь просто жмет на ссылку, и уже пользуется вашим приложением. Никакой апстор даже близко не стоял с таким удобством первого использования, я уж не говорю про установк
Оглавление

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

Парень в шапке решает серьезные вопросы, а мы тут кнопки красим
Парень в шапке решает серьезные вопросы, а мы тут кнопки красим

Миф 1: Веб вообще не нужен! Каждой задаче — нормальное приложение

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

Сегодня я установил новое приложение гугл-почты: написал в адресной строке "gmail" и нажал энтер.

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

Если этого недостаточно: программируя под веб, вы получаете кроссплатформенность бесплатно. Допустим, у вас есть отличная идея для стартапа, и осталось сделать приложение. Выбор простой:

  • Продаем квартиру, нанимаем 8 разработчиков, чтобы каждый пользователь получил технически оптимальное приложение.
  • Кидаем монетку: айфон или андроид. Остальным не повезло.
  • Делаем под веб — покрываем все мобилки, да еще десктопы (и винду, и мак, и даже линукс на сдачу).

Единственный небезумный выбор очевиден.

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

Миф 2: Любой сайт можно сделать без фронтенда

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

Во-первых, юзабилити. Если честно ограничиться серверной генерацией страниц безо всяких грязных скриптов, мы увеличиваем время реакции на действие пользователя. Десять минут заполнял форму и наконец отправил? Получай, пользователь, сообщение об ошибке, да начинай заново. Удалил один товар из корзины? Сейчас-сейчас, мне тут из базы достать надо, вас много, а я один.

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

Миф 3: Фронтенд это тривиально, его вообще можно генерировать автоматически

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

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

А вы признаёте фронтенд за серьезную инженерную (или не-инженерную, мне не важно) дисциплину? Расскажите в комментариях!

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