Pull to refresh

Comments 117

Опять «Этот веб трудный, вечно что то новое, придумают всяких реактов да вуев и сидят вот усложняют всё мне, 15 лет мне усложняют а я сижу»

Это человеческое эго умирает потихоньку (контроль над чем-то) вот и появляются такие статьи, попытка вернуть "былое". Свойственное "старикам". То есть умирание Эго неизбежно, мудрые мира сего об этом знают, и 2017 лет назад дал наставление — "не ищи земных сокровищь, где моль и ржа все съедает, а ищи сокровищь на небесах" — не дословная цитата, которая говорит, что всё чтобы не изучил человек — потеряет, в том числе и свои заслуги 15 летней давности превратятся в труху. Всегда придут молодые, амбициозные которым описанные сложности в статье не кажутся таковыми, но их сиенит другое поколение и так в бесконечном цикле, старшее поколение будет жаловаться на молодое, дескать "а вот у нас такого небыло". ))) вообщем, потерять и не угнаться за знанием и опытом — это условия жизни и их не изменить.

На самом деле дело не в человеческом эго и неизбежности устаревания знаний: нет никакой неизбежности. Если технология реализована концептуально целостно — она не переизобретает сама себя, девальвируя уже усвоенные знания. Просто, возможно, пора признать — веб сделан гораздо хуже, чем его можно было сделать, и значительно хуже чем более концептуально сильные системы — взять тот же UNIX
Спасибо за перевод!
Статья точно отражает моё отношение к современным подходам к разработке веб-сайтов. Для меня идеалом того, как нужно начинать проект, всегда остаётся ASP.Net MVC 5 в Visual Studio. Т.е. ты запускаешь VS, нажимаешь «Create Project», выбираешь тип проекта, нажимаешь кнопку «Run» и оно работает… Не нужно устанавливать Node.js чтобы на ней запустить трансляторы, сборщики и прочий мусор. Это мусор, потому что не приносит в проект значительной пользы… Всё то, что вы делаете с этими инструментами можно отлично сделать на чистом JS+CSS3+HTML5. Да, пропадёт синтаксический сахар последних версий JS, не будет типов из TS, чуть сложнее работать с CSS без SCSS и иже с ними… Но сколько усилий тратится для разворачивания рабочей среды! Сколько усилий тратится на отладку после всех этих преобразований! Мне кажется что сейчас искуственно повышают порог входа в программирование, чтобы сохранить образ профессии для избранных. От того и все эти консольные инструменты и зоопарк необходимых утилит.
Все верно.
А потом вас просят поправить строчку в CSS и переделпоить ваш милый монолит. И вот уже идет 15 минута в VSTS, который сначало мило скачал весь ваш проект из source control, потом восстановил все ваши Nuget пакеты (а cache у вас не заработал), после чего сделать билд вашего солюшена (все проекты, конечно, но вы поставили флаг /maxcpucount:3 для ускорения), запустил все тесты (dotnet, если что)).

А вам нужно было только строчку в CSS обновить :)

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

Плюс если проект хоть раз уже был собран — то его исходники уже есть, все nuget-пакеты тоже лежат на месте. Да и проекты вообще собирать не нужно — бинарники же свежие.
Как раз всё наоборот.
Использование ASP.Net MVC не предполагает монолитной архитектуры. Можно даже микросервисы с помощью WebAPI реализовать. И пересборка не нужна, т.к. не было изменений в .Net файлах.

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

Бред какой-то. Открыл проект, поправил стили, посмотрел на изменения тут же, сказал мейвену собрать — готово. 4 года назад собрал проект без единого фреймворка на джаве и нативных html5, css, js. 4 года в работу серверной части почти не вмешиваюсь, осовременить фронт-энд — пол часа времени. Не надо обновлять фреймворки из-за найденных дыр, не надо читать документацию и пытаться мигрировать не переписывая код и не надо искать косяки после миграции. В корпоративных приложениях очень многие разработчики начинают отказываться от фрейворков и сторонних библиотек. Таким образом и порог вхождения в команду меньше, и поддерживать проще. И сейчас многие начнут кидаться помидорами, но на самом деле в большинстве команд по разработке веба на настройку и внедрение фремворка тратиться больше времени, чем потребовалось бы на создание такой-же функциональности без него.
Не надо обновлять фреймворки из-за найденных дыр

Как будто если написать свой велосипед вместо фреймворка, то дыр в нем не будет...

Будут, но:


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

Поэтому сайт на своем примитивном движке может прожить 10 лет без обновлений, а к Joomla и Drupal каким-нибудь лучше ставить обновления сразу же. И после этого смотреть, не сломали ли эти обновления что-нибудь. Не забыв взять денег с клиента за поддержку сайта в течение тех же 10 лет, и забыв прописать штрафы, на случай если движок таки взломают.

Дыры есть в любом коде. Но тот факт, что эта дыра уникальна, сильно осложняет работу по её обнаружению, а для всего остального есть анализ безопасности. Как минимум, типичные дыры можно отловить еще на стадии тестирования. В тоже время, после обнаружения дыры во фреймворке или СУК, никто особо не спешит обновляться или как-то закрыть это всё. Чаще всего, приложения поддерживаются по принципу «работает- не трожь».
UFO just landed and posted this here
UFO just landed and posted this here
В том-то и дело, что это происходит удобно в виде пошагового инсталлятора и после завершения установки ничего настраивать обычно не нужно. Никаких конфигов и прочего…
Я не против утилит вроде Node, Gulp и прочего, я за то, чтобы они были интегрированы в удобную среду разработки и чтобы для программиста это было не головной болью, а также просто, как нажать кнопку «Run»
UFO just landed and posted this here
Вы сами себе противоречите.

Нет, не противоречу.
Если Gulp, Node и т.д. являются частью удобного ПО для разработке, которое можно поставить из коробки и не париться с конфигурированием, то от этих инструментов есть толк.
Но я против них как отдельных утилит, из-за которых разворачивание рабочего окружения превращается в боль. При том, что и без них можно создавать неплохие продукты, а многие из ставят не осознавая назначение и практически не используюя преимуществ, которые они дают.

Вообще было бы классно увидеть, к примеру, «NodeIDE», при установке которой ставится весь зоопарк и, к примеру, создание и первый запуск Angular5 проекта правратилось бы в New Project => Angular5 => поставить галочки рядом с TypeScript, Gulp => Прописать путь к Git => Run => Приложение запущено и работает

