LINUX.ORG.RU

11-е правило Гринспуна, о котором он предпочел умолчать

 , ,


0

1

Любая достаточно сложная программа на Javascript содержит заново написанную, неспецифицированную, глючную и медленную реализацию половины языка Common Lisp.

Нет, ну вы видели современную экосистему JS?

NPM, Webpack, Babel - метациклические компиляторы и интерпретаторы JS, на основе конфигов.

Vue/React/Angular - фреймворки с доменноспецифичными метаязыками и декларативными макросами поверх API браузеров.

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

Это адски тормозит, иногда просто не работает, и уж точно постоянно глючит. И забудьте про обратную совместимость. Просто забудьте.

Народ, у меня на работе фронт собирается медленнее, чем на прошлой работе собирался С++ код, представляющий собой огромную обвязку над FFmpeg.

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

И главное, все это говно на порядок сложнее в изучении и понимании, чем SICP, спецификация Common Lisp, Dragon Book и Ахо/Ульман - вместе взятые.

Про дебаг я вообще не говорю, в прошлый раз дебажа JS код, я чуть не ушел в запой.

Фронтендщики, хватит! Остановитесь!

★★

2019
MUH ЛИШП

лол

Это адски тормозит, иногда просто не работает, и уж точно постоянно глючит.

Так же, как и лишп, поэтому он и умер 30 лет назад.

И главное, все это говно на порядок сложнее в изучении и понимании, чем SICP, спецификация Common Lisp, Dragon Book и Ахо/Ульман - вместе взятые.

Ну так и делает на три порядка больше. SICP это вообще устаревший учебник для первокурсников, нашел с чем сравнивать. Хотя на лишпе нет проектов сравнимых по сложности и функционалу с современными JS фреймворками, сравнивать-то и не с чем.

Вообще инфраструктура JS, конечно, говно, но будь на его месте Лишп, все было бы еще хуже.

anonymous
()
Ответ на: комментарий от anonymous

Ну наркоманская система версионирования, да. И при этом продукт развивается, кстати, раз версии меняются.Ты путаешь скорость выхода версии языка и фреймворка. Ну и просто любишь кукарекать в пространство

silver-bullet-bfg ★★
()
Ответ на: комментарий от anonymous

Мы всё же о какой версии языка говорим? Если об актуальной, то там всё более или менее нормально. Если без привязки к версии - то это схоластика

silver-bullet-bfg ★★
()
Ответ на: комментарий от anonymous

Нет, лишп при всем своем фимозе имеет неоспоримое преимущество: верстальщики, дворники и прочие узбеки бегут от него в панике. Одно только (if (> foo x)) разрывает им жопумоск. Так что лишп это минимальная гарантия, что программу тебе не будет ваять верстальщик с дипломом педа.

anonymous
()
Ответ на: комментарий от anonymous

Вот только в итоге от него убежали все, даже лавсанчик на ЖС пишет.

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

anonymous
()
Ответ на: комментарий от anonymous

А неглючных и немедленных реализаций Common Lisp не бывает.

Define «медленно»? Самая быстрая реализация (SBCL), которая реально неплохой машинный код может генерировать, застряла на уровне GCC-4.2/4.3. LispWorks помедленней, но вообще почти неглючный. Почти идеальный.

mv ★★★★★
()
Ответ на: комментарий от anonymous

Классический претенциозный недоучка.

А вот среднее слово здесь даже не гуглится. Наверное, с ошибкой написано.

mv ★★★★★
()

Экосистема не очень, а всё потому, что пишут её фронтэндеры на JS. Всё тормозит, но зато с цветными, мать их, смайликами в выводе.

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

Правда к жаверам не пришёл, поэтому хз, может они уже все вымерли.

Legioner ★★★★★
()
Последнее исправление: Legioner (всего исправлений: 1)
Ответ на: комментарий от silver-bullet-bfg

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

