Реми Шарп — создатель таких сайтов, как сonfwall, jsbin.com, html5demos.com, responsivepx.com, nodemon, mit-license.org, snapbird.org, 5 minute fork и jsconsole.com. Предлагаю вашему вниманию перевод статьи Реми Шарпа «Почему я люблю работать с вебом».

«Легко значит скучно. Вот почему я люблю веб и браузеры» – автор

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

Круто, конечно, если посетитель использует современный и мощный настольный компьютер. Но так же вероятно и то, что он просматривает веб-сайт с рабочего компьютера, используя старый и встроенный браузер Internet Explorer 8.

Дуглас Крокфорд как-то сказал:
«Веб — это наиболее враждебная среда разработки, которую только можно представить».

И он чертовски прав. Это та враждебность, которая даёт мне доступ в мир. Это та «враждебность», которую я называю своим ежедневным вызовом.

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

Я не говорю, что достигаю этих целей каждый раз. Например, я много лет стремился сделать так, чтобы jsbin.com работал в IE7 и IE8, и где-то в процессе мы лишились поддержки IE8 (на что я постараюсь выделить время и однажды исправить).

Просмотреть код: приветственный жест веба


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

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

В моём случае наибольший прорыв в понимании JavaScript случился, когда я пытался осознать исходный код jQuery (ещё во времена первых версий, около 10 лет назад).

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

Труднее ли сейчас?


Я читал пост Джейка Арчибальда «Если мы стоим на месте, мы движемся назад» и задумался об услышанной мной аналогии о сложности, которую используют для сравнения с вебом раньше.

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

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

Сами посмотрите: и это всё уже готовые части!



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

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

Это не единственный путь, я уверяю вас.

Неудивительно: основы всё ещё тут


Веб всё ещё состоит из HTML, CSS и JavaScript и работает чертовски хорошо в своей ванильной форме. Взять, например, этот блог: моё первое представление себя в вебе – всего лишь HTML, CSS и немного скопированного JavaScript.

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

Почему я люблю работать с вебом




Из-за его простоты. Рождённый из потребности связывать документы. В той же степени, в которой это могло измениться с последним поколением веб-разработчиков, которые скажут вам, что веб теперь сложный и запутанный (и будут правы), одновременно он не является сложным. Он всё ещё гениально прост.

Кто угодно может сделать это. Кто угодно может выложить контент в сеть: будь это обычный текст или простой HTML, состоящий только из
<р>-тегов, или же что-нибудь более сложное и изысканное. Веб не стесняется своего контента. Проходит всё и вся.

Веб сегодня – действительно потрясающее место для разработчиков. Существует впечатляющее множество библиотек, фреймворков, плагинов и утилит, которые очень облегчают жизнь при создании супер-сложных штук – лет 10 назад некоторые смельчаки писали их вручную. Также, если вы хотите писать на JavaScript и игнорировать все части ES6 / ESnext, вы можете делать и это (и по большей части, из-за ограничений, я поступаю так же!).

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

А как насчёт вас?
Поделиться с друзьями
-->

