LINUX.ORG.RU

Нужен ли кому-то Common Lisp в IDEA?

 , , ,


0

5

Думаю, для разминки скиллов в Яве может быть интересно сделать связку между IDEA и SLIME. Пока не уверен, что из этого что-нибудь выйдет, но у меня уже есть положительный опыт написания IDE для лиспа «с нуля» на базе SWANK, клиент написан на tcl (URL у меня в профиле). Здесь, видимо, объём работы должен быть гораздо меньше.

Также я не совсем уверен, что это нужно мне самому.

Всё же tcl - это ещё и гуй, который легковесен и по мне так гораздо приятнее Java (не могу смотреть без слёз, как IDEA тормозит). И заодно ещё вопрос: насколько хорош CUSP и насколько тяжело может оказаться перевести CUSP на IDEA.

Хотя уместен и третий вопрос - нафига вообще что-то делать, если CUSP уже есть - его ведь можно просто допилить, если уж так приспичило.

★★★★★

Последнее исправление: den73 (всего исправлений: 3)

Ответ на: комментарий от den73

А. Ну извини - я думал ты создал тред чтобы прочитать тот самый ответ.

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

EMACS не предлагать

Предлагаю не EMACS, а GNU/Emacs.

AnDoR ★★★★★
()

Профессиональная IDE для Common Lisp в IDEA - это было бы очень здорово :-) Причём, обязательно, чтобы была коммерческая :-) Мне не жалко каких-нибудь $50 за профессионально выполненный инструмент, который сэкономит мне часы и дни, обеспечив рабочее место комфортом :-) Это гораздо лучше, чем биться как рыба о лёд с доморощенным SLIME, особенно, когда доходит до доработок и патчей, которые годами висят в Issue на каком-нибудь Гитхаб :-) А что, оупен соурце, свободный софт и прочее ляля как оно есть :-) Зато же ведь не проприетарщина :-) Лол :-) Другое дело, сомнительно, что этом можно реально заработать :-) Идея хорошая, но язык, сам понимаешь, мало кому нужен :-)

anonymous
()

Java (не могу смотреть без слёз, как IDEA тормозит)

Лол :-) Не могу смотреть без слёз на компьютеры с какими-нибудь жалкими 4 или 8 Гб памяти :-) Хотя даже на 2-х ядерном i5 с 8 Гб IDEA не тормозит :-) Вероятнее всего, тормозит она у тех, кто себя в этом сам пытается убедить :-) А тот, кому надо работать, а не бороться с тараканами, у того IDEA (и другой софт на этой платформе) работает прекрасно :-)

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

Нашёл несколько потенциально пригодных на запчасти проектов:

Плагины для Идеи:

la-clojure (примерно 500 кб кода на Яве)

schemely (глубокая альфа)

intellij-cl (непохоже, чтобы работал, не использует swank)

dundelion (для eclipse)

lispdev (для eclipse, вроде использует SWANK)

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

Какой профит разработчику от SLIME в IDEA? Чем оно будет отличаться от SLIME в Emacs?

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

Я не для того завёл топик, чтобы убеждать. А для того, чтобы узнать, кому это нужно. Лично я хочу изучить Java. Кроме того, мне интересно знать, что выгоднее - поддерживать целиком свою IDE (clcon) или встраиваться в уже существующую. Кроме того, когда я попытался сделать «по-взрослому» раскраску исходников в своей IDE, я увяз. Поэтому я хочу посмотреть, Как это сделали профессионалы. Правда, раскраска в идее катастрофически медленная. Даже когда я написал на лиспе интерпретатор лиспа, у меня получилось едва ли не быстрее. Так что вполне может оказаться, что учиться там нечему.

den73 ★★★★★
() автор топика
Последнее исправление: den73 (всего исправлений: 2)
Ответ на: комментарий от den73

Так что вполне может оказаться, что учиться там нечему.

Основать прибыльную компанию, которая обеспечивает оплачиваемой работой целый коллектив, труд которого использует бизнес различных стран мира - думаю, у них есть чему поучиться :-)

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

Ну гребаный стыд! Ты спрашиваешь, нужно ли это кому-нибудь? А людям нужны конкретные фичи, а не троллейбус из хлебушка, понимаешь?

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

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

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

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

Например, чем уникален лисп? Тем, что его можно прочитать только самим лиспом. Потому что в нём есть *features* и #. , а для расстановки отступов нужно знать лямбда-список. Т.е. мне будет невренда ссылка на любой живой плагин для таких же сложных языков, у к-рых лексер/парсер обращается к состоянию среды.

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

