LINUX.ORG.RU

elisp - а нужен ли он?


0

0

Еще раз привет. Хочу сразу перейти к вопросу.

А нужен ли мне вообще этот емакс и этот елисп?

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

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

Вот только реального опыта работы с емаком я что-то нигде толком и не видел. Точнее реальных история типа: «Емакс помог мне отпарсить огромный хмл файл». (желательно развернутых)

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


>Вот только реального опыта работы с емаком я что-то нигде толком и не видел. Точнее реальных история типа: «Емакс помог мне отпарсить огромный хмл файл». (желательно развернутых)

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

anonymous
()

просто изучив конструкции языка «мозг на место» не встанет, а вместо разговоров лучше бы попробывали написать чтонить в нём. это, как правило, занимает меньше времени и является более полезным, чем трёп на лоре

anonymous
()

>А нужен ли мне вообще этот емакс и этот елисп?

конечно нет, да его в 70х годах писали, зачем тебе это гавно мамонта, бери с++ или пхп, посмотри сколько на них проектов написано и большие xml они парсят тоже

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

да кто тебе это сказал, ты вообще этот емакс видел?

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

нет конечно, засри себе голову с++ и пхп, и забудь про руби и рейлс, да оно же тормозное и даже юникод неумеет, чего вообще от японца ожидать,

cvb
()

А нужен ли мне вообще этот емакс и этот елисп?

Нет.

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

> Мне вот емакс каждый день помогает деньги зарабатывать

психиатром что ли работаешь?

anonymous
()

Come on, сколько тебе лет? Купи макбук и TextMate уже.

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

>нет конечно, засри себе голову с++ и пхп, и забудь про руби и рейлс, да оно же тормозное и даже юникод неумеет, чего вообще от японца ожидать,

а еще пхпшников девчонки обожают. не то что рубистов. инфа 100%

volh ★★
()

Думаю, автору треда следует выбрать редактор/IDE, который ему больше нравится, где API расширения на его взгляд удобнее, и заюзать для написания.

Касательно постановки мозгов на место - не стоит переоценивать это :) Да и вместо доки по elisp лучше почитать «Structure and Interpretation of Computer Programs», если хочется этой самой «постановки».

Касательно историй успеха, то это же IDE, а не луноход (почти :), я вот исключительно его несколько лет на работе использую. И еще уйма народа. Чем не успех? Плюс в том, что в нем могу редактировать практически что угодно, не приучиваясь к другим IDE - Редактирую C, C++, sh, LaTeX, Python, Haskell, Scheme... А некоторые языки кроме емаксового плигина вообще никаких средств не имеют. Ну и без мыши можно обходится полностью. Netbeans и Eclipse пробовал - вернулся на емакс.

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

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

да кому что
опять емаксоводы слетелись

kto_tama ★★★★★
()

Писец, что за тупой вопрос — «нужен ли мне язык foo»?
Очень сложно изучить что ли? Тем более такой быдлоязычок,
как Emacs Lisp.

Sphinx ★★☆☆
()

Для редактирования текста есть vim. Для извращений с лиспом - имагз

Если хочешь отполировать кнопки капслок (почему-то многие имагзеры меняют контрол и капс местами), а так же аль - то велкам, используй его

У меня не хватило растяжки пальцев для его дурацких шорткатов.

И ещё, я не понимаю, зачем в редакторе IRC & jabber клиенты и ещё куча мусора. Это классический featue bloat.

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

Какая толстота... In soviet Russia шорткаты нажимают тебя. Их и поменять можно.

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

Конечно же нафиг не нужен в редакторе IRC и Jabeer клиент, почтовый, веб-браузер и прочая фигня. В emacs-е этого и нет!

Вы может быть хотели сказать, что с Emacs-ом поставляется так много разного ненужного? Ну так это не проблема, просто так сложилось. Я вам даже большее скажу-есть еще куча абсолютно ненужных для вас модулей на emacs-lisp, поставляющихся отдельно от emacs, но вы же не ноете от того, что есть тонны ненужных для вас программ на C?

Да... много лет прошло, а архитектура emacs-а очень немногими еще правильно понимается.

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

И еще, кроме того, что в emacs-е куча ненужного для вас, там есть и еще куча нужного.

Мне вспоминается один момент, пару лет назад. Была одна дорогостоящая проприетарная IDE, использовавшаяся в той аусорсинговой компании, где я работал.