По поводу новых фич в C# — они не усложняют, а упрощают разработку и к тому же никто не заставляет их использовать…

Так Webstorm, например, подходит под ваше определение NodeIDE. И проект на Angular там можно создать, почти не покидая GUI.


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

вам просто лень учить консоль, а зря, очень полезно.
именно потому что у нас есть отдельные утилиты все так хорошо развивается
а не монструозный msbuild который только с ГУИ можно сконфигурировать
монструозный msbuild который только с ГУИ можно сконфигурировать

Это что, юмор такой?

Это не юмор, это пугающие тонны бойлерплейта в каждом проекте, которые генерила студия на старом SDK. Когда туда неподготовленный человек заглядывает, он обычно пугается.

Да ладно, и какой же там бойлерплейт-то? Всего-то список файлов проекта и настройки (те самые которые из GUI конфигурируются)…

Знаете, когда файл проекта на несколько сотен файлов с исходниками и с дефолтными настройками по размерам превышает выхлоп GNU autotools — это именно что тонны бойлерплейта.

По монструозности. Сейчас весь бойлерплейт в виде настроек под две конфигурации (release/debug) вынесли в sdk, а студию научили не сходить с ума от <Compile Include="**/*.cs"/>. В итоге дефолтный файл проекта ужался до меньше чем до десятка строк.
Если интереесно, то я, что называется, на пальцах, объяснял, как оно работает.

Конечно, лень. Хотел бы учить консоль — учил бы консоль, а не Photoshop/Illustrator/InDesign/Premiere/Dreamweaver/Flash.


Это другая сторона, другой подход к созданию сайтов — со стороны дизайна, а не программирования.

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

Тут суть в чём. Мелкомягкие сделали мощную и расширяемую систему сборки (msbuild) которой 95% C# разработчиков пользуются вообще не подозревая о её существовании. Для них смена настроек или добавление этапа сборки выглядит как "поставил галочку в студии" или "установил нугет-пакет ткнув мышкой в студии". Авторы расширений сборки в виде нугет-пакетов обычно поставляют расширение к самой студии для редактирования настроек. Не нужно иметь никаких знаний о том, как всё внутри работает, ибо работает оно из коробки.


В случае с нодой и gulp/bower всё в точности наоборот. Отсюда некоторая фрустрация при их использовании.

UFO just landed and posted this here
трансляторы, сборщики и прочий мусор. Это мусор, потому что не приносит в проект значительной пользы…

Сложно сказать, это троллинг такой или заявление всерьёз

git clone git@githum.com:npm_repo/skelleton
npm install
npm build
npm run

Вам бы кнопочки тыкать :)
Я не понимаю, о чем говорит этот человек. Функционал любого сайта сегодня и 25 лет назад очень сильно отличается. Как и стоимость разработки, кстати. Кроме того, сейчас сайт (не веб-приложение) уровня пятнадцатилетней давности может написать любой детсадовец, и спроса на такие сайты нет. Если уже лезть в что-то более, чем красиво сверстанная статическая страничка, то XMLHttpRequest, с которого началась Javascript-вакханалия, тоже появился сравнительно давно, и сложные (относительно браузерных возможностей) веб-приложения стали появляться году примерно в 2006м. Собственно разница в красивой картинке, и не менее красивой картинке, которая делает кучу полезностей, не выглядит аутом на зоопарке разрешений и размеров, и при этом не вешает комп (если написать с умом). Нет же, надо немедленно поныть в днявку. Или он надеялся, что эволюции нет, и после 15 лет анабиоза можно все еще поражать сверстников, ковыряя камнем бересту?

Ну это обычная "боль" старичков. Если признаться честно самому себе, то мы (люди) не хотим терять того, что достигли, а когда теряем — вот тут и начинается нытьё )) а теряют все и это будет всегда, таково условие жизни. Человек описал свою боль, что 15 лет назад он был "на коне", а щас у руин своих знаний и опыта )) это неизбежно для каждого из нас. Для молодых, амбициозных людей, уверен, описанные сложности вовсе так не кажутся. С вашим комментарием согласен.

Мне кажется вы немного не поняли о чем он. Он о том, что в мире фронтенда опыт больше ничего не значит. Двадцать лет работы и годовой выпускник находятся на том же уровне. И как в Алисе в стране чудес — надо очень быстро бежать чтобы просто оставаться на месте. А в этом что-то точно не так. Я открыл проект с фронтендом, который забросил всего месяц (!) назад. Стал смотреть — уже поменялась куча версий, появился новый вебпак, что-то обновить уже нельзя потому, что есть брекинг ченджез и т.д. Месяц, Карл!

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

Кроме того — как он делает ошибку «старичка» — вы делаете такую же ошибку молодости, которая верит, что она всемогуща, времени много вагонов и уж вы-то огого… Не поверите как быстро бегут года. И если мне в 46 интересно ковыряться с новыми фишками фронтенда как хобби, то многие ли готовы участвовать в (на данный момент) совершенно безумной гонке?

Миру фронтенда необходим какой-то центр. Который будет если не ограничивать, то хотябы направлять чтобы все шли в что-то стройное. Вот неплохой пример в сторону — .net core — развивается, выглядит как сказка, писать приятно и т.п. Там тоже есть свои тонкости с обновлениями, но с каждой версией все становится стройнее и приятнее… (имхо)

Понял так, как Вы сформулировали — "Он о том, что в мире фронтенда опыт больше ничего не значит".


Ну я не верю в молодость, я чуть младше Вас и наблюдаю за собой, что не угнаться за молодежью и нельзя остаться на том же уровне, чем занимался n лет назад. Это не только касается ИТ, возьмите тех же актеров, как они умирают невостребованными.


Если положить руку на сердце, то фронтэндом тут только не ограничишься. Какова значимость опыта в Delphi, Visual Basic, windows XP, что там еще было? Да поглядите на архитектуру ЦПУ, ядра ОС (linux), библиотеки и тд. Опыт 10 летней давности сегодня превратился в тыкву. Всегда надо бежать "на острие атаки", а это в 40 нереально в силу объективности, силы к нам не приходят, но явно уходят.


А как можно "центровать" фронтенд? Это же не один язык, но и разметки, фрэймворки, движки всякие. Как эти сущности можно слить в одну экосистему типа Net core (я только догадываюсь, что это)? Это изобрести принципиально новый вэб?

Чем хорош бакенд? тем что все развивается согласно каким-то логичным и понятным принципам.

