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-подобных языках.

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

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

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

> требования заказчика... наглядно проиллюстрировать

Кому и нахрена? КодописАтелям? Нах оно им? Манагерам? Вопрос остаётся прежним. Это лишняя суЧность, выдуманная для прикрытия жопы манагера тоннами изрисованных бумажек, показывающих, как он "эффективно трудится".

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

> А если Вы пишите серверное приложение, то будет ли это серверное приложение попадать в 99.7% случаев?

Если приложение (хоть серверное, хоть какое) пишет профи, то будет. Если школота, то никакой супер-пупер дебуггер школоте не поможет.

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

Позвольте, а как Вы относитесь к диаграммам Фейнмана? Это лишняя сущность? Или экономистам не положено, как физикам, иллюстрировать свои материалы, потому как они (экономисты) это ГСМ?

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

> Я просто спрашиваю, а вы перешли сразу на личности.

Стиль соответствующий.

> Мне интересно, а как вы собираетесь отлаживать приложения, сложнее, чем "Hello world!" ?

Юнит тесты, логи, инкрементальная разработка и тестирование, проектирование "сверху вниз" -- всё это делает длительное ползание по коду отладчиком ненужным и глупым.

Да, крайне редко бывает что-то, что не вписывается в описанный мной способ использования отладчика -- но тогда хватает брикпойнтов с условиями и/или вотчпойнтов. Лазить по коду в дебаггере, опять-таки, не нужно. Если нужно, то это уже явный сигнал (сирена такая пароходная), что в консерватории что-то неладно, и сильно неладно.

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

Да и то этот случай, скорее, от лени внимательнее просмотреть код или от замылившихся глаз (от второго помогает дёрнуть коллегу)

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

Разве юнит тесты типа

@Test public void myTest() { Assert.assertTrue(4 == 2 + 2); }

не просто говорят - работает не работает? А как искать причину почему 2 + 2 == 5?

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

> как Вы относитесь к диаграммам Фейнмана?

К диаграммам Фейнмана я не отношусь.

> потому как они (экономисты) это ГСМ?


s/?/!/ По бОльшей части -- так оно и есть. И подавляющее количество "экономистов" по уровню образования соответствуют выпускникам ЦПШ. Остальная немногочисленная (и довольно обеспеченная финансово) часть -- талантливые мошенники.

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

> которые написаны сразу без ошибки

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

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

> А как искать причину почему 2 + 2 == 5?

Вывести на печать все переменные, участвующие в формировании результата. Атсралу нет места в программировании.

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

>> а как вы собираетесь отлаживать приложения

> Два слова: Отладочная Печать. В 99.7% случаев решает все проблемы.

решать то она решает. Только что вы будете делать если нужно понять что происходит в приложении без перезапуска / вставки новых команд печати?

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

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

А что, искать причину, не вылезая из дебаггера -- это единственный путь поиска ошибок? Чудны дела твои, господи!

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

> Кто тогда ставит задачи, за которые программист реально получает деньги?

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

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

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

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

А это уже не разработка. А раз не разработка, то там и другое условие -- на развёрнутой системе нет IDE. Помогла интеграция IDE с отладчиком али же у-упс?

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

> если нужно понять что происходит в приложении без перезапуска / вставки новых команд печати

Э-э-э... man erlang, не? Для таких критичных случаев и инструменты применяться должны соответствующие. Или ты посадишь вчерашнего ПТУ-шника Васю Хакеренко пейсать приложение, которое должно работать 7/24 ?

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

>Или ты посадишь вчерашнего ПТУ-шника Васю Хакеренко пейсать приложение, которое должно работать 7/24 ?

Ну так оно и будет работать 7/24. Семь раз за 24 часа

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

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

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

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

> задачи в банковской области

Моё ИМХО -- вся "банковская область" должна быть выпилена с поверхности Земли, ибо представляет собой попытку эмуляции Атсрала в реальном мире.

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

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

+1024.

Вся прелесть ФЯ раскрывается только в числах Фибоначчи. Простая же "морда к базе" на ФЯ превращается в кошмар Достоевского.
Даже F# у мелкософта не считается "продакшн" языком, а всего лишь экспериментом (на людях).

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

Зато, программируя на ФЯ, а не на какой-то там Жабе, можно увеличить своё ЧСВ.

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

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

> Psyco? Мои домашние тапочки только что лопнули от смеха.

Твои тапочки не умнее тебя.

> Полузаброшенный недоJIT

Ты снова показал незнание матчасти - Psyco снова в разработке. Еще есть Unladen Swallow.

> для x86-only? спасибо, заберите в зад.

Опа, еще один ынтерпрвайZ-девелопер на System Z.

> Сюсю-PyPy? пожалейте трупы моих тапочек.

Они же лопнули, какие там трупы... Тебя не забрызгало, кстати?

