1.3, Шарп (ok), 13:42, 05/02/2024 [ответить] [﹢﹢﹢] [ · · · ]
| –4 +/– |
>С целью оптимизации производительности убраны проверки границ для относительных смещений
Вы что, хотите CVE как в си?
| |
|
2.36, Аноним (36), 15:50, 05/02/2024 [^] [^^] [^^^] [ответить]
| +2 +/– |
safety в declare сунул и готово, это тебе не бондаж и дисциплина, а язык от людей и для людей
| |
|
|
2.35, Аноним (36), 15:49, 05/02/2024 [^] [^^] [^^^] [ответить]
| +1 +/– |
Так ты не на скобочки смотри. И вообще, для тебя придумали wisp.
| |
|
3.86, Аноним (86), 20:52, 05/02/2024 [^] [^^] [^^^] [ответить]
| –1 +/– |
Прикручивается в несколько строчек кода через макросы чтения. Но это не нужно: зоопарк скобочек, вопреки бытующему мнению, снижает читаемость кода.
| |
|
|
|
6.128, Вы забыли заполнить поле Name (?), 22:01, 07/02/2024 [^] [^^] [^^^] [ответить]
| +/– |
> А почему бы тогда не использовать табы?
Причем тут табы? Без разницы, что использовать. Почему обычно используют 2 пробела, я не знаю. Видимо из-за большой вложенности и чтобы из-за этого не вылазить за границу максимальной длины строки. Больший отступ, конечно, читался бы лучше.
| |
|
|
|
|
2.80, Аноним (80), 19:27, 05/02/2024 [^] [^^] [^^^] [ответить] | +3 +/– | Есть 2 подхода к синтаксису ЯП 1 Попытаться сделать его пригодным для работы в... большой текст свёрнут, показать | |
|
3.101, Аноним (101), 00:48, 06/02/2024 [^] [^^] [^^^] [ответить]
| –1 +/– |
Ну вообще-то любой ЯП имеет AST. И пользоваться обычным ЯП куда удобнее, чем лиспом. Не понимаю, откуда столько лиспофанатов взялось.
| |
|
4.124, Аноним (80), 18:01, 07/02/2024 [^] [^^] [^^^] [ответить]
| +/– |
> Ну вообще-то любой ЯП имеет AST. И пользоваться обычным ЯП куда удобнее,
> чем лиспом. Не понимаю, откуда столько лиспофанатов взялось.
Так об этом и речь, но можно по-разному отобразить AST в текст и по-разному с ним работать: как с плоским текстом или прямо манипулировать деревом. Мало кто пробовал второй способ, но лисперы знают как это удобно, пока остальные продолжают недоумевать.
| |
4.126, Аноним (125), 20:28, 07/02/2024 [^] [^^] [^^^] [ответить]
| +/– |
> пользоваться обычным ЯП куда удобнее, чем лиспом
Ой-ли? Это те самые обычные языки (Си, С++, Java, Rust и т.п.) с их премудрыми правилами разрешения венегрета шаблонов и матрешками макроподстановок?
| |
|
|
|
1.5, Аноним (5), 13:59, 05/02/2024 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
И где оно используется? Зачем вообще люди тратят сотни и тысячи человеко-часов на бесполезные и ненужные технологии, которым место в анналах истории?
| |
|
|
3.54, Аноним (54), 17:30, 05/02/2024 [^] [^^] [^^^] [ответить]
| –3 +/– |
В том что сейчас называют ИИ интеллекта нет ни грамма, а лисповые игрушки 80-х это вообще не более чем шутка.
| |
|
4.69, Аноним (69), 18:37, 05/02/2024 [^] [^^] [^^^] [ответить]
| +1 +/– |
Как говорится, «as soon as it works, no one calls it AI anymore».
| |
|
|
2.9, Аноним (9), 14:16, 05/02/2024 [^] [^^] [^^^] [ответить]
| +3 +/– |
прошу прощения, в след. раз обязательно у тебя все вместе спросим куда нам наше время тратить
| |
2.10, Аноним (36), 14:19, 05/02/2024 [^] [^^] [^^^] [ответить]
| +2 +/– |
>Зачем вообще люди тратят сотни и тысячи человеко-часов на бесполезные и ненужные технологии, которым место в анналах истории?
Потому что не хотят выучить скобочки, потому и обещают годами выпилить GIL.
| |
|
3.90, Bottle (?), 21:18, 05/02/2024 [^] [^^] [^^^] [ответить]
| +1 +/– |
Вот кстати, что забавно, GIL обходят самыми разными костылями: то запускают параллельно несколько интерпретаторов Python, то транспилируют код Python, то привязывают Сишные либы и теряют кроссплатформенность.
| |
3.96, Аноним (96), 23:01, 05/02/2024 [^] [^^] [^^^] [ответить]
| +/– |
Но, ведь, наконец таки, решились выпилить в течение ближайших пяти лет.
| |
|
2.17, Аноним (17), 15:07, 05/02/2024 [^] [^^] [^^^] [ответить] | +1 +/– | И правда зачем нужны бесполезные дубы, если есть желуди https github com gcc-... большой текст свёрнут, показать | |
2.53, Аноним (53), 17:23, 05/02/2024 [^] [^^] [^^^] [ответить]
| +1 +/– |
Судя по гитхабу нигде оно не используется. Ну то есть тыщи репозиториев есть, но реально полезного кода считай что нет.
Язык чисто для образовательных целей.
| |
2.56, Вы забыли заполнить поле Name (?), 17:42, 05/02/2024 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Зачем вообще люди тратят сотни и тысячи человеко-часов на бесполезные и ненужные технологии
Хороший вопрос, но не в ту сторону, учитывая, что лисп появился в 60-х.
| |
2.66, Аноним (65), 18:17, 05/02/2024 [^] [^^] [^^^] [ответить]
| –1 +/– |
> И где оно используется?
Например, в менеджменте ресурсов.
> Зачем вообще люди тратят сотни и тысячи человеко-часов
Конкретно в этом случае потому, что хорошо платят.
| |
|
3.89, Аноним (86), 21:12, 05/02/2024 [^] [^^] [^^^] [ответить]
| +1 +/– |
В автокаде очень кхем... своеобразный диалект лиспа. Настолько, что мало кто даже из лисперов обрадовался бы возможности программировать на таком. Даже за деньги.
| |
|
2.105, Аноним (105), 08:39, 06/02/2024 [^] [^^] [^^^] [ответить]
| +/– |
> И где оно используется? Зачем вообще люди тратят сотни и тысячи человеко-часов на бесполезные и ненужные технологии, которым место в анналах истории?
зачем ты это сюда пишешь?
раз люди тратят время, значит видят смысл.
вот у них и поинтересуйся.
| |
|
|
|
|
|
5.14, Аноним (36), 14:33, 05/02/2024 [^] [^^] [^^^] [ответить]
| +1 +/– |
То есть, не компилируется. А в райнтайме потихоньку то там, то сям застопорит программу, потом ещё раз застопорит, потом выльет неоптимизированную портянку вызовов функций к библиотеке движка... и никаких тебе бинарей на диске с асмовставками и заменой anytype-кода на прямую тасовку fixnum-ов в асме через объявления safety, type и speed в declare.
| |
|
4.15, Дима из Крыма (?), 14:39, 05/02/2024 [^] [^^] [^^^] [ответить]
| –2 +/– |
Компилируемые языки по большей части уходят в прошлое. Останутся только в системном программировании, в совсем уж критических местах. Не верите? Сравните количество вакансий и оцените спрос рынка.
| |
|
|
|
7.82, Аноним (86), 19:40, 05/02/2024 [^] [^^] [^^^] [ответить]
| +/– |
Основная масса - это какие? sbcl, cmucl, ccl, allegro, lispworks напрямую генерируют машинный код, ecl, clasp, gcl - через сишку, abcl - в байткод jvm. Только clisp представляет из себя интерпретатор, да и тот интерпретирует байткод и имеет jit.
| |
|
|
5.28, Аноним (36), 15:41, 05/02/2024 [^] [^^] [^^^] [ответить]
| +/– |
"Количество вакансий" и "спрос рынка" не с потолка берётся. И либо ты раб скиллбокса, либо сам пишешь проекты.
| |
5.58, Аноним (54), 17:59, 05/02/2024 [^] [^^] [^^^] [ответить]
| +1 +/– |
То что ты подразумеваешь (а подразумеваешь ты языки со статической типизацией) хоронят уже 20 лет, но только сейчас закопана динамическая - mypy, typescript и иже с ними не дадут соврать. А то что ты написал это вообще безграмотный бред, потому что языки от способа их исполнения никак не зависят. Возьми C и хочешь - интерпретируй, хочешь в байткод JVM компиль, хочешь в WASM, хочешь - в нативный. При этом и динамические языки все компилируемые, везде кроме питона JIT, а и питон к нему активно стремится, умея, те не менее, и компиляцию в нативный код (nuitka, pypy, cython). Ну и таки да, не знаю что мне должно сказать количество вакансий. Ну нужно много жс мaкак. Ещё курьеров, таксистов, дворников. Но идти-то надо на нормальном языке писать за 10х денег.
| |
|
|
7.111, Прохожий (??), 11:20, 06/02/2024 [^] [^^] [^^^] [ответить]
| +/– |
>парадоксально ли, но ощутимое количество "ит-специалистов" по итогу оказываются падкими на всякий инфомусор мак.аками, для которых достаточно опубликовать несколько статеек на хабре и каком-нибудь реддите-медиуме
Обычно (не всегда) подобные статьи пишутся очень и очень умными людьми. И в них много рациональных зёрен. Поэтому другие люди и берут их на вооружение. А можно их просто игнорировать и продолжать ходить по граблям. Каждому своё.
>Внезапно оказалось, что типизация в принципе не избавляет от ошибок
А кто говорит про все ошибки? Речь о том, что их количество желательно свести к минимуму, чтобы удешевить эксплуатацию ПО конечному пользователю. В этом весь смысл. Странно, что подобные банальные вещи надо ещё обсуждать.
| |
|
6.115, Аноним (115), 12:53, 06/02/2024 [^] [^^] [^^^] [ответить]
| +/– |
>закопана динамическая - mypy, typescript и иже с ними не дадут соврать
Так дают же, anytype anytype-ом погоняет.
| |
|
|
4.26, Аноним (26), 15:34, 05/02/2024 [^] [^^] [^^^] [ответить]
| +1 +/– |
> А JavaScript в машкод не компилируется
а на лиспе нельзя модули для ядра писать
| |
|
|
6.48, Аноним (26), 16:42, 05/02/2024 [^] [^^] [^^^] [ответить]
| –1 +/– |
> На лиспе написали ОС и не одну.
если бы было что-то стоящее я бы об этом знал
| |
|
5.34, Аноним (36), 15:48, 05/02/2024 [^] [^^] [^^^] [ответить]
| +/– |
>нельзя
И тут мы подходим к тому, что каждый вменяемый программист должен уметь присобачить свой язык к си.
| |
|
6.40, ZloySergant (ok), 16:03, 05/02/2024 [^] [^^] [^^^] [ответить]
| +/– |
>И тут мы подходим к тому, что каждый вменяемый программист должен уметь присобачить свой язык к си.
TCL (немного протух, но собрать после пары ящиков пива - можно), ECL (эти долбоклюи на кресты решили переехать), CCL (ябблы - то бишь дуподрюки, но не точно).
| |
|
|
4.42, ZloySergant (ok), 16:16, 05/02/2024 [^] [^^] [^^^] [ответить]
| +/– |
> А JavaScript в машкод не компилируется, как и в образы.
SBCL как-бы тоже (только в "образ"). Даже tree shacker'а нет. За этим - к ECL и CCL.
| |
4.81, Аноним (65), 19:38, 05/02/2024 [^] [^^] [^^^] [ответить]
| +/– |
JavaScript компилируется в Webassembly, который по сути машкод для довольно специфичной машины.
| |
|
5.84, C00l_ni66a (ok), 20:02, 05/02/2024 [^] [^^] [^^^] [ответить]
| +/– |
>который по сути машкод для довольно специфичной машины
Не просто "специфичной", а "несуществующей в природе".
| |
|
|
|
|
1.12, Аноним (36), 14:20, 05/02/2024 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
> Ускорена работа цикла "(LOOP FOR X IN (REVERSE LIST) ...)", который теперь использует меньше cons-ов.
А в принципе в функциональных языках замену map на map! компилятор умеет делать?
| |
1.20, Аноним (-), 15:20, 05/02/2024 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
В чём преимущество записи выражений в польской нотации. Типа: + 2 3
Для типично математический выражений никакого преимущества перед традиционной формой нет. Я по крайней мере не вижу.
| |
|
2.30, Аноним (30), 15:43, 05/02/2024 [^] [^^] [^^^] [ответить]
| +4 +/– |
Не нужно запоминать приоритет оператов. Проще парсить, проще понимать структуру выражения. Вообще проще программно работать с такой записью. А вот в случае с классической матетматикой на бумаге, наверное, нет смысла на такое переучиваться. Хотя некоторые разделы математики такую запись используют.
| |
|
3.32, Аноним (36), 15:47, 05/02/2024 [^] [^^] [^^^] [ответить]
| +/– |
>Проще парсить, проще понимать структуру выражения.
Особенно если вставлять переводы строк, большие формулы становятся понятнее.
| |
3.39, Аноним (38), 15:57, 05/02/2024 [^] [^^] [^^^] [ответить]
| +/– |
> Не нужно запоминать приоритет оператов. Проще парсить, проще понимать структуру выражения.
Да, просто парсинг перекладывается на оператора ЭВМ. Ну… если вспомнить, на каком убогом железе она в основном использовалась, то оно и понятно.
| |
|
4.43, Аноним (36), 16:16, 05/02/2024 [^] [^^] [^^^] [ответить]
| +/– |
Это с каких пор процессор, ориентированный на язык, убогим железом является?
| |
|
5.59, Аноним (54), 18:02, 05/02/2024 [^] [^^] [^^^] [ответить]
| +/– |
С тех пор как языков много, а конкретно тот на который он ориентирван никому нахрен не сдался.
| |
|
|
|
2.31, Аноним (36), 15:46, 05/02/2024 [^] [^^] [^^^] [ответить]
| +1 +/– |
>Для типично математический выражений никакого преимущества перед традиционной формой нет
Прикол в том, что:
1. Дело не в польской нотации, а в AST. Этот AST можно превратить в вызовы SIMD. На том же лиспе.
2. Математические операции в лиспе не являются операторами, они являются функциями. Со всеми вытекающими, навроде отправки в функции высшего порядка, неполного применения и так далее.
| |
|
3.60, Аноним (54), 18:03, 05/02/2024 [^] [^^] [^^^] [ответить]
| –1 +/– |
Ну-ка, а расскажи нам скорее в каком языке операторы не являются функциями?
| |
|
2.41, ZloySergant (ok), 16:07, 05/02/2024 [^] [^^] [^^^] [ответить]
| +1 +/– |
>В чём преимущество записи выражений в польской нотации. Типа: + 2 3
В стандартизации выражений. Первой всегда идёт функция, потом значения. Отсюда и масса скобочек. Меньше шансов, что какой-нибудь альтернативно одаренный перепутает "=" и "==". В коде сразу видно будет.
З.Ы. Поэтому, кстати, LOOP я недолюбливаю - выбивается за концепцию.
| |
|
3.51, Аноним (30), 17:04, 05/02/2024 [^] [^^] [^^^] [ответить]
| +/– |
Кстати говоря, классическая префиксная нотация может писаться вообще без скобок
| |
|
4.98, ZloySergant (ok), 00:24, 06/02/2024 [^] [^^] [^^^] [ответить]
| +/– |
> Кстати говоря, классическая префиксная нотация может писаться вообще без скобок
Может, но блоки кода определять сложнее.
| |
|
3.68, Аноним (54), 18:23, 05/02/2024 [^] [^^] [^^^] [ответить]
| +/– |
А в чём смысл стандартизации выражений? Brainfuck и тот язык с одной инструкцией поболе стандартизированы, почему лисп лучше их?
| |
|
4.99, ZloySergant (ok), 00:28, 06/02/2024 [^] [^^] [^^^] [ответить]
| +/– |
> А в чём смысл стандартизации выражений? Brainfuck и тот язык с одной
> инструкцией поболе стандартизированы, почему лисп лучше их?
Brainfuck - некорректный пример. Сравнивать надо с чем-нибудь высокого уровня (хотя тоже будет не совсем корректно).
З.Ы. Да, забыл совсем, как очевединое. Такая стандартизация позволяет составить произвольный список переменных и их обработать, а не насиловать себе мозг. К примеру, в функции "сложения" указать через REST произвольное количество входящих данных.
| |
|
|
2.57, Вы забыли заполнить поле Name (?), 17:47, 05/02/2024 [^] [^^] [^^^] [ответить]
| +2 +/– |
Не нужно вводить понятие приоритета и ассоциативности, разбирать и вычислить выражение можно за один проход, достаточно просто стэка. Это использовалось раньше во многих физических калькуляторах. А по поводу программ: man dc. Его, кстати, использует bc.
| |
|
3.63, Аноним (54), 18:09, 05/02/2024 [^] [^^] [^^^] [ответить]
| –1 +/– |
> Не нужно вводить понятие приоритета и ассоциативности
Но его нужно вводить, потому что это правила разбора математических выражений. Если на языке решаются реальные задачи, включающие математику, он обязан это делать. Если он это не далает, значит он не язык, а занимательная шутка типа брейнфака, не имеющая отношения к программированию.
> разбирать и вычислить выражение можно за один проход, достаточно просто стэка
Супер, возьмём вычислительную технику которой нет проблем ни в 2 ни в 10 ни в 100500 проходов программу распарсить, но не будем использовать её возможности, а заставить людей ковыряться в yблюдском формате.
| |
|
4.76, Вы забыли заполнить поле Name (?), 19:21, 05/02/2024 [^] [^^] [^^^] [ответить]
| +1 +/– |
>> Не нужно вводить понятие приоритета и ассоциативности
> Но его нужно вводить, потому что это правила разбора математических выражений. Если
> на языке решаются реальные задачи, включающие математику, он обязан это делать.
В префиксной нотации скобки не обязательны если арность фиксирована. Конкретно в лиспе скобки - это вызов процедуры, поэтому запись (+ * 1 2 3) просто некорректна, потому что * - это процедура и нужно писать так (+ (* 1 2) 3). Таким образом, скобки однозначно определяют порядок вычисления в мат выражении.
>> разбирать и вычислить выражение можно за один проход, достаточно просто стэка
> Супер, возьмём вычислительную технику которой нет проблем ни в 2 ни в
> 10 ни в 100500 проходов программу распарсить, но не будем использовать
> её возможности
Можешь дальше писать на жс под электрон и требовать 16Гб памяти под ничего неделание.
> а заставить людей ковыряться в yблюдском формате.
Ты просто всю жизнь использовал инфиксную запись. Тебе, например, точно также будет неудобно писать справа налево, а кто-то так пишет с рождения.
| |
|
5.107, Аноним (108), 09:49, 06/02/2024 [^] [^^] [^^^] [ответить]
| –1 +/– |
>>потому что * - это процедура
(setf * 10)
(print (+ * 1 2 3))
(print (* * 10))
| |
|
6.118, Вы забыли заполнить поле Name (?), 17:00, 06/02/2024 [^] [^^] [^^^] [ответить]
| +/– |
>>>потому что * - это процедура
> (setf * 10)
> (print (+ * 1 2 3))
> (print (* * 10))
Что ты этим хотел сказать? Что процедуры можно переопределить? Что в лиспе динамическая типизация?
> (print (* * 10))
Вот это в Scheme работать не будет, т.к. ты пытаешься вызвать процедуру 10, а это не процедура.
| |
|
7.120, Аноним (120), 19:17, 06/02/2024 [^] [^^] [^^^] [ответить]
| +/– |
> Что ты этим хотел сказать? Что процедуры можно переопределить? Что в лиспе динамическая типизация?
Намёк на особенности lisp-2. Что в лиспе разные пространства имён для разных сущностей.
| |
|
|
|
4.77, Аноним (77), 19:23, 05/02/2024 [^] [^^] [^^^] [ответить]
| +2 +/– |
> потому что это правила разбора математических выражений.
Так в такой записи эти правила не нужны, про ассоциативность
> а заставить людей ковыряться в yблюдском формате
Да уж не накручивайте, писал на лиспе какое-то время - привыкаешь довольно быстро. Бонусом ты сразу видишь в таком выражении, что в каком порядке выполняется. Надо только начать, оно только выглядит страшно по началу
| |
|
5.83, Вы забыли заполнить поле Name (?), 19:55, 05/02/2024 [^] [^^] [^^^] [ответить]
| +1 +/– |
> оно только выглядит страшно по началу
Еще любят приводить примеры с двумя-тремя аргументами. В инфиксной записи сложные выражения читаются ничуть не проще. Во многих кодстайлах даже разрешено добавлять скобки для читабельности и чтобы не надо было вспоминать приоритеты.
| |
|
6.102, Аноним (77), 04:52, 06/02/2024 [^] [^^] [^^^] [ответить]
| +/– |
Именно так, да. В сложной формуле с кучей + и *, ещё и если всратые пробелы, легко запутаться, кто где первее выполняется. Уж во всяком случае одним взглядом не распарсишь
| |
6.119, n00by (ok), 19:12, 06/02/2024 [^] [^^] [^^^] [ответить]
| +/– |
Транслятор Си на сложных выражениях выдаёт предупреждение и просит добавить скобки.
| |
|
|
|
|
2.71, Анонизмус (?), 18:57, 05/02/2024 [^] [^^] [^^^] [ответить]
| +4 +/– |
> В чём преимущество записи выражений в польской нотации. Типа: + 2 3
(+ 2 3 4)
| |
|
1.25, Минона (ok), 15:33, 05/02/2024 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
> На платформе FreeBSD реализована компоновка с libpthread и отключена рандомизация адресного пространства (ASLR).
А чем фряха провинилась?
| |
|
2.100, Аноним (96), 00:41, 06/02/2024 [^] [^^] [^^^] [ответить]
| +/– |
Вам многопоточность дали, а вы недовольны. А рандомизация..., значит, работает плохо/не совсем как нужно.
| |
|
1.85, Аноним (85), 20:25, 05/02/2024 [ответить] [﹢﹢﹢] [ · · · ]
| –3 +/– |
Непонятно для кого и для чего созданы все эти 100500 языков, связки Python + C хватает для всего.
| |
|
2.92, Вы забыли заполнить поле Name (?), 21:28, 05/02/2024 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Непонятно для кого и для чего созданы все эти 100500 языков, связки
> Python + C хватает для всего.
Лисп создан в начале 60-х. Теперь посмотри когда создан Python и другие языки и задай свой вопрос их создателям.
| |
2.94, Вы забыли заполнить поле Name (?), 21:29, 05/02/2024 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Непонятно для кого и для чего созданы все эти 100500 языков, связки
> Python + C хватает для всего.
И вообще Lisp не люди создали
> It is an established fact that John McCarthy shared alien tech with the world in 1958 when he introduced us to Lisp. | |
|
3.103, Аноним (-), 06:54, 06/02/2024 [^] [^^] [^^^] [ответить]
| +/– |
>John McCarthy shared alien tech
Джон Маккарти "расшарил" людям инопланетную технологию. Возрадуйтесь люди!
| |
|
|
1.127, Аноним (127), 21:57, 07/02/2024 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Десятое правило Гринспена:
Любая достаточно сложная программа на Си или Фортране содержит заново написанную, неспецифицированную, глючную и медленную реализацию половины языка Common Lisp.
| |
|