Не всегда это конечно верно. "Тучи" пайтон библиотек, например, в асинхронщине для веба уже говорят об сложности контролирования процессов. Один из последних докладов moscowPython по asyncio об этом говорит, что стало много всего, что страшно всё это эксплуатировать в продакшене, нереально понимать, что происходит на самом деле.

Мне кажется, как бы ни парадоксально это звучало, преимущество «бэкенд»-технологических стеков именно в их разнообразии. Не подходит Python? Можно Go использовать. Проблемы с PHP? Есть Java.
И вот там, в бекенде, — конкуренция экосистем, каждая из которых рождает какие-то решения, неудачные хоронят, удачные перенимаются. При этом есть такие, которые растут по воле одного «визионера», есть катящиеся по воле сообщества. Но, самое главное — там есть выбор.
На фронте же вы прибиты в html-css-js. Их можно ругать, а можно любить. Но даже самый ярый фанат при наличии сколько-нибудь критического мышления назовет пару-тройку явных неприятных недостатков этих технологий. На бэке, если недостатки для вас критичны, вы просто выбираете другой стек, где недостатки менее критичны. На фронте вам остается только смириться. У вас, фактически, нет другого стека.
Вы можете говорить про angular, react и прочее и прочее, но все они, в конечном итоге, транслируются на выходе ровно в то, что умеет браузер. Они не решают эти проблемы, трансляцией невозможно решить концептуальную проблему того, во что вы транслируете. Получается, что все эти платформы — это «workaround» над проблемой. Способ обойти. При этом — автоматизированный способ обхода… А мы все знаем, что именно такая неявная автоматизация может достаточно больно бить по лбу.

Если в вашем тексте заменить "бэкенд" на "фронтенд" и vice versa, то смысл вообще нисколько не поменяется:


Мне кажется, как бы ни парадоксально это звучало, преимущество «фронтенд»-технологических стеков именно в их разнообразии. Не подходит Angular? Можно React использовать. Проблемы с Vue? Есть Ember. И вот там, во фронтенде, — конкуренция экосистем…

На беке же вы прибиты к JSON, HTTP, SQL. Их можно ругать, а можно любить. Но даже самый ярый фанат при наличии сколько-нибудь критического мышления назовет пару-тройку явных неприятных недостатков этих технологий. [...] У вас, фактически, нет другого стека. Вы можете говорить про JSON и HTTP и прочее и прочее, но все они, в конечном итоге, транслируются на выходе ровно в то, что умеет веб-сервер. Получается, что все эти платформы — это «workaround» над проблемой.
Как-то вы фреймворки с языками уравняли с ходу… Angular vs React — сравнение в одной плоскости с Spring vs Play. В первом случае под фреймворком js, во втором — jvm. Только вот на бэке может и не быть этого самого jvm'а, если он не нужен или мешает. А на фронте вы никуда от js не денетесь.
>> На беке же вы прибиты к JSON, HTTP, SQL.
Вы же фронтендер, да? Вы вот реально уверены, что на бэке без SQL никуда? Вы реально считаете, что HTTP — это ограничение именно бэка? Что оно не со стороны фронта ограничение? Вы реально считаете, что форматов обмена, кроме JSON, нету? И вы твердо уверены, что текстовый обмен — это ограничение именно бэка?
>> в конечном итоге, транслируются на выходе ровно в то, что умеет веб-сервер.
Ну, т.е. во что угодно, что в принципе может исполнить компьютер? Вы же понимаете, что тут «умелок» несколько больше?
UFO just landed and posted this here
>> В браузерах (IE и Mozilla) только появилась поддержка XmlHttpRequest. В 2004 году запускается Gmail, в 2005 появляется термин AJAX, в 2006 выпускаются первые версии jQuery, YUI и GWT. В 2007 на базе YUI был создан Ext JS. Становится понятно, что веб-платформа обладает довольно мощным потенциалом для реализации сложных интерфейсов.
Вот, ИМХО, где-то на этом месте и произошла небольшая локальная катастрофа. «Становится понятно, что веб-платформа обладает довольно мощным потенциалом для реализации сложных интерфейсов. » При этом сама платформа остается связкой «языка разметки гипертекста», «каскадных таблиц стилей» и прикрученных сильно сбоку скриптов, чтобы все это выглядело как «реализация сложных интерфейсов».
Т.е. интерфейсы стали лепить на том, что предназначено для гипертекста. Смогли? Да. Гениально? Да. Удачно получилось? Спорно.
В проектировании интерфейсов, как ни странно, отлично «заходит» ООП-подход. Вся вот эта «инкапсуляция», «полиморфизмы эти ваши» и т.д. Реально просто хорошо все это ложится «в логику». А в существующей реализации инкапсуляция невозможна, попытки родить абстракции «текут», любая связность — эмуляция, полиморфизм реализуется кодогенерацией…
Мне вот реально кажется, что текущий подход к проектированию веб-интерфейсов, мягко говоря, неидеален. Можно было на отметке «стало понятно» чуть-чуть притормозить, обдумать хорошо и сделать «правильно».
Но, момент упущен…
А можно подробнее насчет «инкапсуляция невозможна, попытки родить абстракции «текут», любая связность — эмуляция, полиморфизм реализуется кодогенерацией»?
Допустим, такая вещь, как ShadowDOM. Не, я не отрицаю, штука прикольная и в текущих реалиях нужная. Но реализация…
Для «инкапсуляции представления» мы создаем параллельный DOM. Оно же так работает? Т.е. для того, чтобы оно было как-то «инкапсулировано», мы делаем копию содержимого элемента в стороне и как-то связываем это с происходящим на странице. А дальше мы берем какой-нибудь узел, пишем ему в контент «А», а в shadowDOM — «Б». Вуаля, у нас html-исходник показывает «А», а на странице мы видим «Б». И для того, чтобы понять, почему и что происходит, вам нужно знать, как все это устроено. Мне кажется, абстракция слегка «подтекает».
«Типобезопасность», всяческие TypeScript и т.д. — на выходе транслируются в js, который про всю эту кухню, мягко выражаясь, не в курсе. Т.е. локально на вашей машине с контролируемыми вами же входными данными — все ок, и TS реально полезен. При этом в реальности эта вещь теряет половину своих умелок на этапе трансляции. Мне вот лично не нравится, что часть семантики моего кода где-то по пути к исполнению «выпадает».
Внутри веб-стека достаточно много странностей, это, надеюсь, вы отрицать не будете? Не поймите меня превратно, я не осуждаю людей, которые все это изобрели, они делают реально крутые вещи. Просто местами создается ощущение, что эти самые вещи им приходится лепить из г-на и палок. И многие вещи в вебе, которые мне трудно принять, просто не имеют другого решения в текущих реалиях. А реалии таковы, что на связке из языка-для-разметки-гипертекста + каскадных-таблиц-стилей + не самого удачного скриптового языка усиленно рождается система построения интерфейсов. «Рынок» хочет «уже сейчас», и поэтому вся эта система обрастает все новыми и новыми решениями, причем каждое рождается вне всякой связи с параллельными, а «абстракции текут»…
На выходе мы имеем по 4-10 решений на каждый случай жизни, и при этом каждое «не без недостатка». Может, все же был смысл на определенном этапе, когда веб-интерфейсы стали реально востребованными, попробовать не надстраивать все это над разметкой гипертекста и инструментом для стилизации оного же, а спроектировать язык построения интерфейсов?
Нет, подтекающая абстракция — это когда что-то работает не так как утверждалось. Например, сообщение теряется в канале с гарантированной доставкой потому что канала больше нет. А когда «вам нужно знать, как все это устроено» — это просто любопытство.

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

