воскресенье, 11 декабря 2011 г.

Впечатление о встрече разработчиков Scala #7

Вчера, в субботу, выступал с докладом на 7-й встрече любителей функционального программирования. Тема конференции -- "Инструменты, упрощающие разработку программ".
К организации встречи подошли довольно серьзено. Во-первых, мне удалось уговорить выступить с докладом Алекса Отта. Тема его доклада -- "Emacs -- универсальный комбайн". Было очень интересно послушать про Emacs от настоящего мастера ФП и знатока Emacs.
Во-вторых, мы с Алексом специально для встречи написали небольшое пособие по программированию Emacs. Компания Epam помогла нам его опубликовать и даже предоставила дизайнера, который красиво оформил обложку и текст. Спасибо тебе, Руслан!
На фотке -- я и Алекс Отт презентуем пособие "Программирование Emacs для редактирования и рефакторинга кода". Пособие, кстати, раздали бесплатно всем желающим. И много еще осталось. У меня на руках еще 4 штуки лишних, могу подарить.
Электронную версию пособия можно взять здесь.
Свой доклад я посвятил программированию Emacs под свои задачи. Моё личное мнение: Emacs надерет задницу всем текстовым редакторам и IDE только если вы сами будете его программировать для себя. В своем докладе я показал, как разрабатывать скрипты на Emacs Lisp и как автоматизировать нудную рутинную работу. Видео моего выступления можно посмотреть здесь.
Вопросов по программированию Emacs было много, так что мне явно удалось заинтересовать ребят этим текстовым редактором. Спасибо Василию Ременюку за организацию встречи Scala #7 и возможность выступить с докладом о Emacs!


8 комментариев:

  1. Дима, спасибо за доклад, очень вдохновил. Я задачи, подобные тем, что ты решал емаксом во время доклада, обычно делал наколенным руби-скриптом или же сёрч-энд-реплейсом по регулярным выражениям. Пример с генерацией xml-я можно было бы решить этим способом совершенно точно.

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

    Я не согласен с тем, что емакс может порвать идею при разработке, например, на жаве. Чтобы написать в емаксе скрипт для extract method/extract variable, нужно потратить очень много здоровья (и то оно будет работать через раз), а в идее эти рефакторинги есть искаропки. Тем не менее, во многих задачах емакс рвёт идешки вчистую.

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

    Спасибо огромное за доклад.

    И, да. А куда можно присылать всякие опечатки по пособию?

    ОтветитьУдалить
  2. Вопрос по опечатки снят. На первой странице пособия всё указано.

    ОтветитьУдалить
  3. Насчет наколенных скриптов: да, я тоже такое делал до знакомства с Emacs-ом. Потом обленился. После Emacs вообще становишься ленивым :-)

    Про победный путь: вполне согласен, ведь Emacs -- не серебрянная пуля. Но вот насчет поддержки Java... Попробуй Semantic. Он умеет создавать контекст для всяких рефакторингов. Вместе с ним многое должно работать примерно как в Idea.

    ОтветитьУдалить
  4. @DNNX: Как Дима сказал, в принципе, Semantic предоставляет доступ к разобранному дереву кода, и надо делать обвязки вокруг него... Одна из больших проблем Semantic - отсутствие разработчиков на соответствующих языках, та же Ява в последние месяцы получила большой толчок за счет того, что главный разработчик CEDET взялся за программирование под андроид :-)

    ОтветитьУдалить
  5. Полистал книгу в рандомных местах и могу сказать точно. This is relevant to my interests!

    Подумываю запилить под себя скалавский IDE на емаксе, когда будет время, а то пока что вынужден юзать Эклипс ради навигации и дебага. Обязательно тщательно прочитаю ваш креатив, ребята. Спасибо!

    Кстати, будет интересен твой камент к моим впечатлениям после первых месяцев использования емакса: http://xeno-by.livejournal.com/67487.html.

    ОтветитьУдалить
  6. @Eugene: а ты на ensime не смотрел?

    P.S. я завтра отпишу тебе в блог - сегодня времени не было совсем

    ОтветитьУдалить
  7. Привет, Женя, рад встрече! Года три не виделись? :-)

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

    Успехов в учебе и работе!

    ОтветитьУдалить
  8. Спасибо за опубликованный текст. Начинание, безусловно, полезное, но над реализацией надо бы поработать. Как введение в elisp - OK, но тема "редактирования и рефакторинга кода" не раскрыта. Примеры рефакторинга с помощью search в 21 веке выглядят убого.
    Работа с кодом в emacs - это все таки cedet/semantic, про это надо было написать.
    Реализация примеров из пособия на semantic кстати даже короче получится, и ощутимо универсальнее. Недавно писал очень похожие вещи для себя, можно глянуть здесь: https://bitbucket.org/alt/emacs/src/tip/alt-java.el

    ОтветитьУдалить