Shadow ★★★★★
()
Ответ на: комментарий от anonymous

Вот это всё, что делает фреймворк, на 80% костыли типа ленивой загрузки библиотек, человеческого общения с DOM, псевдоинтерфейсов в объектах и т.п.

Shadow ★★★★★
()
Ответ на: комментарий от Shadow

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

anonymous
()
Ответ на: комментарий от anonymous

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

веб будущего будет написан на расте и работать на wasm, js будет нужна только для запуска wasm сборок.

anonymous
()
Ответ на: комментарий от ugoday

Очевидно же, что если такая модель как «критерий поппера» неверна, то все в рамках этой модели является и истинным и ложным одновременно, и наоборот. D

Int0l ★★
()
Ответ на: комментарий от anonymous

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

anonymous
()
Ответ на: комментарий от anonymous

DuckDuckGo меня на русские запросы, вообще, в болгарский вики отправляет

Вот, кстати, да. Или в македонский.

mv ★★★★★
()

Лавсан, молодец! Как всегда люто плюсую твой высер.

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

deadplace
()
Ответ на: комментарий от ugoday

Спорим, ни один модератор не заметит твое сообщение.

anonymous
()
Ответ на: комментарий от anonymous

Да в том то и дело, что dom с html кратно усугубляет потребность в костылях. Т.е. тут даже паскаль выродился бы в бэйсик с кучей goto.
Новинки Js хотя бы позволяют писать более адекватный код, но всё это есть в TS, а транслятор TS меньше, быстрее, поэтому пользуюсь ts

Shadow ★★★★★
()
Последнее исправление: Shadow (всего исправлений: 1)
Ответ на: комментарий от Int0l

докажи в рамках критерия поппера что завтра можно будет сложить 2+2?

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

ugoday ★★★★★
()

И главное, все это говно на порядок сложнее в изучении и понимании, чем SICP, спецификация Common Lisp, Dragon Book и Ахо/Ульман - вместе взятые.

Зато так веселее.

LISP скучен своей предопределённостью и целенаправленностью. А людям хочется повыё6ываться, проявить себя, чтобы это поняли такие же «макаки», и поймать хайп. JS как раз это и позволяет проделывать тем или иным существам и даже целым корпорациям.

iZEN ★★★★★
()

Да не остановить это, единственный вариант это предоставить что-то лучше. Кложескрипт уже вспомнили, Elm есть еще. Я мелкие штуки делаю на typescript + vue. Как-то так.

anonymous
()
Ответ на: комментарий от Deleted

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

На лоре некоторые более равны, чем другие.

anonymous
()
Ответ на: комментарий от ugoday

я вот год назад попил чай, я так понимаю это антинаучно, т.к. я не могу это не доказать не опровергнуть да?

Int0l ★★
()
Ответ на: комментарий от anonymous

У него клиника. Что 5 лет назад писал, тоже самое и сегодня пишет. Зачем заниматься разработкой, если сплошные бугурцы в итоге.

Deleted
()
Ответ на: комментарий от Int0l

я вот год назад попил чай, я так понимаю это антинаучно, т.к. я не могу это не доказать не опровергнуть да?

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

anonymous
()
Ответ на: комментарий от Int0l

«В будущем мы не сможем сложить 2+2». Это ненаучная гипотеза, потому что невозможно поставить опровергающий эксперимент. Всегда можно будет сказать «да, сейчас у нас получилось сложить 2+2, но просто будущее ещё не наступило, надо подождать год, десять или тысячу лет и вот тогда-то уж мы неприменно не сможем».

ugoday ★★★★★
()
Ответ на: комментарий от Int0l

Я даже ссылку уже на википедию привёл. Ну щёлкните по ней, ну чего вам стоит, а?

ugoday ★★★★★
()
Ответ на: комментарий от ugoday

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

Int0l ★★
()
Последнее исправление: Int0l (всего исправлений: 2)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.