Давайте не будем подменять устоявшуюся терминологию своими субъективными представлениями.
«leaky abstraction» — термин, популяризованный Джоелом Спольски. Традиционно переводится как «протекающая» или «дырявая» абстракция.
Вот здесь, например, можно ознакомиться с формулировкой понятия и историей возникновения термина.
Фактически — это абстракция, не абстрагирующая деталей реализации, которые призвана абстрагировать.
А ваше «когда что-то работает не так как утверждалось» — это таки баг, косяк реализации и много еще чего, но точно не она.
Например, сообщение теряется в канале с гарантированной доставкой потому что канала больше нет.

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

Разница в мотивации. Узнать детали реализации, потому что интересно — это любопытство. Узнать детали реализации, потому что без них не работает — дырявая абстракция. «Почувствуйте разницу».

при компиляции С++ в машинный код точно так же пропадают модификаторы доступа

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

Давайте! Так вот: абстракция ShadowDOM работает. При помощи ShadowDOM мы заменили отображение тэга, теперь он показывает "B" независимо от своего содержимого. Не вижу никакого противоречия. И не вижу зачем тут нужно обязательно знать детали реализации.


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

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

теперь он показывает «B» независимо от своего содержимого.

Т.е. вместо того, чтобы абстрагироваться от реализации, мы абстрагировались от содержимого, и у нас все «Ок»?
не вижу зачем тут нужно обязательно знать детали реализации.

Ну т.е. я захожу на страницу, вижу надпись «Василий». Смотрю в html страницы, вижу там «Павел». Еще раз смотрю на саму страницу… И действительно, зачем мне детали?
Не вижу никакого противоречия.

Давайте попробуем увидеть.
У нас есть семантическая верстка (классика html + css, контент отдельно, представление отдельно, и все это поверх общего дерева объектов). На этом уровне абстракции мы не можем инкапсулировать в одном объекте и данные, и их представление.
Появляется надобность инкапсуляции данных+представления на уровне отдельного объекта. И мы пилим сущность сбоку, которая фактически тупо перекрывает селекторы первой на процессе рендеринга.
На выходе мы имеем два интерфейса работы с семантикой документа и его отображением, при этом теряем возможность «в лоб» отследить связность данные-представление, т.к. у нас появился перекрывающий слой (заметьте, не абстрагирующий, а перекрывающий). При этом на уровне ShadowDOM один хрен сохраняется наследование стилей из первой иерархии. Т.е. «классический» DOM косвенно влияет на представление ShadowDOM, а shadow частично перекрывает селекторы классического.
Осталось понять, нет ли смысла, случаем, проанализировать ситуацию, и отказаться от одной из иерархий, или, например, полностью абстрагировать одну из них другой…

от количества слоев поведение программы не зависит.

Вот это, простите, в идеальном мире происходит. Не в нашем.
Если взглянуть на тот же C++, поведение программы может зависеть не только от количества слоев, но и от вполне себе реальной аппаратной платформы, на которой программа исполняется. Для абстракции от, хотя бы, аппаратной реализации, например, целый LLVM пилят.

трансляция программ — процесс точный

«Точность» трансляции (причем относительная или приемлемая), может быть достигнута только на комбинации определенных языковых подмножеств. Прежде чем так безапелляционно утверждать про «точность», для начала представьте трансляцию по цепочке, допустим, C++ => Java => C. Попробуйте оттранслировать и сравнить набор инструкций на выходе.
И не говорите, что в связке веб-языков эта проблема неактуальна. Иначе для чего, по аналогии с LLVM, нынче WebAssembly пилят?

Я в ситуации с ShadowDOM вижу только одну проблему — вы зачем-то полезли смотреть HTML-разметку страницы.


Если взглянуть на тот же C++, поведение программы может зависеть не только от количества слоев, но и от вполне себе реальной аппаратной платформы, на которой программа исполняется.

Поведение корректной программы — нет, зависеть не может.


Иначе для чего, по аналогии с LLVM, нынче WebAssembly пилят?

Для скорости же.

вы зачем-то полезли смотреть HTML-разметку страницы.

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

Поведение корректной программы — нет, зависеть не может.

Категорично, задорно, по юношески, не верно.
Во-первых, абстракция — это не про удобство отладки или парсинга, а про проектирование программы. Ваши примеры того как у вас не получается достать из разметки то, что реально показывается пользователю («B»), как раз и демонстрируют отсутствие протечек в абстракции: процесс отображения надежно заабстрагирован и не виден снаружи.

Во-вторых, лично я уже много лет не смотрю в HTML-разметку: она стала бесполезна с широким распространением AJAX. Вместо этого я смотрю в дерево DOM при помощи инструментов разработчика Chrome. Там, кстати, ShadowDOM как раз показывается.
Во-первых, абстракция — это не про удобство отладки или парсинга, а про проектирование программы./blockquote>

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

Ваши примеры того как у вас не получается достать из разметки то, что реально показывается пользователю («B»), как раз и демонстрируют отсутствие протечек в абстракции: процесс отображения надежно заабстрагирован и не виден снаружи.


