All streams
Search
Write a publication
Pull to refresh

Comments 12

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

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

ЗЫ: Конкретно ваше решение — это очередное переизобретение html, и в этой связи особо никому не сдалось. Его неоспоримые плюсы (возможность статической типизации, например) возможны и в обычном html, он тоже некоторыми усилиями анализируем. В остальном же — сомнительно. Да, это «чистый» способ подключения шаблонов в код, но нет, это нифига не читаемо, а для шаблона сохранять читаемость — очень важная задача; и даже другие сомнительные решения без особо сильных сторон, типа JSX или tagged template literals выиграют в презентабельности у ваших POJO-портянок.
Именно поэтому же, кстати, и не работают чрезмерно общие кодогенераторы (и интерфейсогенераторы, как подкласс)

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


Конкретно ваше решение — это очередное переизобретение html, и в этой связи особо никому не сдалось.

Вот здесь вы прочитали правильно, но не до конца поняли. Скорее всего, это моя вина, т.к. я не стал развивать тему JS, JSX, html и т.п. Казалось очевидным, что запись "шаблона" в виде "POJO-портянок" это альтернативный вариант, у которого свои кейсы применения.
В задачи этой статьи не входило сравнение видов деклараций, это требует времени. А на скорую руку получить что-то вроде "смотрите как я плохо написал с помощью шаблона А, и как круто будет если все хорошо написать на шаблоне Б" не то, что мне хотелось.

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

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

Всё пилить на JS — это нагрузка на бедного юзера. Уже задолбали все эти «улучшенные дизайны» сайтов, где вместо привычного и быстро работающего варианта вижу ужасно тормозное УГ на JS. То есть ранее все прекрасно генерировалось на сервере и браузер всего лишь показывал html, ну пусть с небольшими обработчиками на JS. А что теперь? Вся работа сервера переложена на клиента. И клиент «запарился». Реально задрали эти тормоза на массе весьма известных сервисов. И всё почему? Вот потому — вместо генерации на сервере вся работа валится на браузер с его интерпретацией, потом компиляцией и только через десять приседаний — исполнением скомпилированного. Но даже скомпилированное из-за полного пренебрежения скоростью самими разработчиками очень часто работает медленно. Ну куда мы катимся? Здесь надо бы сказать о роли тех же гуглов, как зачинателей всего этого ведьминого шабаша, ну да пока оставим их в покое.

Почему так сложилось? Потому что ребятам с фронта хочется всё писать на JS. Ну не хочется им лезть на сервер. Точнее лезть-то они лезут, со своими JSON и XML запросами, но тем опять гробя производительность, дёргая сервер сотню раз на одну загруженную страницу вместо такого забытого и немодно-молодёжного одноразового дёргания. А понимающего проблему ЛПР рядом не оказывается.

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

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

Реально задрали эти тормоза на массе весьма известных сервисов. И всё почему?

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

Вот потому — вместо генерации на сервере вся работа валится на браузер с его интерпретацией, потом компиляцией и только через десять приседаний — исполнением скомпилированного.

Ваши представления о работе современных браузеров — мягко говоря наивны.

Почему так сложилось? Потому что ребятам с фронта хочется всё писать на JS.

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

но знайте — вы тоже убиваете интернет

Чем, нагрузкой на ваш айфончик? Очень смешно.
Вся работа сервера переложена на клиента.
И это правильно.

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

Так сложилось потому, что бизнесу нужны сайты и фичи в режиме «еще вчера».

Режим «вчера» легче достигается на сервере. Но вы же не бизнес на самом деле защищаете, вы же свою привычку всё на JS делать отстаиваете.
Режим «вчера» легче достигается на сервере.

Ага, я заметил. Особенно проработав чуть более пары годков на переписывании «легкоразрабатываемых» монструозных монолитных монстров, сбацаных по всем канонам наикровавейшего энтерпрайзного J2EE. И потом два обыденнейших фронтэндера с обыденнейшим реактом поддерживали и развивали (и до сих пор, насколько мне известно) то, что раньше требовало четырех ощутимо более дорогих ява-программеров и одного тестера.

