LINUX.ORG.RU
ФорумTalks

SBCL уделывает C++(и шланг, и G++) по производительности

 , , ,


0

5

https://programming-language-benchmarks.vercel.app/problem/spectral-norm

Немного лучше него, буквально на десяток миллисекунд, справляется rust.

Назовите теперь хоть одну причину использовать плюсы вообще?

Перемещено xaizek из development

★★

Cкажите, а лавсанчик все лиспы одинаково любит, или у него любимчики есть?

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

ты в соседнем треде, да и тут, не один раз упоминал продолжения. можешь растолковать по-человечески что они упрощают / что с ними проще делается?

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

можешь растолковать по-человечески что они упрощают / что с ними проще делается?

На них легко реализуются генераторы/корутины/зелёные потоки, если таковых нет в самом языке. Это то, из-за чего я ушёл с Common Lisp’а. В питоне есть генераторы, поэтому примерно половина функциональности продолжений там не нужна.

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

(define (dialog)
  (cond 
    [(check-login-password (get-login-password))
     (define d (enter-data))
     (show-result (post-data d))]
    [else (show-bad-password) (dialog)]))

и реализовать get-login-password,enter-data,show-result,show-bad-password хоть в тексте, хоть в GUI, хоть в HTTP/HTML.

Эту функцию можно реализовать на потоках и их заморозке, но продолжения значительно дешевле.

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

стало немного понятнее, спасибо за разъяснение

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

Как твой говнолишп решает проблему DLL Hell?

А хрен его знает. Ни разу не сталкивался с проблемой DLL Hell в лиспе, поэтому абсолютно не знаю как это решается (поговаривают, что проблемы вообще нет).

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

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

Ваш инвалид — аргумент:

https://programming-language-benchmarks.vercel.app/problem/fasta

Почему-то здесь «образ» занял 22 МБ, а не 40. У многих мусоросборных бенчей с этого сайта есть огромная проблема — во время их выполнения мусор не собирается, и потому получаются волшебно маленькое время выполнения. На месте автора бенчей я бы поставил в конец выполнения программы синхронную сборку мусора, и пока программа последний байт из кучи не высвободит — выполнение не закончилось. И тогда все мусоросборники отправятся на заслуженные последние места.

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

Остальные тесты там неидиоматичные и неоптимизированные

Явное использование SIMD инструкций — это типа идеоматичный питон, что ли?

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

Конечно проблемы нет. Но лавсанчик сначала сказал что она есть, потому сказал что лисп ее решает, а потом начал нести пургу то про Эрланг, то потом вообще о кастомизации

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

Еще раз, есть два решения.

Первое - (ql:quickload "library") - просто работает в 99.99% случаев

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

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

Питон говно, да еще и с говненой тормозной реализацией. Конечно там нет SIMD инструкций, откуда они там. И главное зачем. Питон это для дебилов. Откуда дебилы вообще знают что такое SIMD?

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

Браузер — огромная махина для удешевления написания программ
Он жрёт память, но на это есть причина — браузер предоставляет огромнейший уровень абстракций для построения ПО

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

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

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

Вы не понимаете, что в браузере вы платите памятью за время разработчика?

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

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

Лисп прекрасен и в своё время взлетел именно потому, что он простой как три рубля, парсер и базовый компилятор делаются на коленке ассемблером (во времена первых лиспов и асма поди не было кстати)

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

базовый компилятор делаются на коленке ассемблером (во времена первых лиспов и асма поди не было кстати)

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

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

Рационализация после покупки

Говнопсихологи.

Искажение в восприятии сделанного выбора

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

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

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

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

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

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

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

https://ru.wikipedia.org/wiki/Стокгольмский_синдром

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

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

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

Это вообще одно большое заблуждение, типа был Си и все остальное произошло от него, а значит все есть Си

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

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

И тот же упомянутый Oracle плавно переписали с асма на Си.

Может, как знающий, заодно подскажешь что в оракле делает ява?

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

Лучше бы она там ничего не делала. Выглядит как чужеродное тело

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

C Is Not a Low-level Language

Желтушный заголовок. Автор статьи затрагивает проблему того, что язык Си был низкоуровневым языком для компьютеров 70-х годов, но в 20-м веке приходится совершать огромное количество трансляций для того, чтобы превратить сишный код в аппаратные операции — и типа потому Си больше не «низкоуровный». С какого перепуга? Если я эмулирую 68k на x86 для запуска старой игры — я резко делаю машинные коды этой игры высокоуровневыми? Нет, ничего не меняется, они остаются такими же низкоуровневыми, но для своей целевой платформы.

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

Где они? Я умею, и на Си и не на Си, но почему-то не чувствую, что прямо-таки всех уделал. Зато я вижу засилие микросервисов, жрущих как минимум в 10 раз больше времени ЦП и памяти, чем монолит на какой-нибудь жаве.

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

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

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

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

они остаются такими же низкоуровневыми, но для своей целевой платформы.

Тогда лисп тоже низкоуровневый, но для своей целевой платформы.

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

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

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

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

Спасибо, посмеялся.

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

Кроме того, что это просто очередная модная херота для дебилов, популярность контейнеризации...
Большинство разработчиков такие дебилы, что не умеют, или разучились управлять зависимостями, в частности обновлять их. Поэтому проще все тупо похерить и запустить новую болванку.
Большинство дистрибутивов в плане управления зависимостями и экосистемой - в полнейшей жопе, поэтому опять же, проще всего все тупо похерить и запустить новую болванку. Это называется DLL Hell. Да, да, как в Windows 98. Только его решили максимально неправильно

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

