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
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.