Фиг знает, где там легкость разработки. Наверное это всё потому, что, реакт-программисты шибко умные (нет), а сеньёры явы — все четверо на редкость тупые были.
Особенно проработав чуть более пары годков на переписывании «легкоразрабатываемых» монструозных монолитных монстров

Да, ваш опыт только подтверждает уже замеченное ранее (когда вы заявили про ваше «не наивное» понимание взаимодействия браузера со скриптом) — вы просто плохо разбираетесь в сути явлений, о которых берётесь говорить.
Фиг знает, где там легкость разработки

Очень простой пример — посчитайте, сколько фреймворков насочиняли для JS. Хотя бы примерно. И вот это всё (сотни, а то и тысячи поделий) было сделано буквально за последние 10 лет, а то и меньше. Теперь вспомните — а была ли жизнь более 10 лет назад? А были ли тогда компьютеры? А был ли интернет? Вспомнили? Так вот — тогда легко справлялись без этих всех тысяч фреймворков. И по сложности формочки 2009-го года были ничуть не проще формочек 2019-го. Ну вот разве что этой всей ужасной да дёрганой анимации не было, плюс грузилось всё мгновенно. Вот и все достижения тысячи фреймворков — дёрганая анимация и дикие тормоза. Но повторюсь, без анимации и тормозов всё прекрасно работало всего лишь 10 лет назад. И быстро дописывали, переписывали, вообще, что хотели, то и делали. Но вот гуглы начали рекламировать свои поделия… И всё, интернет стал ужасным.

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

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

Куда уж мне до вас.

Очень простой пример — посчитайте, сколько фреймворков насочиняли для JS.

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

Так вот — тогда легко справлялись без этих всех тысяч фреймворков.

Не стоит пытаться иронически говорить на эту тему с человеком, который 10 лет назад как раз со всем этим «легко справлялся», и собственными глазами видел всю глубину этого «легко».

И быстро дописывали, переписывали, вообще, что хотели, то и делали.

Вы сейчас похожи на человека, который на полном серьезе рассказывает, что кроме C/C++ программисту ничего не нужно, а скорость разработки и там прекрасна. А сайты все через cgi можно делать.
Но все подобные рассказы неминуемо разбиваются о жестокую нефантастическую реальность. Ах да, я и забыл, что всё дело в гугле и рекламе. Вот не было бы гугла и рекламы, и в реальности было бы совсем всё не так, как на самом деле!

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

Если вы такой умный, то почему вы такой бедный? Где ваша топ-1 технология по легкому клепанию скоростных сайтов?

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

Кому не повезло? А, ну да, ява-программистам, сидевшим на поддержке старого проекта — да, не повезло. Остальным — вполне. Я резюме наполнил и много хорошего опыта получил, бизнес — расходы на проект более чем вдвое сократил.
когда мне говорят, что на языке N написано огромное количество разного работающего кода — это наводит меня на мысль, что на этом языке писать просто

Это тоже очередное следствие отсутствия понимания реальности.

Скажу по секрету — если вбухать ярды денег, то вас это наведёт на очень сильно другие мысли.
кроме C/C++ программисту ничего не нужно

Вы опять допустили ошибку.

Вы написали не C или не C++, а именно C/C++. Знаете почему это плохо? Даю намёк (для понимающих достаточно) — вы допустили расширяемость.
Где ваша топ-1 технология по легкому клепанию скоростных сайтов?

А вы за неё готовы заплатить? Иначе ради чего мне напрягаться?

Я снова и снова вынужден повторить — непонимание реальности (и роли денег, в частности) ведёт вас вот к такому апломбу и самоуверенности. Но причина апломба — ничем не обоснованная самоуверенность.

ЗЫ. На ваш ответный комментарий могу не ответить. Не потому, что вас игнорирую, просто не могу — бывает важнее отписаться под более интересной темой, а количество выстрелов ограничено.
Да не трудитесь — я уже получил о вас общее понимание. Общаться с очередным узким экспертом во всем и одновременно широко известным в узких кругах автором гениальных вещей было бы в иной ситуации интересно, но на хабре концентрация подобных вам слишком велика для меня.
Sign up to leave a comment.

Articles