Ага, со стороны оно выглядит, как модель-представление. На поверку — модель-модель. Скопировать кусок данных — одно из самых хреновых решений. Вопрос представления, как правило, сильно проще вопроса двусторонней синхронизации…
В общем, один вопрос:
Есть DOM, есть Shadow DOM, две абстракции. Какой из этих слоев сверху?
UFO just landed and posted this here
UFO just landed and posted this here
И разработчикам компиляторов иногда приходится это «протечки» патчить.

Вот тут и разница в разработчиках. Одни чинят и патчат, другие говорят «мне норм».
UFO just landed and posted this here
Разработчики фреймворков знают о «протечках» в браузерах. И тоже патчат.

Я, собственно, товарищу mayorovp просто говорю, что «абстракция течёт». Причем проблема ее, в первую очередь, растет из того, что сама она построена поверх другой не самой удачной абстракции. Ну и до кучи, я говорю, что на определенном этапе (например, на этапе перехода от гипертекста к интерфейсам) стоило/стоит подумать о том, что иерархию абстракций, возможно, можно сделать лучше, переработать, причем начиная с уровня «пониже». Вероятно, это могло бы пойти всем на пользу.
Не?
А закусился я на «нормальная абстракция», «мне норм», «ты просто не понимаешь, абстракция норм». Зря, наверное.
UFO just landed and posted this here
Ну ведь «подтекает» же абстракция…
В полифилах она не подтекает, она там просто хлещет струей во все стороны. А в остальных местах просто подтекает.
UFO just landed and posted this here
UFO just landed and posted this here

Я думаю, что сайты, о которых говорит автор, должны будут наконец сдохнуть, а он — остаться без работы. То что не смог сделать FrontPage, сделают Wix и Shopify. В этом отношении, кстати, прогресс идёт крайне медленно, разработка конструкторов под типовые задачи до сих пор не развернулась на полную.

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

Чем отличается функционал сайта? Можете конкретно написать? Я не подкалываю, я честно не вижу никаких отличий в задачах сайта в 2000м и в 2018м. Расскажете?

Как минимум сейчас ему нужно уметь адаптироваться под 100500 различных экранов с разными dpi, физическими размерами и способами взаимодействия.

И для этого надо bower/gulp/angular/react и все прочее?


Вместо просто двух "резиновых" версток — для компов и для мобильных?

Обычно экранов ровно два — десктопный, и на тех мобилках известного производителя, которыми пользуются люди, готовые платить деньги.
Сходу вспоминаются интеграция с соцсетями, телеметрия и адаптивный дизайн. Ну и сам дизайн в смысле оформления, хоть это и не совсем функциональность, усложнился в разы.
Соцсети предлагают готовые модули, телеметрия готовая от Яндекс и Google, про адаптивный дизайн ответили выше. Так для чего нужны тонны библиотек и фреймворков?
А ничего, что модули соцсетей, телеметрии это и есть библиотеки и фреймворки, с каждым из которых нужно уметь обращаться?
Та же «готовая телеметрия от Google» требует не всегда тривиальной настройки. Адаптивный дизайн довольно часто не просто «две резиновые верстки» (и не две, а три: десктоп с мышкой, планшет под пальцы, телефон), а повторное использование модели данных -> тоже фреймворк, тоже требующий навыков.
Модули соцсетей разрабатывают разработчики конкретных соцсетей. Это их забота. Конечно, если сеть загнётся и модуль перестанет работать, но тогда отпадает необходимость в нём как таковом.

Метрика в том функционале, который существует в Google чрезмерно раздута лишним, бесполезным функционалом. Да и в Яндексе много чего ненужного. На самом деле большинство данных неточные и даже искажённые (проверял).

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

Адаптивный дизайн… ну вот делаем фиксированный дизайн с размерами до 1 пикселя, а современные планшеты и смартфоны сами его подгоняют под экран пользователя. То есть разработчики браузеров избавили нас от необходимости адаптивного дизайна. Остаётся только две версии: десктопная (1000px ширина сайта) и мобильная (процентные размеры). Еще версия стилей для печати. Всё.

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

Нет никакой разницы, показываешь ты котиков через HTML3.2 или через нынешний… HTML5+ с shadow DOM и тыщей скриптов для аналитики.
Во втором абзаце вся суть нынешнего спора. Поддерживаю целиком и полностью.
Вы удивитесь, но подавляющее большинство сайтов, которые нам заказывают, по функционалу совершенно не отличаются от тех, что были 25 лет назад. Малому и среднему бизнесу не нужны супер-пупер-мега-проекты. С поставленными задачами (представление предприятия, прайс, образцы продукции, контакты, форма заявки и т.п.) вполне справляется обычная html-страничка. И здесь на первое место выходит стильный и лаконичный дизайн, интуитивный юзабилити. Для создания таких сайтов не требуются фреймворки и сторонние библиотеки. Более того, мы даже отказались от систем управления и баз данных. Минимум кода html и php, мизерный JavaScript и в итоге средний сайт из 5 страниц весит 5 мб! ПЯТЬ МЕГАБАЙТ! Загружается по любым каналам связи и на любые устройства без адаптивной вёрстки (благо современные браузеры сами приемлемо масштабируют) за доли секунды.

И для этого вовсе не нужны всё новые и новые библиотеки и фреймворки. Необходимо только знать html, php, js на базовом уровне, чего (к сожалению) нет у нарождающегося поколения веб-мастеров (дизайнеров, верстальщиков, программистов и т.д.). Вместо того, чтобы зафиксировать объект css свойством position человек пишет более 2000 сторок кода на ява скрипте! Обычная страничка с текстом содержит свыше 20 контейнеров и у каждому присвоен свой собственный класс! Это реальные примеры.

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

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


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


Я понимаю, отчего это тяжело. Первые сайты я делал 22 или 23 года назад (не помню точно). Тогда же и чуть раньше мы разбирались в том, как работают процессоры, сети, дизайн, менеджмент. Тогда же воевали в первых для нас онлайн сообществах (usenet и FIDO, ага).


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


Так вот тем, кто обзывает автора — он прошел круги 5 раз. Пройдет и в шестой. Эффективнее и быстрее многих вас, будьте уверены. Я это знаю.


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

Так вот тем, кто обзывает автора — он прошел круги 5 раз. Пройдет и в шестой. Эффективнее и быстрее многих вас, будьте уверены. Я это знаю.

Если бы он действительно смог, то у нас была бы статья вроде "Объясняем современный Javascript динозавру". Полезные советы от того кто "смог и сможет еще".


