LINUX.ORG.RU

Кложурист пробует лисп...

 , ,


2

6

в данном случае Common Lisp:

http://blog.00null.net/common-lisp-first-impressions/

Причина пробования — раздражающие моменты в Clojure: «the glacial startup time and general un-suitability to writing small programs»

и выносит вердикт:

«look like a promising language and a good candidate for small, compiled programs and little network services».

Кложурист пробует лисп...

А хаскеллист пробует хаскелль, ага.

КЛОЖУРА НЕ ЛИСП!!! НА КЛОЖУРЕ ПИШУТ ПРОДУКШОН, ЗНАЧИТ НЕ ЛИСП!!

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

В том и суть, что сейчас легко начать писать на CL — все инструменты доступны, даже кложурщики подтверждают.

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

При таком большом количестве документации и инструментов, люди почему то в продакшене юзают кложур. Почему 1) хипстота. 2) jvm 3) меньше скобок ..... и вещи о которых я не знаю ибо не юзала кложур в продакшене и не поддерживала проекты написанные в кложур.

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

Одно я знаю, на нем пишется меньше кода чем на пыхе. =)

gssomi
()

«look like a promising language and a good candidate for small, compiled programs and little network services».

Лул, какой-то троллинг

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

Ради чего?

«a good candidate for small, compiled programs and little network services»

Oxdeadbeef
() автор топика

Вот я кложурист, пробовал и CL, а сейчас активно тыкаю racket. Для «small, compiled programs» Схема с батарейками, т.е. racket подходит лучше. CL для более масштабных тем пойдёт. Сама по себе кложура заводится очень быстро. Сама по себе. А вот когда на проект навешана тонна dependencies, да и просто при старте через leiningen, это да-а... Устанешь. Надо будет boot попробовать.

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

сейчас легко начать писать на CL

Подтверждаю. Сел да поехал. Emacs + slime, книжку годную
http://www.apress.com/9781484211779
И в бой. Я тут как-то с удовольствием потыкал эту библиотеку,
http://www.xach.com/lisp/vecto/
С кложурьим опытом (и особенно елисповым) на общелисп было въехать на раз-два, как с порту на испанский.

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

Главное, вкури Emacs. После него никакой лисп тебе страшен не будет. Если боишься, то пробуй https://racket-lang.org/ – хорошая-годная схема с батарейками. В комплекте идт неплохое ide DrRacket для не осиливших Emacs. Пробуй, лучше оба. Одно удовольствие.

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

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

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

я се emacs установила, тыкаю каждый день по часу.

Лучше возьми какой-нибудь своей проект и пиши его только в Emacs. А по ходу дела допиливай Emacs под свои нужды.

Имхо, первое, что следует допилить под себя - переключение буфферов (как между теми, что сейчас видны, так и между теми, что не видны).

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

В общем, если что-то непонятно, то просто создавай тему на форме с тегом emacs. Тут много народу, что может помочь с ним.

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

=) благодарю.

В общем, если что-то непонятно, то просто создавай тему на форме с тегом emacs. Тут много народу, что может помочь с ним.

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

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

незнание емакс сильно замедляет работу

Установи helm, там отличный поиск команд - нужно набрать только примерное название, и т.о. многое упрощается. Кроме того helm сразу показывает какой хоткей забинден на команду. Т.е. получается такой своеобразный apropos совмещённый с набором команды.

no-such-file 👍👍👍👍👍
()
Ответ на: комментарий от gssomi

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

В гугле, особенно русскоязычном, бывает бредятина приличная. Вот пару дней назад искал, как можно экспортить выхлоп org-agenda-list в текстовый файл для conky. Так народ предлагает дёргать emacs в консольном режиме (прогружая все конфиги при этом) и ещё парсить вывод в stdin от emacs, чтобы убрать выхлоп от инициализации пакетов. Общем, лицорука была у меня приличная.

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

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

