Традиционно фронтенд-разработка считалась менее сложной и более простой в освоении, чем бэкэнд-разработка. Для некоторых даже сегодня фронтенд-разработчики не более чем прославленные дизайнеры. Если вы разработчик HTML, CSS или JavaScript, не отчаивайтесь, потому что этот вид контроля существует почти столько же, сколько и программирование. (Для справки
см. Историю Мела, в которой настоящие программисты имеют дело только с машинным кодом, а ФОРТРАН предназначен для слабаков.)

Эволюция внешнего интерфейса

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

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

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

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

Фронтенд сегодня

В настоящее время фронтенд-разработчики должны знать много чего, помимо обычного
HTML / CSS / JavaScript, есть TypeScript, бандлеры, архитектура и потоковая обработка, по крайней мере, один фреймворк SPA, адаптивный дизайн, тестирование и этот список можно продолжить. Наряду со многими техническими навыками они также нуждаются в хорошем понимании дизайна, что, в свою очередь, предполагает хотя бы мимолетное знакомство с некоторыми приложениями для проектирования UI / UX, такими как Sketch.

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

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

Заключение

Неудивительно, что с таким большим количеством вещей, которые нужно отслеживать, многие разработчики фронтендов доходят до выгорания?

«Когда ваша сфера деятельности меняется так быстро, что лучшие практики устаревают в течение двух лет, вам нужно бежать, чтобы не отставать».

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