Большинство не узнает. Большинство вылетит как раз на третьем витке.

Но судя по тексту статьи, вылетает как раз автор. Никакой полезной информации, одно нытьё и отсутствие актуальных знаний матчасти.

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

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


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


Поясню — для меня, например, заметный мотив данной статьи — "видимость" автора, PR. Но значимый вывод, подтверждаемый собственным опытом (а это главный фокусировщик внимания), который я лично делаю — запрос снова растет, скоро должен произойти новый "соскок" технологии вверх. Создание вебстраниц должно полностью вернуться к дизайнерам (не только графическим, но, в первую очередь, информационным).


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


Я не стал отвечать на предыдущий комментарий от justboris, кстати, чтобы не дискутировать и не задавать глупых вопросов, почему кто-то нам что-то должен. Это и есть пример той оценки, о которой говорил. Если сама статья не интересна, то, как любил повторять мой знакомый: "проходя мимо… проходите мимо".


Но вот в комментариях к замечательному переводу статьи, который он публиковал (такая деятельность — отличный повод уважать человека и его усилия), есть та же мысль. Для общего прогресса важно не только то, как быстро или глубоко лично Вы овладеваете максимальным количеством навыков (не успеете), важно не то, какая технология самая религиозно верная (отвечая другому комментарию от zvulon — нет, VueJS тут ненадолго) — в развитии любой системы с интерфейсом к человеку важны не только ее "фичи", но и простота.


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


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

Замечательный комментарий, но… почему "пока еще можно"? Это утверждение относительно мира или все же конкретной личности существующей во времени? Разве знания приходят от людей? Если не от них, то как они могут знать (пока еще можно), что задумал Всевышний?

Нет-нет, это абсолютно практическое замечание, ключевые слова "быстро вскочить".


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

Мм… Теперь ваша мысль мне стала понятней, большое спасибо за дополнение.

UFO just landed and posted this here

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

Я думаю то, что мы сегодня воспринимаем как головокружительный водоворот технологий в IT, также отчасти обусловлено и прогрессом в коммуникационных технологиях. Областей знаний и специализаций в IT было и раньше много (я недавно с открытым ртом листал зарубежные компьютерные журналы восьмидесятых годов), просто у нас не было таких широких возможностей узнать о том, что твои знания — песчинка в море, и устарели еще вчера.
Автор жалуется на то что ваши знания не находят применения в современном мире?
Вобщем-то это не ново. Давайте посмотрим кто еще может жаловаться в такой же манере
— Разработчики схем: раньше все было большое и можно было понять что на схеме, теперь микросхемы закрыты и понять что внутри нельзя
— Таксисты: раньше знания города ценились, теперь есть навигаторы. (да и вообще скоро роботы водить будут)
— Системные администраторы: раньше все было просто, теперь докеры виртуалки и infrastructure as a code.

По существу:
— то что раньше весь код сайта был понятен из браузера просто недоработка раннего веба,
точно также как скачивая jpeg вы не получаете оригинальный pdf со слоями вас же устраивает.
— что код скомпилированой программы невозможно посмотреть (без определенных телодвижений) вас не беспокоит?

Этот путь прошли процессоры ( REAL mode, Protected Mode)
Операционные системы
Языки программирования
Теперь веб.

Но посмотрите linux устоялся более менее
язык C живее всех живых
HTML почти такой какой был

Автору посоветую vue.js надеюсь он станет долгим стандартом.
На мой взгляд динамикой веба надо либо наслаждаться,
либо уходить туда где устоялось
мне тоже сложно с этими дикими изменениями (даже не за 20 а за 4 года)
вернулся в бекенд, там спокойнее.
А дизайн он же в фотошопе делается — может ему туда?
тк в скором будущем сайты резать из макетов будут роботы.

язык C живее всех живых
К моему личному счастью. )
Я освоил Си сто лет назад… и остановился перед С++. Попытка чтения Страуструпа и все эти cin, cout, конструкторы, деструкторы вызывали вопрос — а зачем это всё нужно? Можно же по рабоче-крестьянски — на чистом С. Впрочем научному сотруднику (т.е. мне) приходится писать программы только вида загрузить из файла, считать по формулам, выгрузить в файл. Т.е. плюшки плюс-плюса для меня избыточны. Возможно. А может и нет.
Если мне нужна программа с интерфейсом — есть BC++ 2002 года. ))) Можно из компонентов всё сложить и туда же сунуть чисто сишный код. Иногда делается интересно — чего ж такого в нынешних языках программирования. Читаю, но увы — у меня нет задач где я бы мог их эффективно применить, и поэтому мне трудно понять их плюсы-минусы.
Динозавр смахивает скупую динозаврью слезу.

Про таксистов вы очень хороший пример привели!


Как раз вчера меня такой "новый таксист" Uber, оснащённый навигатором, повез на улицу с нужным названием, но не в Москве, а в Алтайском крае. Время в пути 2 дня его не смутило.


А хороший таксист, знающий город, везёт быстрее предсказания навигатора и объезжает подборки теми путями, который навигатор и не предлагает. Жаль, таких мало осталось.

С другой стороны, мне год назад пришлось такому таксисту, «знающему город», объяснять по телефону как доехать до меня в незнакомом мне районе…

Ошибку с Алтайском краем адекватный человек может совершить только раз в жизни, а вот блуждать без навигатора можно каждый день.
UFO just landed and posted this here

Как всё-таки приятно прочитать хороший перевод. Спасибо.

Я думаю, что у многих людей, кто в программировании длительное время, значимое по отношению к прожитой жизни, эта статья вызвала отклик. Я помню, как программируя под z80, я упивался тем, что вот он мой маленький мирок, изученный почти полностью и я тут могу все. Сейчас же знаний столько, что их не объять ни измерить толком и эту данность необходимо принять. Все знать невозможно — раньше говорили начитанные люди, а сейчас это можно сделать слоганом на главной странице GitHub. )

Автор не учёл несколько факторов:


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

Было, только называлось "резиновой версткой" и меньше глючило)

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

Большинство новых технологий просто не нужны дизайнеру.


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


Дизайнеры же за это время мутировали в нечто элитное, не всегда понимающее, что такое "размер файла", например.


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


Отсюда и непонимание, почему мы не хотим все эти "npm run" и не закатываем восторженно глаза "ооо, Фigma!!"