Показывая мне ее возможности, один из сотрудников воскликнул-смотри, здесь ДАЖЕ ПО РЕГУЛЯРНОМУ ВЫРАЖЕНИЮ ИСКАТЬ МОЖНО:) так, словно эта уникальнейшая фича:)

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

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

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

lester ★★★★
()

Лисп хорошо вычищает мозги, в этом смысле конечно лучше CL, нежели elisp. Изучение метапрограммирования вообще очень полезно, но его можно изучить и на примере допустим перла(кидайте кидайте в меня какашками).
Что до рил стори оф емакс, то допустим сейчас я использую elisp для генерации xml, idl, perl-sub файлов из текущего проекта на С. То есть из прототипов функций и описания типов создаются описания уже в xml, для того чтобы дальше это можно было легко заюзать через RPC. Вариант у меня пока очень сырой и в дальнейшем будет из xml генерироваться отдельным скриптом, но для сегодняшних нужд мне хватает.
Также elisp активно использую для коммуникаций с пиджином и аудациоусом через dbus. Это реально экономит время, когда по какой-то причине код начинается писаться медленее и хочется послушать любимую песню - парачка хоткеев - и вуаля.

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

Рефакторинг-конечно же есть. Гугл вам в помощь. К тому же, emacs не стоит на месте. ( гуглил сам, вместо вас, вот нашел к примеру http://www.xref.sk/xrefactory/main.html ).

Автодополнение это никоим образом не фича одного только emacs, но emacs вкупе с etags или ctags. Вот и курите мануалы по ним. Возможно, найдете и про шаблоны.

Ну и наконец автоматическая пересборка тегов после изменения кода-дело не сложное.

Так что ответ-да, все это есть.

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

> Рефакторинг-конечно же есть

это плюс емаксу

Автодополнение это никоим образом не фича одного только emacs, но emacs вкупе с etags или ctags.


т.е. нормальной поддержки С++ и Java - нет и не ожидается

Ну и наконец автоматическая пересборка тегов после изменения кода-дело не сложное.


т.е. нет, а об подхватывании «на лету» можно и не мечтать

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

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

Емакс расчитан на Лисп. Причём, во многом благодаря внешнему привеску - slime. Остальные языки в нём на таком же уровне не поддерживаются. Тому одна причина: энтузиасты, которым плюсы интересны на достаточном уровне, не заинтересованы в Емаксе. Емаксоводы всё как-то больше лисперы, как ни крути. Те нелисперы, кто на Емакс сел на очередной волне популярности и лиспером так и не стал, за Емакс особо не держатся и при удобном случае легко с него соскакивают.

У cedet с semantic возможности большие для окучивания таких требований, только окучивать никто не хочет (Неуловимый Джо, типа).

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

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

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

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

Основное, что нужно для работы - подсветка и тупое дополнение хотя бы в пределах уже открытых файлов. Полностью работоспособный рефакторинг и дополнение по всему проекту с инклюдами для плюсов крайне сложно сделать. Обычно такие фичи работают медленно (хотя бы из-за объёмов проектов) и/или неправильно. Тому виной чрезмерная сложность языка. Лисп по синтаксису простой, как тапок, и в то же время по части meta несравнимо круче. Чем сложнее проект, тем больше meta хочется.

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

да, вот меня например тоже не устривает качество поддержки Rails. конечно уже портировали anything.el под рейлс-проекты, чтобы быстро навигироваться по файлам. а с автокомплитом беда.

думаю изучить елипс в достаточной мере и написать свой, который будет различать методы, определенные юзером и методы из самого Ruby. (то есть различать классы)

Пока не очень понимаю на сколько это трудно реализовать, на родном руби или той же java мне было бы проще это сделать.

Кто нибудь пробовал написать custom-подсветку? или автокомплит? Насколько трудно это ? =)

(под кастом-подстветкой я имею ввиду именно свою, а не расширения -minor-mode)

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

я просто указал, что не всех качество этой поддержки устраивает

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

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

> Обычно такие фичи работают медленно (хотя бы из-за объёмов проектов) и/или неправильно

вот поэтому и есть желание не пользоваться «обычными» медленными инструметами

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

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

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

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

> Я слышал теорию, что языки вроде лиспа отлично ставят мозги на место.
Но ты явно не слышал на какое место они его ставят.