Это кстати да, в основном вся годная инфа устаревшая. Никто сейчас особо не пишет о своих успехах в исправлении какого то бага. Не те сейчас времена =(

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

Для «small, compiled programs» Схема с батарейками, т.е. racket подходит лучше. CL для более масштабных тем пойдёт.

А чем плох ракет для «масштабных тем»?

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

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

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

А чем плох ракет для «масштабных тем»?

Подозреваю что VM послабее, сборщик мусора попроще. В SBCL тоже не фонтан по сравнению с JVM, но лучше чем у остальных лиспов.

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

Publication Date: January 2, 2016

Нихренасибе, спасибо за ссылку!

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

Подозреваю что VM послабее, сборщик мусора попроще. В SBCL тоже не фонтан по сравнению с JVM, но лучше чем у остальных лиспов.

Да, наверное, ты прав.

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

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

Там надо считывать список org-agenda-file (который заполняется вызовами org-agenda-file-to-front) файлов. А он в конфигах сидит (если быть точным, то сейчас это хранится через custom-set-variables в .emacs вместе с настройками шрифта и т.п.). Можно ли сейвить отдельно - пока не смотрел, если можно, то сделаю себе. Это во-первых.

Во-вторых. В org agenda есть org-agenda-write которая умеет сейвить в txt, org, html, pdf и м.б. ещё куда-то. Зачем выплёвывать данные в stdin, а потом героически их парсить я не особо понимаю. Мне такой подход кажется кривоватым.

Корни этого метода растут отсюда: http://orgmode.org/manual/Extracting-agenda-information.html#Extracting-agend...

М.б. и канонично, но, как по мне, кривовато. Но тут есть один тонкий момент, я юзаю Emacs и под Linux, и под Windows. Поэтому у меня сразу возникает мысль, что написанный под Linux консольный парсер ничерта не взлетит под Windows.

И да, там ещё один момент есть. При использовании emacs -batch народ предлагает дёргать его по cron. Я этого не совсем понимаю. Т.к. очевидно, что если работать с задачами в emacs, то можно повесить сейв файла на хук. Сейчас я подцепился по kill-buffer-hook с проверкой имении буфера и мне кажется, что так уже более менее норм выглядит решение. Хотя тут не учитываются возможности использования сторонних программ для изменения org файлов, но там уже можно и над emacs -batch думать.

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

По моему, ничем не хуже. Я его ещё толком не распробовал, но уже нравится.

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

Я не знаю твоего конкретного случая, поэтому возможно действительно сделать через хуки. Я использую static site generator, который генерит html из org-mode запуская Эмакс батчем, ну и там по другому не сделаешь. Просто хотел сказать, что batch-mode - не обязательно наркомания, а используемый способ. Может быть не для твоего юзкейса.

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

А хаскеллист пробует хаскелль, ага.

Хаскеллист пробует Miranda или SML тогда уж.

hateyoufeel 👍👍👍👍👍
()

to writing small programs

хеллуворлды

small, compiled programs and little network services

хеллуворлды

slackwarrior 😊😊😊
()
Ответ на: комментарий от loz

As usual with such stories, it was not a bug in the application but a problem in the underlying platform (this time — SBCL)

After much investigation centering on our input data, we discovered that the problem was instead a race condition in low-level SBCL network code

Колятся и жрут, жрут и колятся. И от штанишек пар столбом поднимается. А потом еще такие удивляются, а чой это так мало борща в проде?

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

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

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

В той же джаве или питоне тебе придется ждать новой сборочки где это пофиксят добрые дяди.

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

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

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

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

Вероятность ниже? В жабе? В которой чуть ли не каждый месяц новую дыру находят?

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

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

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

Во первых, верятность бага в платформе гораздо ниже

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

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

Если так то ок, но мне почему-то кажется что это все равно не так «просто».

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

CL для любого размера проектов подходит, хотя в Racket батареек сравнимо, и они более стандартизированы. А Clojure - для упоротых фанатов функциональщины *и* скобок. Потому что фанаты функциональщины выбирают Haskell (или поэнтерпрайзнее - Erlang), а скобок - CL/Racket. По себе сужу. :) Фанат и того, и другого, но класть функциональщину на скобки - фу.

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

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

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

Была бы она новая для других тогда можно было бы понять

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

но класть функциональщину на скобки - фу.

Почему?

Ну и Clojure не знаю, можешь вкратце рассказать чем она сильно «функциональнее» чем Racket?

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

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

Простофилям невдомёк, что в SBCL лишь 10% кода написано на C, остальное на CL :-)

anonymous
()

Вообще говоря, хорошо агитировать писать на Common Lisp, сидя на LispWorks :-) Кто бы там что не говорил, а язык программирования хорошо настолько, насколько хороша его реализация :-) Поэтому что наслаждаться написанием своих программ на Common Lisp, а не охотится за багами в реализациях, нужна и платформа соответствующая, такая, как LispWorks :-) Ну а ежели для хобби, то можно хоть ECL брать, засучивать рукава и вперёд - флаг в руки и удачи в запуске :-)

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