К сожалению, эти люди не понимают важной вещи — узкая специализация это зачастую очень плохо:


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


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


  • технологии становятся модой, используются "сырыми", зато новыми, меняются.


  • узкие специалисты не могут разрабатывать новые инструменты и развиваться вертикально


  • узкая специализация имеет свойство вырождаться, становиться все более узкой

На самом деле, с 2000 года в вебе не появилось никаких новых задач с точки зрения дизайна. Только снежинки теперь надо уметь заверстать в спрайты и svg, отрендерить через canvas, и адаптировать всю эту дрянь к зоопарку экранов. Потому что мода такая.


Ничего, ещё несколько лет — и мы получим сначала GUI для всего, чему нужна сейчас командная строка, умрет необходимость настраивать инструменты перед использованием. Потом увидим интеграцию отдельных утилит в Macromedia Dreamweaver 2030.


И снова все встанет на свои места, когда сайт может нормально сделать один человек, а не программер, верстальщик, администратор, разработчик бэкенда, дизайнер интерфейса, дизайнер анимации, графический дизайнер и три менеджера.

… а потом кто-то снова ускорит все командной строкой, как Microsoft с powershell. И снова люди вспомнят, что консоль то быстрее чем гуй во многих случаях. Так что да, история движется по спирали )

UFO just landed and posted this here

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

Да что такого нового появилось?
Новостные сайты — те же
Банковским — ничего нового не надо
Сайт автодилера — тоже ничего нового
Интернет-магазин — ничего нового


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

Я скорее имел в виду фичи в браузерах: новые теги, новые css и прочее и прочее. Их очень много, причем один и тот же результат можно тысячами способов достичь и все это нужно поддерживать разработчикам браузеров. От того и боль и страдания.

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

Прочитал статью и решил привести пример из жизни. Ситуация в отдаленных регионах нашей страны (в данном случае Дальний Восток) показывает и плачевность, и философское отношение ко всем IT-технологиям. Я выбрал всевозможные web-студии нашего города, посмотрел их сайты и их портфолио. И когда натыкаешься на такое — http://www.amurweb.ru, а ещё и на сайты, которые они сверстали, то начинаешь думать — плакать или смириться. По идее, заказчики платят за это и их все устраивает, главную функцию сайты выполняют — выдают информацию о предприятиях. Смотрим на другие студии — сверстан landing page и все это «натянуто» на популярную CMS от российского производителя. И тут же опять вопрос — а надо ли было делать «монстра», если в 80% случаев заказчик ничего в сайте уже менять не будет? Jquery живее всех живых (местами версия 1.8.1, но это никого не пугает), дизайн в половине случаев шаблонный — о каком развитии можно говорить? Вот и получается, что с одной стороны прогресс, а с другой стороны зачем это все нужно, если минимальными и проверенными средствами можно сделать то, что удовлетворяет заказчика?
Ну как же.
Героически решаем проблемы, созданные собой же.
Пальцы можно шире расставлять.
Это не потому, что они на гребне прогресса или технически крутые.
Это потому, что они не могут сделать просто.
Можно сделать вывод, что развитие это относительная штука, а не определенное кем-то и где-то состояние в глобальном масштабе. Для сайта приведенного в примере, есть личный рост, развитие, и «глобальный» прогресс их как бы особо не тревожит. И это нормально. В мире полно разного качества товаров и услуг, как вы представляете должно быть иначе? У всех один уровень развития? То, что вы хотите «заплакать» когда смотрите, то скорее всего понимаете, как сделать лучше, но это только Ваш и только Ваш уровень развития. Найдется тот, кто укажет на ваше видение как «ужас-ужас». Всё относительно. И это на мой взгляд очень хорошо, так как в этом случае, у каждого начинающего есть шанс подняться до любого уровня, начиная с самых низов, в отличии скажем, если бы был некий потолок вхождения, от которого вообще бы трава не росла.
Согласен с вами, что у всех разный уровень развития (который оценивается чаще всего очень субъективно), а товаров и услуг, отличных по качеству, очень большое количество. Но разве это не должно быть стимулом узнавать что-то новое и делать что-то лучше/качественнее? Выйти так сказать из зоны комфорта. Но тут опять встает вопрос, поднятый в статье — многое можно сделать различными способами и никто не подскажет, как «правильнее» (ответ так же будет субъективным). Поэтому я с положительными эмоциями принимаю новости, когда крупные компании объединяются для принятия стандартов в определенной сфере и вижу это (принятие стандартов) как одно из решений упорядочивания этого многообразия способов.
Но разве это не должно быть стимулом узнавать что-то новое и делать что-то лучше/качественнее?

Если авторов и их клиентов всё устраивает, то по факту качество работ устраивает стороны. Они находятся на одном уровне развития. То есть, лучшее качество или максимальное развитие уже между их отношениями существует прямо здесь и сейчас до тех пор, пока кто-то из сторон не сделает иной вывод, что мы "на дне". Но если не сделать такой вывод, то стимул к росту не появляется, и он не нужен, так как — итак всё хорошо. )))


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


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


Также, это справедливо относительно личностного роста, заботе о здоровье, других сфер бытия. Тут нет планки — вот оно счастье, вот она та самая высота! Нету её. Планка меняется. Достигнув порога развития наступает разочарование которое способствует дальнейшему шагу по лестнице выше. Сегодня это качество, завтра это уже не устраивает кого-то. И не все могут подтянуться на одну какую-то планку качества. Это невозможно, чтобы первоклассник сразу познал азы линейной алгебры )) На мой взгляд существует множество планок качества одновременно в пространстве, поэтому когда нибудь, те ребята из приведенной ссылки выше осознают и подтянутся выше, но принудительно за уши вытащить всех на некий уровень на мой взгляд не получится )) Будет много крови ))

Подтверждаю 5-тилетку. У меня 5 лет стажа в веб дизайне. 5 лет я работал и делал дизайны спокойно в Фотошопе, но устроился в другую компанию работать и мне пришлось перекроить все свои привычки. Мне пришлось полностью отказаться от Фотошопа и делать дизайны в Фигме и Скетче, где сама механика создания дизайна не хило так отличается от механики Фотошопа, и в основном работа в новых для меня программах во многих моментах быстрее и удобнее хотя и переход с Фотошопа оказался очень болезненный, но куда деваться, стандарты меняются и нужно держаться на гребне волны как говорилось в статье.
Прямо какой-то месяц ностальгии.

