LINUX.ORG.RU

LambdaBeans - Scheme IDE на платформе NetBeans

 lambdabeans, , ,


0

0

Antonio Vieiro, системный архитектор из Мадрида, создал IDE для языка Scheme на программной платформе NetBeans IDE. Поддерживается стандарт R5RS, лицензия - GPLv2. В интервью команде NetBeans Антонио ответил на некоторые интересные вопросы.

NetBeans: Антонио, поздравляем с выпуском LambdaBeans! Что особенного можно сказать об этой IDE?

Antonio: В LambdaBeans можно редактировать исходный код на Scheme (с подсветкой синтаксиса), сохранять код в системах контроля версий (CVS, SVN, Mercurial, Git, ...), запускать код, «играться» с REPL-консолью, читать спецификации R5RS и SLIB, и, наконец, просто радоваться программированию на Scheme!

NetBeans: В чем суть Вашей привязанности к Scheme?

Antonio: Я считаю, что Scheme - отличный язык программирования, потому что он одновременно и простой, и мощный. Отталкиваясь от совсем небольшого количества исходных понятий, вы обретаете хвостовую рекурсию, продолжения (continuations), замыкания (closures), и прочие прелести настоящего функционального программирования. Также Scheme - очень выразительный язык: на Scheme я пишу гораздо быстрее, чем на Java или на C. В конце концов, Scheme - это просто прикольно!

NetBeans: Но ведь уже имеется некоторое количество редакторов для Scheme. Что побудило к созданию ещё одного?

Antonio: Да, конечно же, на свете есть много редакторов кода Scheme. Но им всем не хватает той самой интегрированности, которую имеют в виду, когда говорят об «интегрированной среде разработки». LambdaBeans позволяет делать все в рамках одного программного пакета: я могу писать программу, сохранять ее в CVS, читать документацию, пользоваться автодополнением ключевых слов R5RS, «ходить» по определениям внутри файла, и так далее.

NetBeans: Но почему бы в этом случае не сделать LambdaBeans дополнением к NetBeans?

Antonio: Понимаете, программисты на Scheme не пользуются Java на каждодневной основе. Хотелось создать IDE, который для своего использования не потребует знания Java. Вообще, конечно, я планирую выпуск LambdaBeans как дополнения для NetBeans, хотя это займёт некоторое время.

Долгое время разработка на LISP и Scheme подразумевала использование REPL (примитивной консоли для вычисления выражений) или в лучшем случае Slime (расширения для Emacs). Некоторыми ортодоксальными программистами REPL до сих пор считается самодостаточным, в отличие от «навороченных» современных IDE.

Несмотря на это, появление сперва DrScheme, а затем CUSP (на базе Eclipse) и LambdaBeans несомненно знаменуют новую веху в продуктивности разработки на LISP-подобных языках.

Интервью (на английском).

>>> Сайт проекта.

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

> REPLа не достаточно, но он необходим.

Кхм... я не имел в виду, что троллить будешь ты %)

tailgunner ★★★★★
()

что-то про функциональное программирование много писать стали...

/me ушел пытаться учить это все. по крайней мере университетский курс по прологу осилил

IgorIs
()

и как же это все много лет работало до появления такой отличной IDE? и cvs, хождение по тегам, чтение документации и т.д. видимо мне все это приснилось

ott ★★★★★
()

1)Тормозит, проекты при добавлении даже не отображаются, глюк устранился только при попытке их открыть из существующих. REPL уныл, при ошибке дополнительно выдает жабовский StackTrace.

2) поправьте ссылку на СUSP

http://www.sergeykolos.com/cusp/update

Самым вменяемым пока остается DrScheme.

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

> Самым вменяемым пока остается DrScheme.

Согласен. Емакс, конечно, велик и ужасен (прекрасен?), но это философия. Я как заядлый вимер не могу ее понять. :)

RaySlava
()

>Antonio: Да, конечно же, на свете есть много редакторов кода Scheme. Но им всем не хватает той самой интегрированности, которую имеют в виду, когда говорят об "интегрированной среде разработки". LambdaBeans позволяет делать все в рамках одного программного пакета: я могу писать программу, сохранять ее в CVS, читать документацию, пользоваться автодополнением ключевых слов R5RS, "ходить" по определениям внутри файла, и так далее.