Я люблю сравнивать пайтон с лиспом, для тех кто любит лисп.
Какие основные плюсы у лиспа? Мне говорят:
1) Меньше сущностей
2) Программируемость

Все этим и тешатся.
Однако, «меньше сущностей» есть ни что иное как примитивизм.
Программируемость - ничто иное как отсутствие возможности нормально использовать операторы, по сему всё сделано функциями.
Да ну вас, лень дальше писать.

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

Емакс удобен в качестве легко расширяемого универсального рабочего инструмента.

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

> Кстати, просто дофига людей пишет в простых gedit, kate или даже mcedit.

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

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

Говорю же, есть! И для c++ и для java. Наберите etags --help что ли.

Только что проверил, автодополнение для шаблонов C++ есть.

Сам не особенно опытный пользователь EMACS, но сходу: 1) делаем скрипт для перезапуска etags на обновившихся файлах (опция -u чтоб вам не искать), и шорткат для него. 2) после каждого изменения юзаем этот шорткат-не сложнее, чем сохраняться. 3) изучаем emacs-lisp и ваяем что-то наподобие автоматического сохранения.

Проблема только в том, что не хотим читать документаци. Хотим чтоб на блюдечке все само материализовалось.

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

Какие основные плюсы у лиспа? Мне говорят:
1) Меньше сущностей
2) Программируемость

3) Скорость.

Однако, «меньше сущностей» есть ни что иное как примитивизм.

Это закон сохранения энергии. Называть примитивным язык с поддержкой метаобъектного протокола можно только по незнанию.

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

Что мне протоколы? Программист работает не с протоколами, а с языком. Он держит в уме семантику языка, понимая что делает.
Но он «говорит» что «делать»! Они пишет программу!
А на каком языке он «говорит»? На примитивном. И это не значит что в компиляторе не может быть уберсистем.

3) Скорость.

http://www.imagine27.com/articles/2009-05-03-195227_i_want_to_believe_in_lisp...
[/thread]

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

> Говорю же, есть! И для c++ и для java. Наберите etags --help что ли.

я прекрасно знаю, что поддержка есть - я писал, что [u]полноценной[/u] поддержки этих языков нет, можешь почитать багтрекер, чтоб увидеть, что порой ctags спотыкается чуть ли не на ровном месте

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

> И такая фича тоже есть в emacs.

я бы очень удивился, если б ее не было :)

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

Что мне протоколы? Программист работает не с протоколами, а с языком.

Я и говорю: вы не в курсе. Вот начнёт расти борода, прочитаете много умных книжек, попробуете в деле, тогда и приходите в лиспосрачи.

Disclaimer: одной википедии в данном вопросе недостаточно.

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

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

Неужели все остальные работают безупречно?

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

Примитивизм языка, даже если с его помощью можно описать всё на свете, не стоит того.
Лучше иметь человеческий, простой, удобный язык и описать на нём чуть больше, чем использовать такой язык как лисп.
Потом создам тред с более развёрнутым мнением на этот счёт. Думаю что просто вы не поняли или не хотите понять о чём я :)

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

> Однако это не такая уж и большая проблема, как кажется.

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

Неужели все остальные работают безупречно?


не все конечно, но лучше варианты есть

П.С. а вообще хватит нам мутить воду и писать очевидные вещи - лисп и емакс рулят, для кого-то С++ тоже неплох, peace

lester ★★★★
()

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

Emacs — это уже не текстовый редактор. Emacs — это интерпретатор (компилятор в байт-код) языка Emacs Lisp с прикрученным GUI, который имеет свою концепцию: фреймы, буфера, поинт, маркеры, области, минибуфер, копирование, вставка, сортировка, оверлеи, свойства текстовых областей, фэйсы и пр.). Emacs Lisp содержит кучу функций для эффективного управления всем этим добром. Поэтому Emacs может использоваться для решения широкого круга задач, интерфейс которых укладывается в концепцию Emacs GUI. Текстовый редактор — это только одно из очевидных приложений. Возможно, RMS так это не задумывал, но так получилось.

Zubok ★★★★★
()

>Вот только реального опыта работы с емаком я что-то нигде толком и не видел. Точнее реальных история типа: «Емакс помог мне отпарсить огромный хмл файл». (желательно развернутых)

Хорошо. Emacs помог мне отпарсить XML-файл.