С вебдева я начал 20 лет назад, к нему внезапно вернулся и сейчас. За эти годы периодически тоже доводилось сталкиваться, так что рука на пульсе держалась. И я категорически не согласен с автором статьи — сейчас всё на порядок легче. Интернет забит под завязку готовыми темплетами, сниппетами, примерами, так что по сути вебдев превратился в детский конструктор. И даже заказчики изменились к лучшему (да-да).

В начале нулевых конечно время было золотым, заказчики спокойно платили по $1K за десятистраничные статичные сайты без всяких там корзин, скриптов интеграции оплаты и CMS, а потом ещё и платили за каждое обновление. Но при этом были настолько далеки от интернета, что переубедить в неправоте их требований было просто невозможно. Так что если заказчик хотел получить пылающую огнём золотую кнопку и мерцающий заголовок, то он его получал.

Сегодня ситуация изменилась. Конечно всё ещё встречаются индивиды из ролика про красные линии, но в целом работать с заказчиками стало легче — требования в основном звучат к техническим решениям, а не к эстетическим. И то уже можно спокойно убедить заказчика в том, что ему больше не надо поддерживать сайт для браузеров каменного века, как это было в переломные годы «войны стандартов» начала середины 10-ых. Можно вполне спокойно объяснить человеку, что пользователь с деревянными счётами на древнем компьютере вряд ли его потенциальный заказчик, так что пусть себе гуляет по просторам и не жрёт попусту трафик.

Хотя может я просто немного лукавлю, может просто мне в какой-то степени больше везёт с тем, что ко мне не обращаются такие деревянные заказчики.
Тут было 2 килограмма текста с размышлениями. Весь обед потратил.
После минимизации и компиляции в смысл могу лишь сказать: да, ребята. Что-то мы не молодеем.

P.S. 15 лет в webдеве уже оказывается.
P.P.S. Ужас то какой
В этой статье не хватает рассказа о теге
<frameset>

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

Вот чем старше, тем больше интересен именно поток сознания, чем очевидно, в 100й раз, сделанные выводы о том, что все «возвращается на круги своя». Как-то все уже пройдено, действительно, несколько раз.
<frameset>: «I'l be back!»
Для web-разработки это всё «норма».

Сейчас одна технология, потом появляется вторая, — вбухивается куча денег в её раскрутку. Она становится модной. Хотя, по сути, может просто являться разновидностью уже существующих. И не обязательно будет лучше.

Потом снова появляется что-то «новое» которое вытесняет «старое». И так до бесконечности.

Реальных прорывов в web-разработке давно нет, — есть бесконечная череда смены фремворков и технологий которые являют собой смену шила на мыло
В основе любого языка программирования лежит ассемблер. В основе любого веб фреймворка лежит JavaScript. Чтобы не придумали сейчас — основа заложена умными людьми задолго до и ничего в ней не меняется десятилетиями. Нет ничего, чего можно сделать в AngularJS и нельзя сделать на голом JavaScript. А все остальное — просто методы работы с. На цвет и вкус. Одни методы приходят, другие уходят. Просто если у вас задача — сделал и забыл, тогда можно и на AngularJS. И не беда, что через 2 года AngularJS шагнет с версии 1.2 до 5.2 без обратной совместимости. Ваш проект и не проживет столько. А если проживет — не ваша проблема, вас уже и след простыл.
Ну положим less (а за ним и scss) не требует вхождения, а просто тихо улучшают css
Программа сборщик ставится один раз и тихо собирает до переустановки ОС.
Тоже самое и некоторыми прочими штуками типа pug

А вот «контейнерное» производство да, тяжело :) Чтобы проект развернуть нужно убить кучу времени, а потом это на сайт выгрузить проблема
Я в IT-сфере уже более 20 лет. Много чем занимался и в последнее время часто приходится помогать WEB-разработчикам с окружением. То сервера настроить, то какую-то приблуду поставить… И по прошествии лет я честно не понимаю, какая такая сверхзадача решается при помощи всех сосвременных инструментов (mongodb, react и т.п.)? Ну тоесть я 20 лет назад относительно быстро получал доступ к интересующей меня информации. Потом мне показали, что нифига не быстро. Показали очень просто: дали выделенку вместо диалапа и гиг оперативки вместо 128 мегабайт. Я очень обрадовался! Тут мне скорость ломают при помощи жудко тяжелых и неповоротливых, но зато «новых» сайтов. «Ты ничего не понимаешь! Ими теперь проще управлять! Тут админка есть и базы данных!» Ну э-э-э… Ок… Прошло время и вот уже не 5 мегабит, а 50 дома и не 1 гиг оперативки, а 4 и процессор многоядерный и сервера поменяли. Вроде быстро… Проходит время и все снова тормозит. WTF?! «Ты ничего не понимаешь! Теперь тут видео на странице и вообще сплошной WEB 2.0!». Ок… А нахрена оно мне? Я просто хотел почту проверить и посмотреть цену на билет (в театр\кино\на самолет). Ну еще доки по работе почитать. И так по кругу и визде. Что, плохо было документы печатать в Office 2000? Что, как-то принципиально по новому теперь можно взаимодействовать с компом на работе\дома? Так как нельзя было в Win XP? Нет. Просто раньше для решения примитивных офисных задач мы использовали 512RAM и одноядерный P3\P4, а теперь надо секретутке купить не ниже Core i5 с 8 гигами, а то офис тормозить будет!
А самое интересное, что средний уровень компьютерной грамотности пользователей упал по сравнению с тем, что было 15-20 лет назад. Тогда использовать ПК могли избранные. А сейчас он у каждой обезьяны. Новые студии разработки, дополнительные уровни абстракции призваны понизить порог вхождения, но на деле приводят к спагетти-коду потому, что системных знаний у молодых специалистов нет («зачем это учить? Оно не актуально!»). Вот и приходим к тому, что бОльшей вычислительной мощностью мы компенсируем неоптимально написанный софт. Более широкими каналами и многоуровневым кэшированием + CDN мы компенсируем раздутые сайты которые без всего этого обычному пользователю просто недоступны. Лично я (считайте садистом — дело ваше) разработчиков дрючу до тех пор, пока их проект не откроется у меня на мобиле с принудительным ограничением полосы до уровня EDGE за приемлемое время. Нет? Считаешь, что сейчас 21 век и у всех в кармане смарт с 4G и можно ничего не оптимизировать? Значит хреновый ты программист. Иди книжки читать. Желательно древние и не актуальные.
Sign up to leave a comment.

Articles