Мне крайне интересна сфера веб-разработки, но медленно склоняюсь к мысли, что ныне доступные интерфейсы (HTML/CSS/Javascript) никуда не годятся. Нынешняя front-end разработка действительно настолько плоха, или же я просто что-то не знаю?
Такой злободневный вопрос задал пользователь сайта Quora, а пользователи попытались найти ответ. Самые интересные - в нашем материале.
Роберт Манн, занимается созданием программного обеспечения
Сейчас данная сфера выглядит намного лучше, чем 10-20 лет назад. Кроме того, она стала значительно более сложной и приобрела огромное множество самых различных составляющих. Заметно увеличилось количество и качество как инструментов и технологий в данной сфере, так и доступность учебных материалов. В прежние десятилетия практически отсутствовал публично доступный технический контент - тогда еще не было ни блогов, ни крайне полезных Mozilla и Wikipedia, а также крайне редко использовалось видео и приложения, требующие высокой пропускной способности.
Зато сегодня при помощи одного щелчка мыши можно найти бесплатные видео, блоги, учебные пособия и отлично структурированную научно-техническую информацию практически по любой теме.
Теперь, говоря непосредственно к front-end разработке, важно понимать, что в данной сфере существует три основных сегмента: разработка для ПК, для мобильных телефонов и для других устройств. Если вы хотите понять, в чем разница между этими сегментами, то, к примеру, зайдите на Netflix со своего телефона, компьютера и при помощи смарт-TV.
Если же вопрос касается особенностей набора инструментов, к примеру, некоторой непонятности CSS, то это достаточно сложный вопрос. В этом случае стоит учитывать, что созданные еще в 1995 г. контент, сайты и приложения продолжают до сих пор использоваться в нынешних браузерах. Я работал над реорганизацией созданного 20 лет назад сайта, занимающегося электронной торговлей, и все это время сайт прекрасно функционировал. Подобное возможно благодаря использованию сети в качестве рабочей платформы, когда мы можем обновлять код, изменять интерфейс и улучшать функциональность, в то время как сайт продолжает работать.
Гарри Тейлор, занимается программированием больше 25 лет
Честно говоря, нынешняя front-end разработка действительно очень плоха.
HTML, CSS и JS – худшие технологии в своем классе, они проигрывают любое сравнение графическим интерфейсам Mac или Windows. И именно они используются для современной сети, которая теперь является платформой не для создания документов, а для создания приложений, что не может не ужасать.
Для работы с документами можно, конечно, использовать HTML или, к примеру, CSS, но лишь исходя из той мысли, что создать что-либо можно самыми разными путями и при помощи самых разных механизмов. Правда, все мы знаем, что JavaScript – это не самый главный и ведущий язык.
Front-end разработчики постоянно подвергаются критике, потому что всем кажется, что их работу очень легко выполнить. Хотя, на деле, все совсем не так, ведь используемые в данной области языки программирования и инструменты далеко не идеальны.
Да, все это не очень хорошо, но что есть, то есть. Нам приходится мириться с существующей ситуацией, мы ничего не можем поделать. Сейчас, в 2017 г., нам приходится иметь дело с основным направлением развития данной сферы, которое было задано еще в 1995 г.
Все, что вы можете сделать в сложившейся ситуации – это постараться использовать имеющиеся средства наилучшим образом. Выберите достойные доверия редакторы HTML и программные платформы, например, Bootstrap. Используйте JavaScript или любой другой язык программирования, транслируемые в JavaScript. И снова повторю: постарайтесь извлечь максимум из этой далеко не лучшей ситуации.
Если вы раньше работали с Cocoa на основе Mac или с UWP/WPF для Windows, то перейдя на HTML или CSS, вы будете ощущать себя вернувшимся в каменный век. Но суть в том, что у нас не всегда есть выбор, поэтому все, что нам остается делать, это наилучшим образом использовать имеющееся.
Роберт Аллен, изучил HTML еще до того, как CSS стал мейнстримом
Ситуация с HTML/CSS/JS далеко не столь ужасна, просто она не столь однозначна, как в случае с объектно-ориентированным программированием и графическим дизайном. Некоторые вещи действительно выглядят бестолковыми, но с большего ситуация не так уж и плоха. В наши дни веб-дизайн стал в разы более сложным, чем был тогда, когда все делалось вручную.
HTML – голый контент с минимальным стилем, идеально управляем при помощи системы управления конфигурациями (CMS). Работа с ним вряд ли станет для вас проблемой, если вы, конечно, не работаете в формате «копировать/вставить из MS Word», что всегда приводит к возникновению проблем.
CSS – существует буквально невидимая система, контролирующая приоритет операций. Постоянные скачки назад по коду, чтобы изменить классы различных объектов, выглядят как ночной кошмар разработчика, кроме того, постоянно приходится использовать Chrome Console, чтобы получить достаточно полномочий для преодоления существующих в CSS ограничений и инструкций.
JS - JavaScript это JavaScript. Существует достаточное количество библиотек с готовыми скриптами, чтобы зря сотрясать воздух по поводу данного языка.
Как правило, использование HTML не приносит проблем. Тщательно планируйте свою работу с CSS, создавайте дополнительные классы и идентификаторы, которые могут понадобиться вам в будущем, и все будет в порядке. Не нервничайте зря по поводу пользовательских сценариев в JS, если только это не крайняя необходимость.
Каролина Вебстер, руководитель отдела в NASA (с 2009 г. по нынешний момент)
Веб-разработка все еще нужна. Скорее, все дело в тех инструментах, которые используются.
Почему веб-разработка все еще имеет смысл?
- Сейчас HTTP/HTTPS становятся главными протоколами для интернета. Другие протоколы используются в меньшей степени.
- В системах с распределенными функциями, в которых есть отделы или которые состоят из нескольких компаний, сеть – это наиболее удобный вариант для обмена информацией и распределения задач.
Почему веб-разработка на сегодняшний день выглядит столь ужасно?
- Исторически, протокол HTTP был создан для работы с HTML, который был создан в качестве языка для обмена научной и технической документацией. Позже HTML-документы стали более широко использоваться людьми, вследствие чего был создан динамический HTML или DHTML.
- javascript сам по себе – не такой уж и плохой язык, может быть только слишком подробный. Существовавшие браузеры не позволяли написать DHTML, который бы функционировал в разных браузерах. Так появилась потребность в создании библиотек javascript. Поэтому такие библиотеки, как Dojo, Prototypes, Scriptaculo, jQuery и многие другие были созданы для обеспечения функциональных возможностей разных браузеров.
- Но иногда веб-разработка начинает ужасать, потому что ярые фанатики объектно-ориентированного проектирования (ООП) переходят на javascript. Лично я выступаю полностью за ООП - почти всю свою жизнь я работаю в данной сфере. Но попытки впихнуть ООП в JavaScript при помощи EmberJS, BackboneJS и некоторых других – это идея на грани идиотизма.
- Другие признают, что JavaScript в качестве языка программирования обладает достаточным количеством недостатков, поэтому люди начинают изобретать новые языки, такие как Coffee Script, Dart, TypeScript, ES 6. Но эти языки не решают самую главную проблему – проблему с браузерами. Вследствие этого приходится создавать инструменты для управления пакетами программ, библиотеками, а также транспилеры, преобразующий код программы, написанной на одном языке, в аналогичный код, но уже на другом языке. Но все это требует введения добавочных инструментов и еще нескольких этапов в разработке приложения. И при этом самая главная проблема все равно не решена.
- Хотя люди и признают достаточное количество недостатков JavaScript в качестве языка программирования, но, стремясь привлечь внимание и тех специалистов, кто уже изучил JS, они создают NodeJS. Невообразимый ужас.
Именно поэтому веб-разработка находится в столь ужасающем положении на данный момент.
Но у вас будет все отлично, если вы работаете с HTML5, CSS3 и простых кросс-браузерными библиотеками, такими как jQuery или Dojo. Однако, при этом стоит быть осведомленным обо всех вариантах создания искусного и высокопроизводительного веб-интерфейса.
Фернандо де Оливира Падоан, 11-летний опыт в сфере веб-разработки
Хоть и создание HTML5 стало разумным решением, я все еще продолжаю считать, что протокол необходимо создавать для самого приложения, чтобы документ сразу в нем правильно отображался. Хоть это и пытались делать раньше - возьмите хотя бы те же Silverlight, Flex, Flash, Java Applets и многие другие - , но все они были лишь собственно инструментами и создавали более жесткую конкуренцию открытому стандарту. И это даже не говоря об уязвимости системы безопасности и о самых разных видах несовместимости и ограничений.
Теперь, поговорим об Atom (не о протоколе публикации, а об альтернативе RSS). Данная технология несомненно обладает большими возможностями, нежели RSS (по крайней мере, в теории), к примеру, управление ресурсами или загрузка «фидов» (feeds). И все же RSS настолько широко используется, что Atom так и не смог окончательно заменить его – и, скорее всего, никогда не сможет это сделать.
Как уже было отмечено, люди не хотят отказываться от обратной совместимости, и альтернативной в данной ситуации может стать создание так называемого «резервуара» для более новых стандартов. На сегодняшний день существует множество споров, стоит ли продолжать работу на основе родной, гибридной платформы или же полностью перейти на веб-платформу. Представьте себе попытку «запихнуть» какое-либо существующее приложение на веб-платформу, что полностью разрушит его совместимость как с родным, так и с работающим на основе HTML-приложением. Такая попытка только ухудшит нынешнюю ситуацию.
Комментарии
Кому нечего сказать от себя -- высасывает из "кворы". Конечно, лучше, чем из пальца, но лично мне эти умничанья западных снобов ни шли, ни ехали. Оценка: на балл выше кола.
Отличная статья. Вполне и для Хабра достойна. (С)
Ладно, Логик, убедил. Частично. Но повышу ещё на балл. В итоге -- 4.