Феномен lisp-а и rust-а
От: varenikAA  
Дата: 26.05.21 02:22
Оценка: -2 :))) :))) :))) :))
Что является высшим приоритетом в программировании?
Фрэймворки? Производительность?
На мой взгляд важнейшим являются простота ЯП и возможность посредством ЯП сохранять код
максимально простым и однозначным.
И здесь я вижу пока лишь два кандидата.
Почему lisp? потому что это первый(только подумайте) ЯП со сборщиком мусора. Только одно это убрало огромное кол-во сложности.
Второе это выражение программы в виде близком к АСТ. однозначность любой конструкции позволяет однозначно записывать любые конструкции.
Почему rust? Утверждают что компилятор раста не позволяет выполнить неправильные операции с памятью. нереально круто.
Еще в обоих ЯП мы может отделить структуры данных от методом их обработки. Это существенно упрощает код.
Ну и 3-е это конечно возможности мета-программирования. только они могут довести принцип DRY до совершенства.
еще одно приемушество перед другими ЯП что раст что лисп базируются на выражениях в противоположность инструкциям.
И пока хейтеры кричат: скобочки, каша и т.п. кто-то создает чистый код на этих ЯП.
остается лишь нерешенным вопрос: static || dynamic.
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re: Феномен lisp-а и rust-а
От: Эйнсток Файр Мухосранск Странный реагент
Дата: 26.05.21 02:38
Оценка: 3 (1) :))) :)))
Rust отлично заменит C и С++,
а lisp — Java-у, C#, Pyhton, JavaScript и Nemerle.
Отредактировано 30.06.2021 6:53 Эйнсток Файр . Предыдущая версия .
Re: Феномен lisp-а и rust-а
От: kov_serg Россия  
Дата: 26.05.21 03:37
Оценка: +4 :))
Здравствуйте, varenikAA, Вы писали:

AA>Что является высшим приоритетом в программировании?

AA>Фрэймворки? Производительность?
AA>На мой взгляд важнейшим являются простота ЯП и возможность посредством ЯП сохранять код
AA>максимально простым и однозначным.
AA>И здесь я вижу пока лишь два кандидата.
C и LUA
Re[2]: Феномен lisp-а и rust-а
От: varenikAA  
Дата: 26.05.21 06:10
Оценка: +1 -1 :)
Здравствуйте, kov_serg, Вы писали:

_>C и LUA


Таких ЯП как си и луа вагон, а лисп и раст уникальны даже по отношению друг к другу.
раст кстати имеет отдельные черты оберона в части полиморфизма.
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re[3]: Феномен lisp-а и rust-а
От: Эйнсток Файр Мухосранск Странный реагент
Дата: 26.05.21 06:16
Оценка:
AA> лисп и раст уникальны

У меня только один вопрос — ты уже́
Автор: kaa.python
Дата: 31.12.20
изучил, как там работает interop / native API или как называется та технология, которая реализует вызовы из lisp в rust и обратно ?
Отредактировано 26.05.2021 6:20 Эйнсток Файр . Предыдущая версия .
Re[4]: Феномен lisp-а и rust-а
От: pagid Россия  
Дата: 26.05.21 06:27
Оценка: 5 (2) +3
Здравствуйте, Эйнсток Файр, Вы писали:

ЭФ>У меня только один вопрос — ты уже́
Автор: kaa.python
Дата: 31.12.20
изучил, как там работает interop / native API или как называется та технология, которая реализует вызовы из lisp в rust и обратно ?

ТС это не нужно и неинтересно, он восхищается красотой которую видит в этих языках. К их практическому применению это не имеет никакого отношения.
Re: Феномен lisp-а и rust-а
От: fmiracle  
Дата: 26.05.21 07:09
Оценка: +8
Здравствуйте, varenikAA, Вы писали:

AA>Что является высшим приоритетом в программировании?


Решение поставленных задач
Re: Феномен lisp-а и rust-а
От: Kolesiki  
Дата: 26.05.21 11:46
Оценка: +1 -2 :)
Здравствуйте, varenikAA, Вы писали:

AA>Что является высшим приоритетом в программировании?

AA>И здесь я вижу пока лишь два кандидата.

Неужели тухлее темы не было?? Прибежать с двумя аутсайдерами и сотрясать как идолом. Провокации — их если пишешь, в них должен быть ... интеллект какой-то что ли! А эти вбросы оставь первокурсникам. Или ты уже на втором?
Re[3]: Феномен lisp-а и rust-а
От: kov_serg Россия  
Дата: 26.05.21 12:11
Оценка: +1 -2
Здравствуйте, varenikAA, Вы писали:

AA>Таких ЯП как си и луа вагон, а лисп и раст уникальны даже по отношению друг к другу.

AA>раст кстати имеет отдельные черты оберона в части полиморфизма.
Уникальны sql, erlang, forth, prolog, brainfuck... а раст и lisp как раз совершенно обычные языки.
Просто lua собирается C компилятором, а C есть почти везде при желании можно самому поменять.
Синтаксис простой в изучении и очень гибкий.
Re: Феномен lisp-а и rust-а
От: Ночной Смотрящий Россия  
Дата: 26.05.21 12:23
Оценка: +2
Здравствуйте, varenikAA, Вы писали:

AA>Что является высшим приоритетом в программировании?

AA>Фрэймворки? Производительность?

Решение проблем заказчика максимально быстро и качественно за минимальные деньги.
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re: Феномен lisp-а и rust-а
От: vsb Казахстан  
Дата: 26.05.21 12:28
Оценка: 10 (5) +6
Ни Lisp, ни Rust не являются простыми ЯП. Простой ЯП это виртовский Паскаль, например.

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

К примеру есть задача менеджмента памяти. В постановке задачи часто нет ограничений на размер входных данных. Это вызывает необходимость выделять память разного размера и освобождать её. От этой сложности не уйти. Но её можно спрятать за сборщиком мусора. Таким образом сложность задачи перешла в сложность реализации рантайма.

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

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