Собственно, до сих пор большинство второсортных реп с питоньим кодом на гитхабе размером крупнее hello world при попытке запуска выдадут тебе стэктрейс вместо результатов работы.

Ну так а где альтернативные решения? «Альтернативные решения» — это качать из интернета через pip в виртуальное окружение предварительно собранные бинарники интерпретатора и его расширений. Или что-то похожее через NPM. В принципе, эти инструменты сильно снизили потребность в контейнерах, но в корне они ничего не решили.

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

К слову, некоторые люди забывают, что формированию Linux как унифицированной платформы для запуска приложений мы обязаны лично Торвальдсу — потому что именно он яростно форсит соблюдение совместимости ABI ядра. А иначе сообщество бы давно поломало интерфейсы.

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

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

Это свойство конкретного эрланга, который умеет сам себя оркестрировать. И это свойство не портируется на любой другой ЯП.

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

В лиспомире исчез хром и андроид? Советую иногда выходить из имакса

Хром и дроид — это клиенты для сервисов гугла.

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

Посмотри на структуру доходов софтверных компаний. Майки продвигают свой SaaS последние лет 15, если не 20, купили LinkedIn, но всё равно не могут набить даже половины.
SaaS хорошо работает, когда IT идёт в довесок к основной не-айти услуге - бухглатерия, к примеру

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

Если брать в рассмотрение Oracle/SAP, то они довольно давно почти не занимаются разработкой софта и большая часть их дохода идет не от продажи софта, а от консалтинга, внедрений. и того же SaaS.

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

Фейсбук продаёт B2B решение (данные клиентов для рекламы)

Предлагаю термин B2Z.

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

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

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

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

Спасибо, я уже понял, что вы не сойдёте с пути подтверждения статистики единственным примером. Удачи вам

Я пропустил момент с этим «единственным примером». Это про Micorsoft, что ли? В каком месте MS зарабатывает не на сервисах? Большая часть дохода MS идет от облак и сбора персональных данных. Да, есть еще какие-то деньги от продаж коробок офисов, винды, XBox-ов, но уже в 2020 доход от сервисов превысил доход от продуктов:

https://www.microsoft.com/investor/reports/ar20/index.html#income-statements

Само назначение Сатьи как бы намекает на то, куда MS катится.

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

Настоящее решение в том чтобы дать разработчику кастомизировать разрешение зависимостей

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

А npm, и прочие выкатыватели «Единственно Верных» путей решения проблем зависимостей, насирают, как обычно единственно неверное

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

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

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

я и том же слышал… возможно ли машину лисп представить в наборе схемомодулей ПЛИС/PLD ??

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

Питон говно, да еще и с говненой тормозной реализацией. Конечно там нет SIMD инструкций, откуда они там. И главное зачем. Питон это для дебилов. Откуда дебилы вообще знают что такое SIMD?

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

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

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

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

Эксперты-историки в треде. Лисп не вписался в веяния времени. Компиляторы были дюже платные. Точнее, только такие и были

Показания подозреваемого противоречат показаниям его подельника. Чуть выше был аргумент «компилятор лиспа элементарно пишется на асме» — и вот уже идет аргумент «компиляторы лиспа дюже платные». CLISP, Emacs Lisp, CMUCL — это всё не считается? Или же все-таки признаете, что без жирной дорогущей IDE разрабатывать на этом, как и на Java, весьма сложно, а без очень сложных компиляторов динамический ЯП выполняется медленее питона?

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

Может, как знающий, заодно подскажешь что в оракле делает ява?

Жрет память и глючит — что же еще? Я как последний раз пытался их СУБД поставить, то у меня почему-то жава жаловалась на недостаточность памяти, хотя у меня было 10 Гб памяти свободно.

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

Тогда лисп тоже низкоуровневый, но для своей целевой платформы

Лисп-машина не была для лиспа целевой платформой почти никогда.

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

Чуть выше был аргумент «компилятор лиспа элементарно пишется на асме»

Наверное, там речь про интерпретатор шла.

компиляторы лиспа дюже платные

Скажем так, лисп среды. LispWorks, Allegro. Я про них.

CLISP, Emacs Lisp, CMUCL — это всё не считается?

Существование в этом списке емакс лисп показывает уровень осведомлённости оппонента.

Или же все-таки признаете, что без жирной дорогущей IDE разрабатывать на этом, как и на Java, весьма сложно

Вопрос там не в IDE. И невозможно было много-много лет назад. Сейчас есть опенсурсные решения.

а без очень сложных компиляторов динамический ЯП

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

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

Жрет память и глючит — что же еще?

Мусье эксперт.

Я как последний раз пытался их СУБД поставить

Ещё и диванный.

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

Чуть выше был аргумент «компилятор лиспа элементарно пишется на асме»

Наверное, там речь про интерпретатор шла.

SBCL уделывает C++(и шланг, и G++) по производительности (комментарий)

Лисп прекрасен и в своё время взлетел именно потому, что он простой как три рубля, парсер и базовый компилятор делаются на коленке ассемблером (во времена первых лиспов и асма поди не было кстати).

Существование в этом списке емакс лисп показывает уровень осведомлённости оппонента

Это не лисп, что ли?

Вопрос там не в IDE. И невозможно было много-много лет назад. Сейчас есть опенсурсные решения

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

byko3y ★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.