В целом мне вполне известна враждебность, к-рую все нормальные лисперы испытывают к любой альтернативной емаксу среде разработки.

А к чему лисперы дружелюбны, кроме своего любимого Лиспа? :-) Лол :-)

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

Потому что в нём есть *features* и #.

Извините за оффтоп, но где можно почитать про суть выражений с #. Ато вот натыкаюсь на это в некоторых проектах, а понять зачем это нужно не могу.

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

Нда, когда в 2.34 открываешь единственный вроде бы работающий плагин для лиспо-подобного языка и оказывается, что он написан на Kotlin, возникает некоторое раздражение. Но мат вроде бы здесь запрещён :(

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

Вообще, круто бы. Емакс задолбал.

Я как-то хотел написать для CL плагин для студии, возможно с подключением swank даже, но сил не хватило, и времени.

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

Вообще, и IDEA и студия, они позволяют даже более крутые вещи сделать, чем Emacs+SLIME, и с меньшими силами. В частности там, поддержку синтаксиса макросов и кастомного ридер-синтаксиса без извратов. Но что-то нет желающих пока, к сожалению. Потому что всем лень, и в том числе лень учить API всяких этих студий. А кому не лень, те пилят очередной плагин для скалы и котлина каких-нибудь.

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

Я не спрашиваю, кому не нужно. Я спрашиваю, кому нужно.

<анекдот, который заканчивается словами «на меня можешь не рассчитывать> :)

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

Например, чем уникален лисп? Тем, что его можно прочитать только самим лиспом.

Тем же уникален Perl :) Perl распарсит только Perl.

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

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

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

Ничем. Чтением лисперы называют не чтение, а свои ненужные никому DSL-костыли, чтобы придать им ауру таинственности.

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

В том что так написано в спецификации и должно делаться именно так, а не иначе.

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

Ну, а в чем отличие от других языков?

Тем что в других языках синтаксис не меняется. Допустим парсер встречает последовательность /foo,2,3,bar 42/ и как это понимать?

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

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

Кроме того, чтение может иметь побочные эффекты. Поэтому для каждой таблицы чтения нужна соответствующая ей «таблица чтения для IDE», и настраивать её должен автор таблицы чтения, по тем правилам, которые мы, как авторы плагина, должны ему сообщить. Сделать это он может на любом языке, но вряд ли это имеет смысл делать не на лиспе.

den73 ★★★★★
() автор топика
Последнее исправление: den73 (всего исправлений: 1)
Ответ на: комментарий от lovesan

Конечно, только с помощью Swank и никак иначе.

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

Потому что с помощью таблицы чтения можно, например, реализовать кастомные строки, заключённые в квадратные скобки. Или теги XML.

Если ограничиться синаксисом, то можно и не на лиспе (достаточно вверху указывать что-то вроде ;; — brackets: [], {}, <>

Если учитывать семантику, то лисп тут не одинок:

Это Haskell:

main = runBASIC' $ do

    10 LET I := 1
    20 LET S := 0
    30 LET S := S + 1/I
    40 LET I := I + 1
    50 IF I <> 100000000 THEN 30
    60 PRINT "Almost infinity is ";S
    80 END

А это — Си:

int main(int argc, char** argv) {

  /* Stack objects are created using "$" */
  var i0 = $(Int, 5);
  var i1 = $(Int, 3);
  var i2 = $(Int, 4);

  /* Heap objects are created using "new" */
  var items = new(Array, Int, i0, i1, i2);

  /* Collections can be looped over */
  foreach (item in items) {
    print("Object %$ is of type %$\n",
      item, type_of(item));
  }

  /* Heap objects destructed via Garbage Collection */
  return 0;
}

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

лисп тут не одинок

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

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

SLIME

патчей, которые годами висят в Issue на каком-нибудь Гитхаб

У меня есть противоположный опыт. Патч приняли в тот же день.

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

Мне нужна хоть какая-то IDE для лиспа ( операцинную систему EMACS не предлагать! )

А зачем тебе хоть какая-то, когда можно использовать самую лучшую?

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

Например, чем уникален лисп? Тем, что его можно прочитать только самим лиспом.

Да нет, в Perl такая же лажа. Только это нифига не преимущество, как ты, наверное, догадываешься.

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

Если Perl и Хаскель так плохо читаются Явой, следует ли ожидать, что их плагины за раскраской тоже обращаются к самим этим языкам?

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

то можно и не на лиспе (достаточно вверху указывать что-то вроде ;

Нельзя. У меня был встроенный в лисп лексер SQL.

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

Продолжай дальше себя обманывать. Твоя женщина небось состоит из скобочек, и для интерфейса с ней нужно использовать парсер s-exp.

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