Это всё звучит довольно заумно. Поэтому попробую привести пример. К примеру есть понятие полиморфизма в ООП. Это когда у нас есть интерфейс с виртуальными методами и несколько реализаций. Во многих кодовых базах на языке C этот паттерн реализован, например в Linux kernel, Gtk. Там он реализован "просто" — есть таблица с указателями на функции, есть указатель на эту таблицу в объекте (ну или сразу указатели на функции в объекте). Понятное дело, что в C это требует множества служебного кода. Частично это можно спрятать за макросами, но очень частично. А в C++ этот паттерн встроен в язык и позволяет решать эту задачу кодом, который выглядит просто и изящно. А всю работу по этим таблицам функций и непрямым вызовам выполняет компилятор. Ещё один пример — мультиметоды. Если там нужны полиморфные функции, реализация которых зависит не от одного объекта, как в классическом ООП, а от двух и более объектов, в ООП предлагается применять паттерн визитор. Довольно много писанины. С мультиметодами всё выходит очень просто и понятно, хотя внутри будет, вероятно, примерно то же — таблица с указателями на таблицы и тд.

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

Собственно современные ЯП и пытаются найти эту золотую середину и проводят её в разных местах. Поэтому сложные ЯП нужны, но не слишком переусложнённые.
Re[4]: Феномен lisp-а и rust-а
От: varenikAA  
Дата: 26.05.21 12:31
Оценка: 1 (1)
Здравствуйте, Эйнсток Файр, Вы писали:

AA>> лисп и раст уникальны


ЭФ>У меня только один вопрос — ты уже́
Автор: kaa.python
Дата: 31.12.20
изучил, как там работает interop / native API или как называется та технология, которая реализует вызовы из lisp в rust и обратно ?

времени не хватает. читаю практичный лисп на лиспер.ру
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re: Феномен lisp-а и rust-а
От: AlexRK  
Дата: 26.05.21 12:34
Оценка: +3
Здравствуйте, varenikAA, Вы писали:

AA>Что является высшим приоритетом в программировании?

AA>Фрэймворки? Производительность?

Каждый в своем пузыре сидит и, соответственно, имеет свои приоритеты. "Высшего" нет, все относительно.

Для кого-то приоритет "решение проблем заказчика максимально быстро и качественно за минимальные деньги" (см. выше), для кого-то "минимизировать количество багов любой ценой" (авиакосмическая отрасль), для кого-то "иметь принципиальную возможность выразить на языке нужные концепции" (что-нибудь с высокой сложностью/абстрактностью предметной области, математические движки условно), для кого-то "возможность быстрого создания интересной программы", для кого-то просто фан от программирования. И так далее.
Re[2]: Феномен lisp-а и rust-а
От: varenikAA  
Дата: 26.05.21 12:34
Оценка: +1 :))
Здравствуйте, Kolesiki, Вы писали:

K>Неужели тухлее темы не было?? Прибежать с двумя аутсайдерами и сотрясать как идолом. Провокации — их если пишешь, в них должен быть ... интеллект какой-то что ли! А эти вбросы оставь первокурсникам. Или ты уже на втором?

Еще не выбрал куда поступать. Тема нормальная.

https://www.tiobe.com/tiobe-index/

rust уже скоро в первую лигу перейдет. лисп повыше упомянутого луа.
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re[4]: Феномен lisp-а и rust-а
От: varenikAA  
Дата: 26.05.21 12:35
Оценка:
Здравствуйте, kov_serg, Вы писали:

_>Синтаксис простой в изучении и очень гибкий.


с первым согласен полностью, но только вот гибкость у него такая себе(низкоуровневая, требует думать как машина).
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re[2]: Феномен lisp-а и rust-а
От: varenikAA  
Дата: 26.05.21 12:38
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>Решение проблем заказчика максимально быстро и качественно за минимальные деньги.


Тут два варианта — быстро печатать или иметь языковые инструменты для быстрой реализации/расширения.
Очевидно, что все языки разные.
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re[5]: Феномен lisp-а и rust-а
От: kov_serg Россия  
Дата: 26.05.21 13:11
Оценка:
Здравствуйте, varenikAA, Вы писали:

AA>с первым согласен полностью, но только вот гибкость у него такая себе(низкоуровневая, требует думать как машина).

И как думает машина?
Re[6]: Феномен lisp-а и rust-а
От: varenikAA  
Дата: 26.05.21 13:15
Оценка:
Здравствуйте, kov_serg, Вы писали:

_>Здравствуйте, varenikAA, Вы писали:


AA>>с первым согласен полностью, но только вот гибкость у него такая себе(низкоуровневая, требует думать как машина).

_>И как думает машина?

укзатели, кругом указатели и ассемблерные вставки.
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re: Феномен lisp-а и rust-а
От: Pzz Россия https://github.com/alexpevzner
Дата: 26.05.21 13:20
Оценка:
Здравствуйте, varenikAA, Вы писали:

AA>Что является высшим приоритетом в программировании?

AA>Фрэймворки? Производительность?
AA>На мой взгляд важнейшим являются простота ЯП и возможность посредством ЯП сохранять код

Экосистема.

Rust очень сложный язык, кстати. Не концептуально, это было бы простительно, а своими синтаксическими прибабахами.
Re[3]: Феномен lisp-а и rust-а
От: Ночной Смотрящий Россия  
Дата: 26.05.21 13:21
Оценка: +1
Здравствуйте, varenikAA, Вы писали:

НС>>Решение проблем заказчика максимально быстро и качественно за минимальные деньги.

AA>Тут два варианта -

Тут очень много вариантов.

AA> быстро печатать


Это пофигу и ни на что не влияет.

AA> или иметь языковые инструменты для быстрой реализации/расширения.


Решение проблем это не только начальная реализация, но и дальнейшая эволюция кода.

AA>Очевидно, что все языки разные.


Ну ты прям КО.
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[4]: Феномен lisp-а и rust-а
От: Pzz Россия https://github.com/alexpevzner
Дата: 26.05.21 13:21
Оценка:
Здравствуйте, kov_serg, Вы писали:

AA>>Таких ЯП как си и луа вагон, а лисп и раст уникальны даже по отношению друг к другу.

AA>>раст кстати имеет отдельные черты оберона в части полиморфизма.
_>Уникальны sql, erlang, forth, prolog, brainfuck... а раст и lisp как раз совершенно обычные языки.

Нет, я не согласен. Лисп — он такой первый. Чуть ли даже не раньше Фортрана появился (или чуть позже его, тут я могу напутать).
Re[2]: Феномен lisp-а и rust-а
От: Pzz Россия https://github.com/alexpevzner
Дата: 26.05.21 13:23
Оценка:
Здравствуйте, Kolesiki, Вы писали:

K>Неужели тухлее темы не было?? Прибежать с двумя аутсайдерами и сотрясать как идолом. Провокации — их если пишешь, в них должен быть ... интеллект какой-то что ли! А эти вбросы оставь первокурсникам. Или ты уже на втором?


А кто в этой дискуссии аутсайдер?
Re: Феномен lisp-а и rust-а
От: blacktea  
Дата: 26.05.21 14:03
Оценка: +2 -1
Здравствуйте, varenikAA, Вы писали:

AA>Что является высшим приоритетом в программировании?

AA>Фрэймворки? Производительность?

Умение абстрагироваться от конкретных языков программирования, фреймворков и библиотек. Способность спроектировать и реализовать красивую, простую и понятную систему. Грубо говоря, умение работать на мета уровне.

AA>На мой взгляд важнейшим являются простота ЯП и возможность посредством ЯП сохранять код

AA>максимально простым и однозначным.

Можно писать максимально просто и однозначно даже на самом ужасном языке программирования. А можно писать максимально ужасно на самом простом и красивом языке.
Re[2]: Феномен lisp-а и rust-а
От: Эйнсток Файр Мухосранск Странный реагент
Дата: 26.05.21 18:07
Оценка:
B> Можно писать максимально просто и однозначно даже на самом ужасном языке программирования. А можно писать максимально ужасно на самом простом и красивом языке.

А можно прийти устраиваться на работу и провалить собеседование из-за незнания деталей технологии.
Re[3]: Феномен lisp-а и rust-а
От: blacktea  
Дата: 26.05.21 18:39
Оценка:
Здравствуйте, Эйнсток Файр, Вы писали:

B>> Можно писать максимально просто и однозначно даже на самом ужасном языке программирования. А можно писать максимально ужасно на самом простом и красивом языке.

ЭФ>А можно прийти устраиваться на работу и провалить собеседование из-за незнания деталей технологии.

Можно, но как это связано с тем, что я написал выше?
Re[3]: Феномен lisp-а и rust-а
От: kov_serg Россия  
Дата: 26.05.21 18:42
Оценка:
Здравствуйте, varenikAA, Вы писали:

AA>https://www.tiobe.com/tiobe-index/


AA>rust уже скоро в первую лигу перейдет. лисп повыше упомянутого луа.

И будет тягаться с visual basic
Re[4]: Феномен lisp-а и rust-а
От: Эйнсток Файр Мухосранск Странный реагент
Дата: 26.05.21 20:01
Оценка:
B>>> Можно писать максимально просто и однозначно даже на самом ужасном языке программирования. А можно писать максимально ужасно на самом простом и красивом языке.
ЭФ>>А можно прийти устраиваться на работу и провалить собеседование из-за незнания деталей технологии.

B> как это связано с тем, что я написал выше?


Обычно те, кто "готов писать на любом языке" деталей каждого языка не знают.
Re[2]: Феномен lisp-а и rust-а
От: Poopy Joe Бельгия  
Дата: 26.05.21 20:08
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>Решение проблем заказчика максимально быстро и качественно за минимальные деньги.

Дай определение качественно.
Re[4]: Феномен lisp-а и rust-а
От: varenikAA  
Дата: 27.05.21 01:10
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

AA>>Очевидно, что все языки разные.


НС>Ну ты прям КО.


Ну, не знаю, от профессионалов матерых слышу часто ЯП не важен. Это как брить топором.
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re[5]: Феномен lisp-а и rust-а
От: blacktea  
Дата: 27.05.21 06:15
Оценка: +2
Здравствуйте, Эйнсток Файр, Вы писали:

ЭФ>Обычно те, кто "готов писать на любом языке" деталей каждого языка не знают.


Это правда, но это не значит, что они пишут говнокод. За то на прошлой работе был парень, который знал все тонкости и нюансы C++ в мельчайших деталях. Но писал такой наркоманский код, что потом хотелось все переписать к чертям собачьим.
Re: Феномен lisp-а и rust-а
От: trop Россия  
Дата: 27.05.21 07:03
Оценка: +1
Здравствуйте, varenikAA, Вы писали:
AA>Что является высшим приоритетом в программировании?

быстро и эффективно выполнять задачи, к сожалению это не означает "получать удовольствие",
мой основной язык abap/4 и он очень эффективен, позволяет сконцентрироваться на самой задаче,
но язык примитивен даже сейчас, чрезмерно длинные инструкции и устаревшие конструкции,
некоторые до сих пор пишут операторы заглавными как на COBOL 66,
и многие компании требуют именно такое оформление кода, у меня от этого до сих пор немного подгорает,
складывается ощущение, что люди не писали на других языках

lisp прекрасен, на нём можно довольно быстро писать, т.к. есть nil и можно писать сверху вниз,
сразу проектировать в коде для экономии времени,
haskell сложнее, но на нём можно написать любое алгоритмическое извращение, repl утилиты легко писать,
python классный язык, легко писать и довольно быстро, но он медленнее выполняется и не годится если нужна скорость,
на rust я не писал, но лысый из яндекса и другие знающие говорят, что этот язык сильно недооценен,
и еще почему-то все кто пробовал Гошку очень хвалят его (go)
-
Re[2]: Феномен lisp-а и rust-а
От: serj.e  
Дата: 27.05.21 11:52
Оценка: 2 (1)
vsb>Теперь по поводу сложности ЯП. Суть в том, что реальность сложная. Да, порой программисты её переусложняют ещё больше, но даже если ты не привносишь ни толики дополнительной сложности, то реальность остаётся сложной. Простые задачи решать обычно не нужно. И сложность задачи неизменно выливается в сложность решения. Это можно назвать законом сохранения сложности. Нельзя решить сложную задачу просто. Если это кто-то делает, значит где-то подвох, где-то эту сложность спрятали.

Именно. Хорошая иллюстрация к этим словам — примитивнейшая (с виду) "задача телеграфиста", сформулированная Науром.

"Telegram Problem", originally described by Peter Naur, is to write a program which accepts lines of text and generates output lines containing as many words as possible, where the number of characters in each line does not exceed a certain length. The words may not be split and we assume no word is longer than the size of the output lines. This is analogous to the word-wrapping problem in text editors.


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