Предлагаю такой диагноз: IDE головного мозга.

env ★★☆
()

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

Спорим, у них нельзя lambda заменить на λ? :)

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

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

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

> DrScheme

Там есть пара прикольных фич, иногда помогающих в отладке (стрелочки
всякие ^_^), но всё-таки в Емаксе удобнее как-то.

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

Ну не любитель я Емакса, не любитель)

Кстати, в DrScheme тоже есть возможность изпользования λ=)

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

Сами знаете, чего там выстлано благими намерениями (:

А так вообще сильно удивляет, как люди пользуются IDE на Java для других языков. Я вот Eclipse попробовал и NetBeans, и так и не дождался индексирования не самого большого плюсового проекта. /:

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

Я использую Eclipse для небольших проектов на C/С++. На маленьких работает неплохо. NetBeans мне просто не нравится. А, вообще, у Нетбинса и Эклипса интересные проблемы с тормознутостью. У меня под оффтопиком Эклипс летает на довольно больших проектах, а Нетбинс тормозит нещадно. Под Дебианом практически противоположная ситуация.

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

Рискну предположить, что тормоза эклипса это из-за SWT: на оффтопике он дёргает нативные виджеты, что получается сильно быстрее, чем дёрганье GTK2. С NetBeans'ом тут, правда, не укладывается. Вряд ли под линупсом Swing рисует быстрее.

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

>на оффтопике он дёргает нативные виджеты, что получается сильно быстрее, чем дёрганье GTK2.

С чегобы? Чем виндовые виджеты быстрее Gtk?

theos ★★★
()

"Хотелось создать IDE, который для своего использования не потребует знания Java." (с)

Мой мозг просто сломался на этой фразе.

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

> Чем виндовые виджеты быстрее Gtk?

А тем, что быстрее.

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

Спасибо, у меня красный диплом. (:

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

Да, промышленность начинает обращать внимание на функциональщину. И вообще, от ФП невозможно не кайфовать вследствие невероятной математической красоты этой парадигмы.

Zenom ★★★
()

Ждем ассиметричный ответ, включение F#, Lisp, Boo, Nemerle в Visual Studio Education Edition 2010?

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

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

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

Или того и другого вместе. Ох, как нередко это случается среди LISP-братвы.

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

Вообще, REPL-джедайство в XXI веке смотрится как минимум странно.

"А ты попробуй топором сосну свалить, милок! Бензопилой-то каждый дурак сможет."

Настоящий специалист _умеет_ обращаться с топором, но использует то, что эффективнее в данный момент.

Поясняю. Профи высокого класса знает, да-да, о принципе считывания перфокарт. Представляет себе, как выглядит и что означает машинный код. Как минимум раз в жизни запускал ed. Умеет работать в REPL/gdb из командной строки/whatever. Но использует тот инструмент, который в данной ситуации максимально эффективен. Например: при удаленной отладке павшей коры по ssh альтернатив gdb практически нету (gdbserver не всегда доступен). Но отлаживать голым gdb при имеющихся под рукой Eclipse CDT, NetBeans for C++, Anjuta, Nemiver, Insight или на худой конец ddd - нелепо и попахивает мазохизмом.

Подобным мазохистическим душком нередко веет от представителей LISP-секты. Одно радует - что даже там находятся трезвомыслящие, смотрящие вперед представители, подобные автору LambdaBeans.

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

> Да, промышленность начинает обращать внимание на функциональщину.

Лолчто?

Промышленность (или, если хотите, "enterprise") - штука прагматичная. И руководствуется не математической красотой парадигмы, а сухой экономической выгодой.

Если в какой-то области "промышленности" оправдано применение функциональщины - можно за такую промышленность только порадоваться. Но абсурдно предполагать, что enterprise ВНЕЗАПНО "прозреет" и кинется переводить разработку ПО на Лиспы, Хаскели, ОКамли и иже с ними.

Одним лямбда-исчислением сыт не будешь, а то, что ФП экономически невыгодно в качестве general-purpose инструмента - давно обсосанный факт.

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

Вообще, наверное, вас смутили "профессионалы промышленного программирования" в редколлегии недавнего журнала о ФП.

Рекомендую поинтересоваться детальнее этими "профессионалами", которых там кот наплакал. Основная масса - "участники олимпиад", "преподаватели", "авторы книг" и прочая академически-яйцеголовая братва. Инженеров-практиков там нет.

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

>Лиспы, Хаскели, ОКамли и иже с ними

C#, Python, Ruby. Могу перечислить фичи, которые попали в эти языки из функциональщины. А Scala так вообще полноценный функциональный язык.

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

Я, кстати, никогда не ратовал за оголтелую функциональщину. Но вот подход "по умолчанию пытаемся решить задачу в функциональном стиле, но с лёгкостью переключаемся на императивщину, когда таким путём задача решается легче" считаю оправданным. Поэтому весьма тепло и отношусь к Scala.

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

> C#, Python, Ruby. Могу перечислить фичи, которые попали в эти языки из функциональщины.

Абсолютно оправданный подход. Вон в Java скоро лямбда-функции появятся.

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

> Я, кстати, никогда не ратовал за оголтелую функциональщину.


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

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

>Подобным мазохистическим душком нередко веет от представителей LISP-секты. Одно радует - что даже там находятся трезвомыслящие, смотрящие вперед представители, подобные автору LambdaBeans.

Проснитесь! У «LISP-секты» кроме чистого REPL есть SLIME. В «редакторе» Emacs есть gdb-mode, прозрачная работа с VCS и прочие атрибуты IDE. Никто тут вроде не ратует за чистый REPL и gdb из CLI-интерфейса.

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

>Гибридные языковые подходы, набирающие популярность в последнее время, дадут фору любой "чистой" парадигме.

Пока они чего-то не слишком гибридные. Ущербная лямбда и генерация списков в петоне ни разу не делает его пригодным для ФП.

Вообще, речь не о том, что вот прям щас всем броситься и побежать внедрять хаскелли на производстве. А о том, что понимание ФП и умение его применять к месту — необходимое знание для ИТ-инженера.

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

> В «редакторе» Emacs есть gdb-mode, прозрачная работа с VCS и прочие атрибуты IDE.

Emacs, без преувеличения опередивший время на момент написания, в XXI веке сам является музейной архаикой. Отрицать оконный графический интерфейс, с его эргономикой, выразительностью и интерактивностью, в пользу текстового режима Emacs или vim - мракобесие. Есть, конечно, редкие исключения (навроде Midnight Commander), но IDE - определенно не из этого класса.

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

> Пока они чего-то не слишком гибридные. Ущербная лямбда и генерация списков в петоне ни разу не делает его пригодным для ФП.

Про педон никто не спорит. Его вообще всерьез рассматривать сложно, как и любой другой язык в XXI веке без нативной или JIT-компиляции.

Речь идет о многоязыковых программах, где, например, критические по производительности части написаны на С, а логика - на каком-нибудь приличном динамическом языке. Куски, выигрывающие от функционального подхода - на ФЯПе.


> Вообще, речь не о том, что вот прям щас всем броситься и побежать внедрять хаскелли на производстве. А о том, что понимание ФП и умение его применять к месту — необходимое знание для ИТ-инженера.


Истинно. А еще более тонкое искусство - успешно прозревать такие "места".

Но это уже, скорее, искусство архитектора ПО.

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

>> Гибридные языковые подходы, набирающие популярность в последнее время, дадут фору любой "чистой" парадигме.

> Пока они чего-то не слишком гибридные. Ущербная лямбда и генерация списков в петоне ни разу не делает его пригодным для ФП.

Что именно тебе непонятно в слове "Scala"? Спрашивай, не стесняйся.

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

Ой да ладно. А традиционные IDE не из той же оперы? Создают внутри более 9000 маленьких окошек-областей, между которыми невозможно переключиться с помощью биндингов моего wm. Ну, где тут польза от унифицированного графического интерфейса? Какая разница, используется для представления текстовой информации WIMP или обычный текст-ориентированный буфер Emacs'а?

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

>Что именно тебе непонятно в слове "Scala"? Спрашивай, не стесняйся.

Вообще-то я про скалу не говорил, поскольку далеко ей до мейнстрима. Success story-то хоть одна приличная есть?

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

> Про педон никто не спорит. Его вообще всерьез рассматривать сложно, как и любой другой язык в XXI веке без нативной или JIT-компиляции.

Тебе бы матчасть подучить, практик йопта...

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