> Java HotSpot JIT - вот бы на что посмотреть принцу Гведону с педоном.

А, то есть реальная претензия звучала как "у Питона нет HotSpot JIT"? Эти ынтерпрайZ-девелы ну ни слова в простоте не скажут. HotSpot нету, да и хрен с ним.

P.S. и еще одно замечание о матчасти... мало кто пишет программы на чистом Питоне - обычно есть один или несколько небольших Си-модулей, выполняющих критические по скорости задачи.

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

> супер-пупер умная интеграция отладчика в IDE не даёт никаких преимуществ.

Только если религия запрещает ей пользоваться.

> после развёртывания системы -- нет IDE.

Отбирают?

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

> как будет отлаживаться EJB компонент при помощи System.out.println или System.out.printf?

А я доктор? Я с этими фреймворками (или что они из себя представляют?) не работал.

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

> Только если религия запрещает ей пользоваться.

Хорошо, приведи пример, что ли...

> Отбирают?

Э-э-э... А откуда оно там возьмётся, чтобы его можно было отобрать? Что, на боевые сервера надо ставить иксы, жабу и эклипс? Как страшно жить...

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

> Но Вы же сказали, что отладчик не нужен.

И? Как это высказывание коррелирует с тем, что я не сильно представляю, какие методы можно в этом как-его-там-фреймворке использовать для выяснения причин глюков?

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

Я тоже предпочитаю традиционную кошерную еду. Но надо еще заработать на семисвечник-менору, на поломничество к Святым Местам, подарки детям и жене в Йом-Кипур и многое другое.

Как это мне-таки без банковских транзакций и денег?

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

> Как это мне-таки без банковских транзакций и денег?

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

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

А кто такие "копирасты"? Я не нашел на gramota.ru этого слова.

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

>> Только если религия запрещает ей пользоваться.

> Хорошо, приведи пример, что ли...

Пример чего? Что при остановке по брякпойнту доступно гораздо больше информации, чем выводит отладочный printf? Это вроде очевидно.

> Что, на боевые сервера надо ставить иксы, жабу и эклипс? Как страшно жить...

А ты не пугай себя, страшно и не будет. Не надо ничего большого ставить, GDB (и Eclipse) умеют удаленную отладку, JVM тоже. Еще есть тестовые сервера, на которых развернуто то же самое приложение и которые специально предназначены для воспроизведения проблем.

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

> Что, на боевые сервера надо ставить иксы, жабу и эклипс? Как страшно жить..

Иклипс - не надо.

Иксы - по желанию, на Mac OS X сервер можно снять галочку

Джаву надо ставить. Иначе EJB сервер работать не будет.

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

> Если человек юзает IDE и работает продуктивно, вместо того, чтобы ковыряться в унылой консольке - то он долбодятел, каковых 99%? Трололо.

Да он и делать, вероятно, ничего не умеет...

> Отличный критерий, мне добавить нечего. См. выше про сектантство, луддитов и прочее.


Кернель-девелоперы - сектанты, луддиты и прочее? Потому что все поголовно в консоли юзают gdb и crash?

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

> Пример чего? Что при остановке по брякпойнту доступно гораздо больше информации, чем выводит отладочный printf?

Что при остановке в по брикпойнту в eclipse доступно гораздо больше информации, чем при остановке по брикпойнту в gdb. Я не про нужность отладчика как такового, а про страшную необходимость его интегрировать с IDE.

> Не надо ничего большого ставить, GDB (и Eclipse) умеют удаленную отладку, JVM тоже.

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

А на сервере, внезапно, gdb не стоит. 8)) Но это к делу не относится.

> Еще есть тестовые сервера, на которых развернуто то же самое приложение и которые специально предназначены для воспроизведения проблем.

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

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

> Джаву надо ставить. Иначе EJB сервер работать не будет.

Какая прелесть. Мужыг, я вот тут некий сервачок сейчас пишу маленький, на плюсовке. Расскажи мне, пока не поздно пнуть админов и потребовать жабу на серверах, зачем мне там необходим EJB сервер? А то ведь так и умру в неведении...

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

> Я не про нужность отладчика как такового, а про страшную необходимость его интегрировать с IDE.

А что, я должен выходить из IDE, когда мне нужен отладчик? IDE на то и IDE, что _все_ инструменты под рукой.

>> Не надо ничего большого ставить, GDB (и Eclipse) умеют удаленную отладку, JVM тоже.

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

Ну всегда можно придумать сценарий, в котором придется действовать голыми руками.

> А на сервере, внезапно, gdb не стоит. 8))

Там нужен не gdb, а gdbserver вроде. В общем, небольшая программка-агент. Впрочем, см. выше.

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

> А что, я должен выходить из IDE, когда мне нужен отладчик? IDE на то и IDE, что _все_ инструменты под рукой.

Видел я вашу IDE, там мышку надо...

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