vsb>К примеру есть задача менеджмента памяти. В постановке задачи часто нет ограничений на размер входных данных. Это вызывает необходимость выделять память разного размера и освобождать её. От этой сложности не уйти. Но её можно спрятать за сборщиком мусора. Таким образом сложность задачи перешла в сложность реализации рантайма.


Это называется "заметание проблемы под ковёр" вместо её решения. Правильное решение — это не просто выделять память, а пользоваться аллокаторами, аренами, слябами, преаллоцированными буферами и т.д.

vsb>Но если всё писать на виртовском Паскале, окажется, что сама структура кода получается довольно сложной и упростить её никак не получится. Отсюда и берётся нужда в сложных ЯП. Когда сложность структуры кода переносится в сложную семантику ЯП и в результате получается простой код, который решает сложную проблему. А структурная сложность спрятана в компиляторе и рантайме, которые обеспечивают выполнение сложной задачи простым по виду кодом.


Да. А ещё, принимая во внимание, что лучший код — это ненаписанный код, я все больше прихожу к выводу, что полноценное метапрограммирование на этапе компиляции жизненно необходимо. По этому поводу мне нравится ещё одно высказывание: "язык, который не позволяет мыслить в терминах AST, приносит больше вреда, чем пользы". И очень жаль, что два языка, где эта концепция доведена до совершенства, не допилены по уровню качества до должного уровня, и на боевых задачах их использовать боязно. Я про Nemerle и Nim. А шаблонизатор C++, который развивался стихийно ("discovered, not engineered"), хоть на нём и можно выразить всё то же самое, трогать просто эстетически противно

vsb>Там он реализован "просто" — есть таблица с указателями на функции, есть указатель на эту таблицу в объекте


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

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


Есть такое. Можно вспомнить Аду. Я был крайне удивлён, что GNAT не просто жив, но и активнейшим образом развивается, и его современная версия Ada/Spark позволяет делать настолько мощные трюки со статическим доказательством корректности кода во время компиляции, что Rust отдыхает. Но. Так как Ada это сборище всех концепций и парадигм, огромная коллекция всего на свете, то осилить её на должном уровне зашибёшься. Ещё и синтаксис вырвиглазный.
Re[5]: Феномен lisp-а и rust-а
От: Ночной Смотрящий Россия  
Дата: 27.05.21 12:28
Оценка: :)
Здравствуйте, varenikAA, Вы писали:

AA>>>Очевидно, что все языки разные.

НС>>Ну ты прям КО.
AA>Ну, не знаю, от профессионалов матерых слышу часто ЯП не важен.

Не важен для чего?

AA> Это как брить топором.


Иногда вполне разумный вариант.
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[3]: Феномен lisp-а и rust-а
От: Ночной Смотрящий Россия  
Дата: 27.05.21 12:28
Оценка:
Здравствуйте, Poopy Joe, Вы писали:

НС>>Решение проблем заказчика максимально быстро и качественно за минимальные деньги.

PJ>Дай определение качественно.

Зачем?
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[2]: Феномен lisp-а и rust-а
От: blacktea  
Дата: 27.05.21 17:22
Оценка: 1 (1)
Здравствуйте, trop, Вы писали:

T>lisp прекрасен, на нём можно довольно быстро писать, т.к. есть nil и можно писать сверху вниз,

T>сразу проектировать в коде для экономии времени,

На Лиспе и правда можно быстро прототипы писать, но за счет динамической типизации лучше потом все это переписывать на чем-то типизированном.

T>haskell сложнее, но на нём можно написать любое алгоритмическое извращение, repl утилиты легко писать,


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

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


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

T>на rust я не писал, но лысый из яндекса и другие знающие говорят, что этот язык сильно недооценен,

T>и еще почему-то все кто пробовал Гошку очень хвалят его (go)

Пока я был в Яндексе, все очень любили Раст, и недолюбливали Го, но при этом именно Го сделали одним из разрешенных языков.
Re[3]: Феномен lisp-а и rust-а
От: varenikAA  
Дата: 28.05.21 01:21
Оценка:
Здравствуйте, blacktea, Вы писали:

B>Пока я был в Яндексе, все очень любили Раст, и недолюбливали Го, но при этом именно Го сделали одним из разрешенных языков.


смотришь на go и не видишь никаких приемушеств. ну быстро накидали библиотек для всяких нужно. это конечно говорит в пользу языка.
но это также говорит что он спонсируется гуглом.
Все же раст, как врочем и ди(если не оглядываться на сборщкик мусора) предоставляют наиболее мощный компилятор в купе с иммутабельностью.
Если обратить внимание на сообщения компляторов то видно что он действительно очень умный. он подсказывает.
разница между растом и ди лишь в том что раст основан на выражениях, а ди императивный (ближе к классике).
в принципе стоило бы наверно сравнить плюшки и мишки этих двух статически компилируемых ЯП.
например, в ди участник реализовал мультиметоды, в раст эта проблема как я понял решена трейтами.
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re[4]: Феномен lisp-а и rust-а
От: kov_serg Россия  
Дата: 28.05.21 09:50
Оценка:
Здравствуйте, varenikAA, Вы писали:

AA>Здравствуйте, blacktea, Вы писали:


B>>Пока я был в Яндексе, все очень любили Раст, и недолюбливали Го, но при этом именно Го сделали одним из разрешенных языков.


AA>смотришь на go и не видишь никаких приемушеств. ну быстро накидали библиотек для всяких нужно. это конечно говорит в пользу языка.

AA>но это также говорит что он спонсируется гуглом.
AA>Все же раст, как врочем и ди(если не оглядываться на сборщкик мусора) предоставляют наиболее мощный компилятор в купе с иммутабельностью.
AA>Если обратить внимание на сообщения компляторов то видно что он действительно очень умный. он подсказывает.
AA>разница между растом и ди лишь в том что раст основан на выражениях, а ди императивный (ближе к классике).
AA>в принципе стоило бы наверно сравнить плюшки и мишки этих двух статически компилируемых ЯП.
AA>например, в ди участник реализовал мультиметоды, в раст эта проблема как я понял решена трейтами.

https://www.youtube.com/watch?v=cLhnubqavDg&amp;t=20412

https://www.youtube.com/watch?v=dflRl4XUbj8&amp;t=180
Отредактировано 28.05.2021 10:05 kov_serg . Предыдущая версия .
Re: Феномен lisp-а и rust-а
От: Тёмчик Австралия жж
Дата: 30.05.21 07:06
Оценка:
Здравствуйте, varenikAA, Вы писали:

AA>Почему rust? Утверждают что компилятор раста не позволяет выполнить неправильные операции с памятью. нереально круто.


Злые языки утверждают, что если C++ не позволяет завести динамический массив, то раст- связный список. Представляешь, какой профит- найти цикл в списке не спросят.
Re[3]: Феномен lisp-а и rust-а
От: vdimas Россия  
Дата: 30.05.21 23:06
Оценка: +1
Здравствуйте, Poopy Joe, Вы писали:

НС>>Решение проблем заказчика максимально быстро и качественно за минимальные деньги.

PJ>Дай определение качественно.

Ка́чество програ́ммного обеспечения

— способность программного продукта при заданных условиях удовлетворять установленным или предполагаемым потребностям (ISO/IEC 25000:2014)[1].

— весь объём признаков и характеристик программ, который относится к их способности удовлетворять установленным или предполагаемым потребностям (ГОСТ Р ИСО/МЭК 9126-93, ISO 8402:94)[2][3];

— степень, в которой система, компонент или процесс удовлетворяют потребностям или ожиданиям заказчика или пользователя (IEEE Std 610.12-1990)


Для отдельных модулей (т.е. с т.з. конкретного разработчика) — степень соответствия модуля функциональным и нефункциональным требованиям.

И да, исходно должно быть не "проблем заказчика", а "задач заказчика".
Проблемы, наоборот, часто возникают по мере внедрения готовых решений, т.к. "саботаж неизбежен" (С).
И это не шутка, еще ни одно заметное (в кол-ве затрагиваемых людей) внедрение автоматизации очередной операции производства/учёта/управления и т.д. не обходилось без противодействия на местах. ))

Да что далеко ходить — даже у айтишников при вводе в обиход очередной системы контроля версий или системы сборки проектов противодействия неизбежны.
Re: Феномен lisp-а и rust-а
От: Artem Korneev США https://www.linkedin.com/in/artemkorneev/
Дата: 15.06.21 18:28
Оценка:
Здравствуйте, varenikAA, Вы писали:

AA> Почему rust? [..]

AA> создает чистый код на этих ЯП.

И где бы посмотреть на примеры хорошего чистого кода на Rust?..
С уважением, Artem Korneev.
Re[2]: Феномен lisp-а и rust-а
От: varenikAA  
Дата: 16.06.21 01:16
Оценка:
Здравствуйте, Artem Korneev, Вы писали:

AK>Здравствуйте, varenikAA, Вы писали:


AA>> Почему rust? [..]

AA>> создает чистый код на этих ЯП.

AK>И где бы посмотреть на примеры хорошего чистого кода на Rust?..


https://doc.rust-lang.org/book/ch02-00-guessing-game-tutorial.html
а в вашем понимании что означает чистый?
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re[3]: Феномен lisp-а и rust-а
От: Artem Korneev США https://www.linkedin.com/in/artemkorneev/
Дата: 16.06.21 02:48
Оценка: 1 (1) +3
Здравствуйте, varenikAA, Вы писали:

AA>>> создает чистый код на этих ЯП.

AA>https://doc.rust-lang.org/book/ch02-00-guessing-game-tutorial.html

Учебные фрагменты на 10..20 строк это несерьёзно.
В продакшн-коде у вас не будет этих "expect()", там придётся ставить реальную обработку ошибок и/или преобразования из одних типов ошибок в другие. А ветвления кода будут вызывать не println!(), а реальные методы, со своими аргументами и своими результатами выполнения и кодами ошибок. И код очень быстро станет куда менее красивым.

AA>а в вашем понимании что означает чистый?


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

Из недавних попыток — я воспользовался макросами. Получилось неплохо, основной код бизнес-логики значительно упростился. Но при этом синтаксис самих макросов в Rust'е тоже не то чтоб легко читаемый.
С уважением, Artem Korneev.
Re[4]: Феномен lisp-а и rust-а
От: varenikAA  
Дата: 16.06.21 03:02
Оценка:
Здравствуйте, Artem Korneev, Вы писали:

тех самых деталей, загромождая код. Бороться с этим трудно.
что ж, возможно. этой мой взгляд со стороны. сам я дальше учебного примера не заходил. чистый код в моем понимании это http://blog.cleancoder.com/

AK>Из недавних попыток — я воспользовался макросами. Получилось неплохо, основной код бизнес-логики значительно упростился. Но при этом синтаксис самих макросов в Rust'е тоже не то чтоб легко читаемый.

По сравнению с другими ЯП с макросами или по сравнению с обычным кодом? макросы это же расширение компилятора, вряд ли они могут бы простыми.
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re[5]: Феномен lisp-а и rust-а
От: Artem Korneev США https://www.linkedin.com/in/artemkorneev/
Дата: 16.06.21 21:16
Оценка: 1 (1)
Здравствуйте, varenikAA, Вы писали:

AA>что ж, возможно. этой мой взгляд со стороны. сам я дальше учебного примера не заходил.


Ясно. Я думал, примеры есть.
На C++/C#/Java я могу писать легко читаемый код. Обычно разделяю для этого код на разные уровни, чтоб в бизнес-логике не было низкоуровневых деталей, чтоб бизнес-логика отражала предметную область как можно лучше. С Rust'ом мне пока сложно в этом плане.

Из того, что мне видится примерами хорошего кода на Rust, могу упомянуть опенсорсные проекты типа этого:

https://github.com/SergioBenitez/Rocket/

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

AA>По сравнению с другими ЯП с макросами или по сравнению с обычным кодом? макросы это же расширение компилятора, вряд ли они могут бы простыми.


По сравнению с обычным кодом.
С уважением, Artem Korneev.
Re: Феномен lisp-а и rust-а
От: Cyberax Марс  
Дата: 17.06.21 05:59
Оценка:
Здравствуйте, varenikAA, Вы писали:

AA>Почему lisp? потому что это первый(только подумайте) ЯП со сборщиком мусора. Только одно это убрало огромное кол-во сложности.

Занудствую: первым языком с GC был Algol-68.
Sapienti sat!
Re[2]: Феномен lisp-а и rust-а
От: varenikAA  
Дата: 17.06.21 06:42
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Здравствуйте, varenikAA, Вы писали:


AA>>Почему lisp? потому что это первый(только подумайте) ЯП со сборщиком мусора. Только одно это убрало огромное кол-во сложности.

C>Занудствую: первым языком с GC был Algol-68.

а я думал, что лисп в 58 родился?

в тему топика:

http://dtrace.org/blogs/bmc/2018/09/18/falling-in-love-with-rust/

https://coderlessons.com/articles/veb-razrabotka-articles/liubovnoe-pismo-k-clojure-chast-1
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re[4]: Феномен lisp-а и rust-а
От: Эйнсток Файр Мухосранск Странный реагент
Дата: 24.08.21 00:18
Оценка:
ЭФ> как называется та технология, которая реализует вызовы из lisp в rust и обратно ?

Foreign Function Interface.

Кстати, как идут дела?
rust ffi
Re[3]: Феномен lisp-а и rust-а
От: Doom100500 Израиль  
Дата: 25.08.21 05:41
Оценка: :)
Здравствуйте, varenikAA, Вы писали:

AA>https://www.tiobe.com/tiobe-index/


AA>rust уже скоро в первую лигу перейдет


Ух ты!!! Уже FoxPro на целых cемь пунктов обогнал. Вещь
Спасибо за внимание
Отредактировано 25.08.2021 5:44 Doom100500 . Предыдущая версия .
Re[3]: Феномен lisp-а и rust-а
От: B0FEE664  
Дата: 25.08.21 15:30
Оценка:
Здравствуйте, varenikAA, Вы писали:

AA>https://doc.rust-lang.org/book/ch02-00-guessing-game-tutorial.html


А чем этот код отличается от C++?
И каждый день — без права на ошибку...
Re: Феномен lisp-а и rust-а
От: B0FEE664  
Дата: 25.08.21 15:46
Оценка:
Здравствуйте, varenikAA, Вы писали:

AA>Что является высшим приоритетом в программировании?

Отсутствие ошибок.

AA>На мой взгляд важнейшим являются простота ЯП и возможность посредством ЯП сохранять код

AA>максимально простым и однозначным.

Ну нет. Простой и однозначный код ведёт к нехватке ресурсов.

AA>И здесь я вижу пока лишь два кандидата.

AA>Почему lisp? потому что это первый(только подумайте) ЯП со сборщиком мусора. Только одно это убрало огромное кол-во сложности.
Разве это не убило lisp?

AA>Почему rust? Утверждают что компилятор раста не позволяет выполнить неправильные операции с памятью. нереально круто.

Это как? Что будет, если памяти не хватит для поступивших данных?
И каждый день — без права на ошибку...
Re[2]: Феномен lisp-а и rust-а
От: T4r4sB Россия  
Дата: 25.08.21 19:02
Оценка:
Здравствуйте, B0FEE664, Вы писали:

AA>>Почему rust? Утверждают что компилятор раста не позволяет выполнить неправильные операции с памятью. нереально круто.

BFE>Это как? Что будет, если памяти не хватит для поступивших данных?

Паника будет.
Re[4]: Феномен lisp-а и rust-а
От: vaa  
Дата: 26.08.21 01:34
Оценка:
Здравствуйте, B0FEE664, Вы писали:

BFE>А чем этот код отличается от C++?

В первую очередь отсутствием операторов, отcутствием void
ну т.е. большей функциональностью. компоуз и т.п.
явное приведение типов. много чего. простой и понятный карго.
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re[2]: Феномен lisp-а и rust-а
От: vaa  
Дата: 26.08.21 01:39
Оценка:
Здравствуйте, B0FEE664, Вы писали:

BFE>Отсутствие ошибок.

Знаете способ как доказать что в коде нет ошибок?
Главное это полезность. Куча софта который страшно глючил по началу, но что называется "выстрелил". тот же firefox.
Он до сих падает, но он банально удобен.

BFE>Ну нет. Простой и однозначный код ведёт к нехватке ресурсов.

Это как?

BFE>Разве это не убило lisp?

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

BFE>Это как? Что будет, если памяти не хватит для поступивших данных?

Не практикую, но думаю у раста случится паника
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re[2]: Феномен lisp-а и rust-а
От: vaa  
Дата: 26.08.21 02:33
Оценка:
Здравствуйте, B0FEE664, Вы писали:

BFE>Разве это не убило lisp?

  работает. неплохо
(ql:quickload "dexador")
(ql:quickload "plump")
(ql:quickload "lquery")

(defvar *url* "https://apod.nasa.gov/apod/astropix.html")

(defvar *request* (dex:get *url*))

(defvar *parsed-content* (lquery:$ (initialize *request*)))

(defparameter +images+ (lquery:$ *parsed-content* "img" (attr "src")))

(defparameter +links+ (lquery:$ *parsed-content* "a" (attr "href")))

(defparameter +first-image+ (aref +images+ 0))

(defun get-links (arr)
  (loop for e from 0 to (- (array-total-size +links+) 1)
    collect (aref +links+ e)))

