усы2

Стой под стрелой

Поступки и мысли, о которых могу вспомнить не краснея

Previous Entry Поделиться Next Entry
Крутое пике
усы2
tonsky

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

Главный ресурс фронтендера — MDN. Я туда хожу в основном за лулзами. Открываем, например, XMLHttpRequest и читаем:

Despite its name, XMLHttpRequest can be used to retrieve any type of data, not just XML, and it supports protocols other than HTTP.

Морская свинка, как известно, не морская и не свинка.

Насколько у ребят всё под контролем, можно понять по тому, как XMLHttpRequest назван. Поговаривают, что есть рабочая группа, готовящая переименование в XMLHttp_request.

Раньше нервный тик у меня был только на язык C. Теперь появился второй: на верстку. Не важно, насколько пуленепробиваемо ты сверстал и сколько тестировал, всегда найдется полудохлый, но актуальный браузер с тремястами пользователями (прости, Опера), в котором всё разъедется. А если нет, то нарисуется чел с телефоном ромбовидной формы и разрешением 200×1000, которому обязательно нужно чтобы всё влезало по диагонали (ромб же!) и было при этом большим и читаемым. А если не найдется и вы себе соломки везде подложили, то через полгода команда Хрома всё равно выпустит новую версию с новой точкой зрения на стандарты. Редкий сайт долетает до шестой мажорной версии Хрома.

Самый страшный браузер? Мобильный Сафари. Он просто ОЧЕНЬ старается показать сайт на мобильнике хорошо. ОЧЕНЬ. Никогда не думал, что про IE буду вспоминать с нежностью. IE хотя бы не притворялся, что пытается помочь. У нас тут своя атмосфера. Честно. Прямо. У 11 версии официальный слоган был «Deal with it».

Основной вопрос веб-разработки: почему не у всех стоит Хром? Если видите улыбающегося веб-девелопера, значит, он пишет под Электрон. С каждым приложением свой Хром. Фиксированной версии. И вперед. Тяжеловато по памяти, правда. Но ничего, скоро они научатся шарить общий рантайм, и получится... получится...

Веб в вебе это еще полбеды. Его же тащат везде. На сервер, в мобилки. У вас есть там классные языки? Java очень быстрая? Питон очень логичный? Хаскель очень безопасный? Да, отлично, ну вот вам JavaScript тогда еще. Ну и что что убогий, мы всё равно на нем будем писать.

Это вообще железная логика. Вот WebAssembly. Был у нас один убогий язык на фронте. Ужасно спроектированный, с никакущей инфраструктурой, без стандартной библиотеки, писать невозможно. Что еще подходит под это описание? О, C++ подходит. Давайте добавим его. Теперь у нас два языка!

Но самый огонь это конечно ES 6. Тут уже сами фронтендеры признали, что JavaScript как язык не очень. Что неплохо бы компилировать из чего-то поприличнее. И что они взяли? Тот же самый, блин, JS!

Знаете, как они вообще решают проблемы? Лет 15 назад была инициатива, семантический веб. Наведем порядок, всё разметим, метатеги, микроформаты, RDF. Чем закончилось? Недавно узнал, что 2GIS написал нейронку, которая ходит по сайтам организаций и пытается понять, что там написано. Оказалось, чем навести порядок, проще сделать искусственный интеллект.

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

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

Был такой сериал, «Крутое пике». В нем авиалайнер терпит крушение и стремительно падает на протяжении 327 серий. Конечно, всё летит в ад, но пока летит, они в принципе неплохо проводят время. Ну вот. Веб с нами надолго. Вчера, говорят, Курт Кобейн застрелился. Обнимемся.


(Анонимно)
Пишу на мобилки. Реально уже запарило, каждая второй заказчик имеет свое розовое видение кроссплатфоменного поекта на Web/JS фреймворках. Откуда они повылазили токо. Бесит просто.

Какой прекрасный шрифт! Спасибо вам! Читать очень приятно!

(Скрытый комментарий)
Насколько у ребят всё под контролем, можно понять по тому, как XMLHttpRequest назван. Поговаривают, что есть рабочая группа, готовящая переименование в XMLHttp_request
Да!

в кои то веки соглашусь с крокодилом.

В жизни в целом, кстати, всё точно так же, только ещё мы все умрём.

И ничо. Живём.

Надо будет налопатить перевод на английский :)

зачем?

(Анонимно)
Пост-нытье нынче в моде?

(Кстати, лично я пишу на скале.жс. Ничо, удобно)

