LINUX.ORG.RU

Полная ясность.

Боюсь что у Kuk'и полная ясность с Common Lisp'ом, поэтому от вопросов он воздержится.

Camel ★★★★★
()

mv, у него ведь в профиле мыло (или джаббер, хз, что это)

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

Блин, вообще такое дело. Щас бы я назадавал дофига вопросов, но вот ничего путного в голову не лезет

different_thing
()

у меня есть вопросов: как при программировании на CL архитекторы описывают проект в целом? принято ли вообще проектирование сверху вниз? насколько популярен в больших проектах CLOS? MOP? статическая типизация?

jtootf ★★★★★
()

А мне можно спросить? Есть ли в CL языковые средства для явного создания потоков (по аналогии с явовским Runnable например)?

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

А мне можно спросить? Есть ли в CL языковые средства для явного создания потоков (по аналогии с явовским Runnable например)?

В стандарте языка про треды ничего нет. Однако, почти все имплементации поддерживают или т.н. «нативные» треды, или «зелёные» (а-ля Эрланг), или обои.

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

у меня есть вопросов:

Disclaimer: отвечаю только за себя и за то, что я вижу.

как при программировании на CL архитекторы описывают проект в целом?

Да так же, как и в других. Есть свои паттерны, best practices, вот их и используют при декомпозиции задачи и вырисовыванию архитектуры.

принято ли вообще проектирование сверху вниз?

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

насколько популярен в больших проектах CLOS?

У нас популярен. Впрочем, это больше от человека зависит. Кто-то CLOS суёт и туда, куда не надо, кто-то на замыканиях OO-like DSL делает.

MOP? статическая типизация?

MOP - нет. Вообще, всё за пределами ANSI стараемся не использовать. Статической типизации в Лиспе нет, type hints особо не используются.

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

В каких случаях Лисп совсем не подходит для проекта? Есть ли необходимость в статической типизации если хочется высокой производительности (С, С++, Java)? Или оптимизатор все равно все уладит?

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

Он же умер, не?

Тарвер работает над нелисповым Qi III, но меня интересует Qi II или аналоги - статически типизированные надстройки над CL

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

В каких случаях Лисп совсем не подходит для проекта?

В штате нет лисперов с опытом.

Есть ли необходимость в статической типизации если хочется высокой производительности (С, С++, Java)? Или оптимизатор все равно все уладит?

БОльшая часть задач, решаемых написанием софта, вообще к производительности некритична, ибо работает с медленным I/O: диск, сеть, человек. Далее, hpc-задачи на одном хосте никто не считает. Соответственно, лучшим языком будет тот, который позволит проще выполнять распределённые вычисления. Если же надо считать на одном хосте, либо на необлачном кластере, но задача при этом строго очерчена и нужно экономить такты, то от Си никуда не деться, имхо. В остальных ситуациях скорости современных компиляторов (я не только про лисп) вполне хватает.

mv ★★★★★
() автор топика

Отлично, тред заставил меня разобраться уже, зачем нужен eval-when.

Вывод такой. Код:

(defun aaa () (print «bbb»))
(aaa)

Надо заставить выполниться функцию aaa при компеляции. Выходит так: надо поставить эту байду в (eval-when (:compile-toplevel) ....)

Толку то? Всё равно писать нечего (

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

Хотя, честно говоря, не понимаю, где такие выверты могут понадобиться

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

А серьезно? Если Лисп будет лучшим выбором в 99% проектов, кроме тех где нет лисперов, то чем он будет проще, лучше, надежнее и эффективнее зарекомендованых и проверенных в своих нишах инструментов?

*Кажется все катится к срачу о слегка необычном синтаксисе лиспа*

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

Черт, вот обидно, что как-то мало документированных сторонних библиотек, которые через asdf ставятся (системы они, кажется, называются. Я как-то слаб с терминологией). И почти всё сделано на основе аналога на C с помощью cffi

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

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

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

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

А серьезно? Если Лисп будет лучшим выбором в 99% проектов, кроме тех где нет лисперов, то чем он будет проще, лучше, надежнее и эффективнее зарекомендованых и проверенных в своих нишах инструментов?

Тем, что если статического решения вдруг перестанет хватать для элегантного решения задачи, то решение задачи превращается в кошмар. Лисп прекрасен тем, что его можно менять под задачу. Programmable programming language, как-никак.

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

Что лучше учить с ознакомительной целью: CL или схему?

Emacs :)

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

И почти всё сделано на основе аналога на C с помощью cffi

Чем же это плохо? Главное, чтобы обёрнуто было хорошо.

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

Такие же штуки умеет Scala. Зачем страшный синтаксис? Почему нельзя просто сделать Лисп 2, в котором все осталось кроме нотации и идиотских одинаковых скобок в гигантских количествах. Вопрос: может ли существовать Лисп с синтаксисом, к которому, мягко говоря, нужно долго привыкать?

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

> Почему нельзя просто сделать Лисп 2, в котором все осталось кроме нотации и идиотских одинаковых скобок в гигантских количествах

Потому что выясниться, что всё полезное из Лиспа уже есть в других языках :)

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

Кого проблемы? Кажется это проблемы лисперов. Вы выучили язык. Потратили время. А вакансий нет, или одна. В итоге можно дома кодить максимум. Лисп НИКТО НЕ ИСПОЛЬЗУЕТ. Считаные еденицы проектов, которые держатся на фанатах. Не обидно? Ведь язык очень мощный и если разобраться эффективный. Почему его нельзя сделать дружелюбнее?

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

Но никому не нужно, так как s-выражения круче

Когда используете слово никому, то рекомендую сравнить скольким нужны выражения и скольким не нужен Лисп в целом.

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