(defun is-bit (string)
  (or (null string)
      (eq 'bit (type-of string))))

(defun not-jpeg (s)
  (not (search ".jpg" s)))

(defun not-https (s) (search "https://" s))

(defparameter +cls+
  (remove-if 'not-https
  (remove-if 'not-jpeg
   (remove-if 'is-bit (get-links +links+)))))

(defparameter +segment+ (first +cls+))
(defparameter +filename+
  (subseq +segment+ (+ 1 (search "/" +segment+ :from-end t))))
  

(let ((bytes (dex:get (format nil "https://apod.nasa.gov/apod/~A" +segment+))))
  (with-open-file (out  (merge-pathnames "./nasa/" +filename+)
                       :direction :output
                       :if-exists :supersede
                       :if-does-not-exist :create
                       :element-type 'unsigned-byte)
    (write-sequence bytes out)))

(sb-ext:exit)


я уже не говорю про диалекты типа clojure, scheme, racket, janet-lang irone-scheme.
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re[3]: Феномен lisp-а и rust-а
От: B0FEE664  
Дата: 26.08.21 08:26
Оценка:
Здравствуйте, vaa, Вы писали:

BFE>>Отсутствие ошибок.

vaa>Знаете способ как доказать что в коде нет ошибок?
нет, такого способа вообще не существует.

vaa>Главное это полезность. Куча софта который страшно глючил по началу, но что называется "выстрелил". тот же firefox.

vaa>Он до сих падает, но он банально удобен.
Всё, что связано с web-ом вообще никогда нормально не работало. Я не знаю ни одной нормально работающей программы связанной с web-ом. Всё программирование в этой области — бардак и содомия. А уж говорить, что это главное... Извините, не согласен.

BFE>>Ну нет. Простой и однозначный код ведёт к нехватке ресурсов.

vaa>Это как?
Обычно расходуется либо слишком много памяти, либо слишком много энергии.

BFE>>Разве это не убило lisp?

vaa>Лисп сейчас очень активно развивается, достаточно окунуться в его среду, чтобы это понять.
В академической среде?

vaa>а аналогов сигнального протокола я до сих пор не встречал.

Если я правильно понял, то в некоторых библиотеках С++ используется похожая технология.

BFE>>Это как? Что будет, если памяти не хватит для поступивших данных?

vaa>Не практикую, но думаю у раста случится паника
паника — это правильная операция с памятью?
И каждый день — без права на ошибку...
Re[5]: Феномен lisp-а и rust-а
От: B0FEE664  
Дата: 26.08.21 08:29
Оценка:
Здравствуйте, vaa, Вы писали:

BFE>>А чем этот код отличается от C++?

vaa>В первую очередь отсутствием операторов, отcутствием void
vaa>ну т.е. большей функциональностью. компоуз и т.п.
vaa>явное приведение типов. много чего. простой и понятный карго.

Но ведь это зависит исключительно от стиля написания кода. Если хочешь писать на С++ как на Rust, то что мешает?
И каждый день — без права на ошибку...
Re[6]: Феномен lisp-а и rust-а
От: vaa  
Дата: 26.08.21 08:46
Оценка:
Здравствуйте, B0FEE664, Вы писали:

BFE> Если хочешь писать на С++ как на Rust, то что мешает?


С++ однако
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re[4]: Феномен lisp-а и rust-а
От: vaa  
Дата: 26.08.21 08:51
Оценка:
Здравствуйте, B0FEE664, Вы писали:

BFE>В академической среде?

в телеге довольно много только русскоговорящих любителей лиспа. не могу сказать что лисп академический. это скорее оберон.

BFE>паника — это правильная операция с памятью?

ну это не проблема раста, это от программиста зависит кончится память или нет.
плюсы что сделают?
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re[7]: Феномен lisp-а и rust-а
От: B0FEE664  
Дата: 26.08.21 10:29
Оценка:
Здравствуйте, vaa, Вы писали:

BFE>> Если хочешь писать на С++ как на Rust, то что мешает?

vaa>С++ однако

Нет, не мешает. На С++ можно писать в функциональном стиле, если есть желание.
И каждый день — без права на ошибку...
Re[6]: Феномен lisp-а и rust-а
От: alex_public  
Дата: 26.08.21 14:06
Оценка:
Здравствуйте, B0FEE664, Вы писали:

BFE> Но ведь это зависит исключительно от стиля написания кода. Если хочешь писать на С++ как на Rust, то что мешает?


Ничего не мешает. Более того, тот стиль, что навязывает компилятор Rust, является в точности тем же стилем, что считается правилами хорошего тона в современном C++. Т.е. вся разница между этими двумя языками в том, что в C++ ты так пишешь на самодисциплине, а в Rust компилятор тебе по другому просто не даёт (ну точнее и в Rust можно написать код в худших традициях C, типа void* и т.п., но для этого придётся использовать unsafe блок).
Re[8]: Феномен lisp-а и rust-а
От: vaa  
Дата: 27.08.21 07:55
Оценка:
Здравствуйте, B0FEE664, Вы писали:

BFE>Нет, не мешает. На С++ можно писать в функциональном стиле, если есть желание.

Мешает повышенная сложность плюсов.
Как ни крути, а семантика раста на много порядков проще.
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re[9]: Феномен lisp-а и rust-а
От: vaa  
Дата: 27.08.21 12:15
Оценка: :)
Здравствуйте, vaa, Вы писали:

vaa>Как ни крути, а семантика раста на много порядков проще.

но лисп круче, особенно если взглянуть на литл-лисп — кложу
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re[10]: Феномен lisp-а и rust-а
От: DarkEld3r  
Дата: 02.09.21 08:37
Оценка:
Здравствуйте, vaa, Вы писали:

vaa>но лисп круче, особенно если взглянуть на литл-лисп — кложу


И чем же кложа лучше других лиспов? Комон лисперы так вообще смотрят на неё как на говно.
Re[11]: Феномен lisp-а и rust-а
От: kaa.python Ниоткуда РСДН профессионально мёртв и завален ватой.
Дата: 02.09.21 08:50
Оценка:
Здравствуйте, DarkEld3r, Вы писали:

DE>И чем же кложа лучше других лиспов? Комон лисперы так вообще смотрят на неё как на говно.


Тем что из неё всё разнообразие мира JVM доступно, в первую очередь. Как бы не был прекрасен язык, без библиотек он бесполезен.
Re[11]: Феномен lisp-а и rust-а
От: vaa  
Дата: 02.09.21 11:56
Оценка:
Здравствуйте, DarkEld3r, Вы писали:

DE>И чем же кложа лучше других лиспов? Комон лисперы так вообще смотрят на неё как на говно.


я тут общался в телеге с кложуристами русскоговорящими насчет спеки, да кложа переоценена сильно,
единственное достижение кложи это синтаксис для хэшмапов {:name "alice" :age 12}
все остальное сильно слабее. так спеки это как библиотека валидации, но прикол в том, после валидации данные уходят дальше и могут быть как угодно преобразованы.
в отличии от коммон лиспа где можно испльзовать CLOS.
как всегда часть не может быть лучше целого.
Вообщем я забил на кложу, да и лиспов думаю в емаске хватит пока для поддержания мозговой активности.
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re[12]: Феномен lisp-а и rust-а
От: DarkEld3r  
Дата: 05.09.21 21:11
Оценка: +1
Здравствуйте, vaa, Вы писали:

vaa>я тут общался в телеге с кложуристами русскоговорящими насчет спеки, да кложа переоценена сильно,


Мне кажется, что ты слишком легко поддаёшься влиянию "авторитетов". Лисперы любят рассказывать байки про гибкость, мощность и прочий дебаг спутников в космосе. Да, язык интересный и с налётом "илитности", но надо понимать, что многие его фичи отсутствуют в более современных языках не потому, что лисп настолько опередил время, а потому что они, зачастую, неоднозначные. Скажем, хвалёная разработка в образе подталкивает к манкипатчингу. В общем, я бы рекомендовал не слушать разнообразных гуру и не метаться от плюсов к расту и от лиспа к хаскелю, в зависимости от того чей голос будет сегодня громче. А взять и освоить тот же лисп, попробовать на нём что-нибудь написать и сделать уже свои выводы.

Я сам когда-то давно наслушался этих романтических баек, но когда язык как следует пощупал, пришёл к выводу, что мне в целом динамика не особо нравится не важно Common Lisp ли это или Racket. Пощупать всякую экзотику бывает полезно, но надо именно ознакомиться с предметом, а не бегать по форумам и выбирать "самый мощный язык в мире".
Re[12]: Феномен lisp-а и rust-а
От: DarkEld3r  
Дата: 05.09.21 21:12
Оценка:
Здравствуйте, kaa.python, Вы писали:

KP>Тем что из неё всё разнообразие мира JVM доступно, в первую очередь. Как бы не был прекрасен язык, без библиотек он бесполезен.


Это понятно, я усомнился именно в прекрасности кложуры самой по себе.
Re[13]: Феномен lisp-а и rust-а
От: kaa.python Ниоткуда РСДН профессионально мёртв и завален ватой.
Дата: 06.09.21 00:48
Оценка:
Здравствуйте, DarkEld3r, Вы писали:

DE>Это понятно, я усомнился именно в прекрасности кложуры самой по себе.


Любой Лисп прекрасен сам по себе за счёт REPL. А Кложа в двойное прекрасна из-заJVM. Как-то так
Re[13]: Феномен lisp-а и rust-а
От: vaa  
Дата: 06.09.21 03:06
Оценка:
Здравствуйте, DarkEld3r, Вы писали:

DE>Я сам когда-то

По спирали приближаюсь к похожу мнению, однако большинству ЯП
все же не помешало бы больше гибкости в разработке.
Так 10 лет была отличная возможность типа GUI UML-редактора в VS для C#
прямо из редактора можно было создавать инстансы и у них вызывать методы.
Что-то типа https://www.bluej.org/
Ну и REPL это же просто такая удобная штука. Куда без нее.
Или макросы, без них метапрограммивание весьма убого. и к тому же не работает, как я убедился на DispatchProxy
т.е. цепочные вызовы не обрабатываются прокси.
Автор: Serginio1
Дата: 05.09.21
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re[4]: Феномен lisp-а и rust-а
От: Ночной Смотрящий Россия  
Дата: 07.09.21 10:34
Оценка:
Здравствуйте, vdimas, Вы писали:

V>И да, исходно должно быть не "проблем заказчика", а "задач заказчика".


Задачи у заказчика возникают в следствие его проблем.
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re: Феномен lisp-а и rust-а
От: cppguard  
Дата: 09.09.21 22:32
Оценка:
Здравствуйте, varenikAA, Вы писали:

AA>На мой взгляд важнейшим являются простота ЯП и возможность посредством ЯП сохранять код


Доводилось мне участвовать в разработке двух разных проектов на Clojure и Haskell. Я даже не знаю, каким словом описать ту неразбериху, которая творилась в коде. У нас же все функции без побочных эффектов, да? — Ага, поэтому контекст загружался через вызовы каких-то левых функций, которые модифицировали глобальное состояние. Я думаю, что даже схемы попила госденег в РФ не такие запутанные, как функциональный код в кровавом энтерпрайзе. Кстати, в проекте на Clojure был ещё один вариант передачи контекста — он хранился в JSON-like структуре. Это просто бомба! Вместо строго типизированной иерархии объектов мы получаем какую-то кашу, которая, стоит, чуть тронуть (убрать или изменить поле), взрывается зигзиллионом ошибок. Поэтому поступали просто — не убирали старые поля, а добавляли sum2, newSum и так далее. Вот это чистый код, я понимаю!

P.S. Конкретно на Haskell можно писать красивый, более безопасный, не всегда быстрый, строго типизированный код, просто мало кто это умеет.
Re[2]: Феномен lisp-а и rust-а
От: vaa  
Дата: 10.09.21 03:30
Оценка:
Здравствуйте, cppguard, Вы писали:

C> Поэтому поступали просто — не убирали старые поля, а добавляли sum2, newSum и так далее. Вот это чистый код, я понимаю!

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

C>P.S. Конкретно на Haskell можно писать красивый, более безопасный, не всегда быстрый, строго типизированный код, просто мало кто это умеет.

в том то и дело, что умение гибко применять возможности языка приходит не сразу и не ко всем. 90% программистов они как религиозные фанатики, уверовавшие в истинного единого ООП/ФП/СтатТип/Динамику(подставить нужное).
Но когда понимаешь что это лишь кирпичи, а дом ты можешь построить любой, то и продукт выходит совсем иначе.

поэтому ЯП общего назначения поддерживающие все возможные методы (common lisp) лучше узкоспециализированных (clojure).
lisp это и сигналы(круче исключений в разы) и гибкий ООП и обобщенные методы(тут Ричи правильно заметил, что дженерики в языках типа c# это трэш, когда логика умножается на кол-во параметров типа)
и много другое.
Как заметил один лиспер справедливо "если бы круглые скобки были моей единственной проблемой!"
на лиспе писал только для фаната но он мне понравился больше кложи, свобода полнейшая, удобная отладка.
и самое главное простой очень синтаксис. все единообразно.
вчера посмотрел сколько операторов в F# чуть не упал.
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re[2]: Феномен lisp-а и rust-а
От: Hobbes Россия  
Дата: 15.09.21 18:35
Оценка:
Здравствуйте, Эйнсток Файр, Вы писали:

ЭФ>а lisp — Java-у, C#, Pyhton, JavaScript и Nemerle.


#скоро
Лисп на 30+ лет старше того, что он призван заменить.
Re[2]: Феномен lisp-а и rust-а
От: Hobbes Россия  
Дата: 15.09.21 18:41
Оценка:
Здравствуйте, Тёмчик, Вы писали:

Тё>Злые языки утверждают, что если C++ не позволяет завести динамический массив


А std::vector это что?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.