Комментарии (20)


  1. jenezis
    09.08.2016 23:26
    -2

    Я люблю видеть результат моей работы, особенно когда миллионы пользователей довольный, даже самым маленьким виджетом, к которому я приложил руку :) это крутое ощущение, за это и люблю веб


  1. A-Stahl
    09.08.2016 23:39
    +15

    >А как насчёт вас?
    Я ненавижу веб всеми фибрами моей тёмной плюсовой души. Всё это уродливое нагромождение странных технологий, соединённых универсально-бесполезными интерфейсами. Все эти костыли, подпирающие структуру изначально созданную для других целей. Всех этих людей, строящих и приносящих всё новые и новые костыли.
    Ненавижу ли я что-то сильнее чем веб, вот в чём вопрос… Вопрос, на который я не могу уверенно дать утвердительный ответ.


    1. Jaromir
      10.08.2016 03:48
      +3

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

      Порой слышу похожие слова в адрес «Си с плюсами»


      1. sim31r
        10.08.2016 04:34
        +3

        В Си есть бесподобный компилятор, гарантирующий максимально быстрый и чистый код. А в вебе? Браузер по сути виртуальная машина интерпретирующая скрипты с массой ограничений. Это заставляет страдать перфекционистов считающих биты и такты процессора )


        1. Jaromir
          10.08.2016 05:00
          +1

          К Си претензий как правило у людей нет. Многие находят его простым и понятным. Речь шла про плюсы.

          Браузер по сути виртуальная машина интерпретирующая скрипты с массой ограничений


          Но ведь заранее неизвестно устройство с какой архитектурой запросит ваш код. Так что интерпретатор неизбежен


    1. vdonich
      10.08.2016 05:25

      Мне кажется, что любая зрелая система рано или поздно скатывается в подобную кашу.
      Единственный выход — технофашизм а-ля Эппл, который большим топором периодически отсекает устаревшие части чтоб стимулировать использование новых. Запланированное устаревание, новые версии железа и прочее.
      Тот же Андроид, Win- платформы — все хорошо и кучеряво пока не возникает цель поддержать весь зоопарк устройств и версий, что в поле бегают.
      А там уже начинаются пляски с бубнами, черная магия backporting и прочее шаманство.

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


    1. kalobyte
      10.08.2016 15:11

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

      яваскрипт
      за 20 лет я попробовал кучу разных языков, но более идиотского языка я не видел еще
      даже перл тут отдыхает

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

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

      и вот 2016 год — цсс и яваскрипт занимают больше места, чем сам контент, а некоторые сайты настолько криво сделаны, что падает браузер на 4х ядерном процессоре с 8гб памяти

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

      так что я лучше бы читал сайты по протоколу nntp, как это было в 99м


      1. Jaromir
        11.08.2016 08:50

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

        Веб это вам не форма и пара кнопок как в десктопном/мобильном ПО. Это сложная верстка с самыми разнообразными (часто динамически подгружаемыми) интерактивными элементами. А если еще и адаптивная под множество размеров экрана. Запилить такое мышкой в GUI даже не представляю как. Недаром часто разработчики встраивают в приложение WebView если оно визуально сложнее списка с кнопками. Хотя, согласен, пара-тройка нативных контролов бы не помешала (дерево, редактируемая таблица)

        и вот 2016 год — цсс и яваскрипт занимают больше места, чем сам контент, а некоторые сайты настолько криво сделаны, что падает браузер на 4х ядерном процессоре с 8гб памяти

        Это косяк разработчиков, а не технологии. В виндовс есть прекрасное ПО, а есть такое, что встраивается во все щели и показывает рекламу. Это же не повод обвинять WinAPI, OLE, etc.


        1. kalobyte
          11.08.2016 20:19

          Это сложная верстка с самыми разнообразными (часто динамически подгружаемыми) интерактивными элементами.

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

          пришлось изматериться, но гимор решил

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

          вон в ворде же есть форматирование и документ откроется так же в ворде на другом компутере

          почему я запускаю софт и он одинаково рисует гуй? если это чекбокс, то это чекбокс хоть на вин2000, хоть на 10ке
          почему в вебе чекбокс можно извратить до неузнаваемости?

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

          2016 год, в редакторе хабра есть кнопка цитирования, но она тупо ставит тег без содержимого и мне приходится руками выделять текст и тащить его, вместо того, чтобы просто выделить его и получить всплывающую кнопку «цитировать», чтобы яваскрипт сам вставил выделенный текст в окно
          зато есть маркдаун для даунов и хтмл теги для извращенцев, твитор зачем-то какой-то, курсив и подчеркивание — зачем это в тексте для каментов?

          вместо гениальной простоты делают сложное и уродливое


          1. trikadin
            16.08.2016 00:16
            +1

            а зачем нам сложные верстки?

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


            вот только во всей этой сложной верстке в цмс есть редактор контента и этот редактор не видит этой сложной верстки, не видно списков с иконками такого типа, хотя класс подключен.

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


            вон в ворде же есть форматирование и документ откроется так же в ворде на другом компутере

            О, да что вы говорите. Вы когда-нибудь открывали сложный документ (с кастомными полями, заголовками, списками, картинками, графиками и т.д.), сделанный в одной версии ворда, в другой версии ворда? Даже в следующей. А документ, сделанный в версии под виндовс в версии под мак? Всё едет и плывёт.


            почему я запускаю софт и он одинаково рисует гуй? если это чекбокс, то это чекбокс хоть на вин2000, хоть на 10ке

            Если вы пишете


            <input type="checkbox">

            в html-файле, то он чекбокс где угодно.


            почему яваскрипт такой дибильный? как функция может быть переменной? как она может быть анонимной? да еще быть аргументом другой функции вместе с телом? такое нагромождение кода все путает

            Вот это вообще отлично. Это называется "функции первого класса" и есть ну в ооооочень многих языках программирования, даже в PHP, лол. Если вы не знаете, что это такое, то это говорит исключительно о вашей несостоятельности как разработчика, но ничего не говорит о JS. Более того — я искренне рад, что мнение таких как вы никто и никогда в вопросах развития языка (любого) всерьёз рассматривать не будет.


            маркдаун для даунов

            Конечно, люди, создавшие самый большой в мире веб-сервис хостинга IT-проектов, на котором Markdown-- основной язык разметки комментариев, readme и вообще чего угодно — это по-любому дауны. А вы один в белом пальто умный и красивый стоите.


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


            1. Jaromir
              16.08.2016 11:12

              > О, да что вы говорите. Вы когда-нибудь открывали сложный документ (с кастомными полями, заголовками, списками, картинками, графиками и т.д.), сделанный в одной версии ворда, в другой версии ворда?

              Это уже не говоря уже о том, что верстать в ворде что-то сложнее реферата
              это ад адский. Руки сами тянутся переделать всё в хтмл или латехе


          1. playermet
            16.08.2016 00:25

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


  1. samizdam
    10.08.2016 00:59
    +3

    Соглашусь с предыдущим оратором (@A-Stahl).
    А, если тезисно, то…
    >> Веб сегодня – действительно потрясающее место для разработчиков.
    В теории — отличные открытые спецификации и рекомендации в которых куча всего предусмотрено.
    На практике — толпы неквалифицированных разработчиков, даже документацию не читающих, не то что спеки, жадные вендоры, которые плевать хотели на совместимость и не своих пользователей.

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

    >> Также, если вы хотите писать на JavaScript и игнорировать все части ES6 / ESnext, вы можете делать и это (и по большей части, из-за ограничений, я поступаю так же!).
    Вот показатель того, насколько программисты хотели бы писать для веба, но только не касаться JS, например:
    https://github.com/jashkenas/coffeescript/wiki/list-of-languages-that-compile-to-js

    >> Веб всё ещё состоит из HTML, CSS и JavaScript и работает чертовски хорошо в своей ванильной форме.
    Да, чёрт подери! Но никто эту ванильную форму не хочет ни покупать (заказчики), ни потреблять (большинство пользователей).


    1. Jaromir
      10.08.2016 04:06
      +2

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

      На самом деле зоопарк эволюционных предков и, как результат, по 1-2 (временно) победившему инструменту в каждой нише. Но никто не заставляет вас ими пользоваться. Я, например, порой люблю обмазы писать на чистом html/css/EcmaScript5, в виде один файл — одна глобальная переменная — никаких упаковщиков или загрузчиков

      > Вот показатель того, насколько программисты хотели бы писать для веба, но только не касаться JS, например

      Это показатель того, что браузер распространился на все устройства с экранами и являет собой универсальную открытую платформу. Никаких закрытых сторов девелоперских лицензий, и проектов 2-в-1 (java, swift) по двойной цене. Последний оплот свободы, так сказать

      > Но никто эту ванильную форму не хочет ни покупать (заказчики), ни потреблять (большинство пользователей)

      Пользовалелю без разницы на чем написан ваш сайт. Если заказчику надо магазин через 2 дня: тут без CMS и фреймворков никак


  1. arvitaly
    10.08.2016 06:09
    +1

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


  1. bjornd
    10.08.2016 10:52

    Web сейчас и в ближайшем будущем — единственный способ доставить миллионам людей практически любой функционал. И ничего вы с этим не сделаете.


  1. SelenIT3
    10.08.2016 15:04
    +2

    пост Джейка Арчибальда «Если мы стоим на месте, мы движемся назад»

    На всякий случай: этот пост доступен и в русском переводе (как и исходный пост Питера Пола Коха о предложении моратория на новые браузерные «прибамбасы», в ответ на который он написан, и еще один ответ на него).


  1. Vlad_fox
    10.08.2016 15:04
    +1

    «Если вы на секунду задумаетесь о том, как много жизней вы можете коснуться, просто публикуя что-нибудь в интернете, то поймёте, что это абсолютно сногсшибательно»

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


  1. playermet
    10.08.2016 15:04
    +1

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


  1. unixwz
    11.08.2016 21:20

    Потому, что мейнстрим стильно-модно-молодежно