Развернуто. После этого http://www.mail-archive.com/debian-russian@lists.debian.org/msg100453.html я перед НГ сел писать программу для Emacs, чтобы можно было работать с Debian BTS. То есть получать списки багов по заданному шаблону, просматривать логи, отвечать. И чтобы все это из Emacs. Оказалось, что Debian BTS заимел сервис через SOAP (пока плохо документированный и недоделанный). Поэтому для решения задачи я сначала написал для Emacs парсер и генератор SOAP. Пока весьма простые, достаточные для решения основной задачи (хотя данные о рейсах с Аэрофлота я получил без проблем). Emacs мне помогает отпарсить XML-сообщения и сформировать запросы в XML (require 'xml).

Теперь я просто вызываю функцию debian-bts-get-bugs, указываю, скажем, «package icewm» (могу и так, например «package bc package pidgin tag patch severity normal»). Полученные данные группируются, сортируются и выводятся на экран в виде иерархического представления (сворачивание/разворачивание работает):

http://s006.radikal.ru/i214/1001/d1/08ef5f85246e.png

На картинке еще и дополнительная инфа по выбранному багу раскрыта, но поставляется информации гораздо больше: куда forwarded, blocked и др. Все это я могу вывести на экран.

Далее нажимаем на любой баг и получаем с bugs.debian.org соответсвующий mbox (логи, которые идут через SOAP пока не могу использовать, так как есть недоделки у них) и автоматом он открывается (пока что) в RMAIL (он многого не умеет, использовался как быстрая затычка, которой mbox можно посмотреть и погулять по нему). Смотрю лог, жму на нужном сообщении C-u r, пишу текст, оправляю. Вообще, напишу свой просмотрщик mbox, так как не все пользуются, например, gnus. Давать предпочтение какому-то почтовику поэтому не хочу. Есть альтернативное реализованное поведение: я нажимаю на баг другой комбинацией и gnus создает из mbox дерево, с которым я могу работать в режиме прочтения и отвечать на сообщения. Такие дела.

Disclaimer: Работа имеет статус technical preview, но я уже через это поделие работаю. SOAP будет со временем отделен в самостоятельный пакет, многократно улучшен и развит (вплоть до парсинга WSDL).

Zubok ★★★★★
()

elisp с его dynamic scoping точно мозги на место не поставит, скорее наоборот.

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

> Однако, «меньше сущностей» есть ни что иное как примитивизм.

Ты как всегда идиот. Скажи инженерам Intel, что их RISC-микрокод - говно и примитивизм.

Программируемость - ничто иное как отсутствие возможности нормально использовать операторы, по сему всё сделано функциями.

Ты полный, клинический идиот. Какие такие «операторы», какие такие «функции», идиот? Что такое макры в Лиспе ты не знаешь, идиот?

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

> Говорю же, есть! И для c++ и для java. Наберите etags --help что ли.

Предлагать для C++ etags/ctags это даже смешно. Там поддержка именно C++ вообще никакая. Или оно уже умеет раскрывать макросы, разрешать перегруженные функции и операторы, инстанцировать шаблоны?

Только что проверил, автодополнение для шаблонов C++ есть.

Семантическое дополнение или просто примитивное по словам из открытых буферов?

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

мне понравился ответ одного товарища-функциональщика на вопрос пользуется ли он ide с автодополнением. Ответ был нет, потому что пишет он печатает он гораздо быстрее чем и.д.е дополняет )))

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

> Ответ был нет, потому что пишет он печатает он гораздо быстрее чем и.д.е дополняет )))

он наверное еще и libastral подключил ;) и если ваши «функциональщики» пишут код быстрее чем «и.д.е дополняет» - где это все, спрашиваю я вас?

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

и если ваши «функциональщики» пишут код быстрее чем «и.д.е дополняет» - где это все, спрашиваю я вас?

Кода на немейнстримных языках написано достаточно и соответствует существующему количеству немейнстримщиков.

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

> Кода на немейнстримных языках написано достаточно и соответствует существующему количеству немейнстримщиков.

судя по ЛОРу - лисп самый популярный язык на Земле, а судя по утверждениям местных лисперов - кода они написали больше чем местные сипиписники, жаберы и пр. вместе взятые ;)

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

судя по ЛОРу - лисп самый популярный язык на Земле, а судя по утверждениям местных лисперов - кода они написали больше чем местные сипиписники, жаберы и пр. вместе взятые ;)

Тут просто аудитория немного другая, не похапешная.

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