Да, у меня был еще пассаж про что я в общем-то в веб-разработку зашел сбоку, и видел только голые HTML/CSS и ClojureScript, но всё равно мне хватило. Основная засада это верстка, layout и CSS. И ну и производительность всего этого. ClojureScript и отсутствие всяких webpack-ов и погони за еженедельными фреймворками добавляет sanity, но бреда всё еще дофига даже так

без темы (Анонимно) Развернуть
скала.жс не решает проблемы с ромбовидной формой и тормозами на "старых" компьтерах.

С тормозами немного решает (как ни странно), потому что нет вебпака и нпм-а, и, соответственно, привычки тащить через них килотонны говна.

Я не знаю, каким образом афтары умудрились написать full program optimizer для скалы, и какие тяжёлые наркотики для этого надо колоть, но он работает.

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

html 4.0 и не ипет

Edited at 2017-04-06 14:51 (UTC)

Сочно. Люблю читать лонгриды про то, как все плохо в программировании, тем более, что это правда ))

обман чтобы набрать классы

(Анонимно)
>>обстоят дела на бэкенде
Думал почитать что-то интересное про бекенд, а тут очередное нытье что фронтенд сложный.

Кстати, в плане языка +- позволяет дышать TypeScript. А вот верстка... Даже не знаю чем помочь кроме как посочувствовать.

А какая она, идеальная вёрстка в идеальном мире?

(Анонимно)
судя по описанию того, что такое плюмы, на м мнение автора вообще нельзя ни в одном вопросе полагаться

без темы (Анонимно) Развернуть
"Поговаривают, что есть рабочая группа, готовящая переименование в XMLHttp_request"

https://developer.mozilla.org/ru/docs/Web/API/Fetch_API

Edited at 2017-04-06 18:45 (UTC)

уже и погыгыкать над тупыми комитетчиками нельзя

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

Проблема с CSS - не в CSS. Проблема в том, как в вебе layout делается. А глубже - кем и как проектируется.

Давно всем понятно, что нормальный layout можно делать двумя способами:
- обобщить до матана, вроде типа решения всяких там Constraint satisfaction problem, см. тот же http://gridstylesheets.org/ MacOS вроде использует.
- дать людям API, и пусть сами делают как хотят. Пример - игрушки, где часто дичайше крутой UI, со всеми анимациями и удобствами.

Проектировщики веб, при этом, описывают layout в терминах типа "если у flex-item задан min-width, либо не задан, но у него overflow!=hidden, то как min-width взять минимальную ширину блока, в которую влезет текст внутри него без переносов". Прям примерно так, да, буквами. Со всеми, сука, исключениями, и противоречащими параграфами.

В результате ни реализовать это одинаково ни у кого не выходит, ни сверстать как надо на получившемся не удаётся.

(Анонимно)
Если все так печально, то почему не сменишь веб на какую-нибудь более адекватную область?
Я не подъебать пытаюсь, мне правда интересно, какие есть аргументы в пользу продолжения участвовать в этом пике.

С одной стороны, http://tonsky.livejournal.com/304550.html
С другой, веб-приложения всё же ближе всего к людям
С третьей, я не могу спрятаться например в бэкенд и смотреть на тот ужас, который происходит в интерфейсе, потому что воспринимаю продукт только целиком
С четвертой, я чувствую что тут как нигде нужна моя помощь

Все ровно наоборот. Такое впечатление, что статью написали лет 5-8 назад. Да именно в последние годы фронтед стал действительно крут. Стек технологий на любой вкус. В 9 из 10 случаев крики о боли от неумеющих нормально верстать. Наезды на css просто смешны, сейчас на нем можно делать что угодно. Есть частный случай верстки под старые браузеры, но ему уже совсем недолго осталось, лечится конским прайсом.)
ps. А для холивара годно, да.

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

Ждем, ага.


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

Ну я и говорю — Electron. Только это очень нишевые и специальные продукты, до широкой аудитории не достучаться

Чувак, как же хочется с тобою обнятся, всплакнуть, и выпить по литру водки...

Не, ну это совсем неадекват какой-то. TypeScript на WASM, WebComponents вместо React. Слышал звон

Питон очень логичный? Недавно пришлось его освоить для околонаучных расчетов

len(list) вместо list.length()
", ".join(list)

Это чтоли логично и единообразно? Он не функциональный и не обьектно ориентированный. В отличии от руби где все железно и просто есть объект и есть методы. В питоне нужно помнить где что - тут нужно вызвать метод а там функцию. Еще и сокращения, тяжело было написать length вместо len?

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

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

Edited at 2017-04-08 09:13 (UTC)

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

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

Забавный уроборос получается: Руби лучше JS, JS лучше Джавы, но Джава-то лучше Руби и вообще всего остального

?

Log in