Возрождена книга Emacs Lisp: Марцин Борковски

Пять с половиной лет назад Я упоминал, что пишу промежуточную книгу по программированию на Emacs Lisp. К сожалению, проект начался – а затем застопорился на некоторое время.

Было две основных причины: первая заключалась в том, что примерно в то же время я принял участие в другом большом писательском проекте вместе с двумя больше людей, что длится допоздна 2020. Теперь он закончен, и мне, вероятно, не разрешено говорить об этом публично , но он скоро увидит свет, в по крайней мере для некоторых значений «скоро» (надеюсь, все еще в 2021), и я очень в восторге от этого – и я думаю, что мои математически склонные читатели тоже будут.

Другая причина заключалась в том, что я сменил работу в 2016 и исполнила одну из моих давних мечтаний – стать «настоящим программистом» (смело вставляйте сюда свою любимую шутку). Оказалось, что мне нужно было многому выучить (и это здорово), и довольно много отучить (работа в академических кругах более десяти лет действительно действительно ) делает вещи для вас, и я все еще отучиваюсь от некоторых из этих … )

Как бы то ни было, несколько месяцев назад я решил вернуться к этому проекту, и последние несколько месяцев я потратил довольно много времени на его написание. Я с гордостью могу сказать, что ранний вариант книги уже доступен здесь . Я был бы очень благодарен за любые отзывы. Слоган Leanpub, платформы, которую я использую, – «публиковать раньше, публиковать часто» – другими словами, это платформа для публикации ранних черновиков книг, которые затем можно купить, веря, что автор их закончит. (Кроме того, мотивируя автора усердно работать над их завершением!)

Прежде чем вы купите (на данный момент) одну треть (примерно) книги, позвольте мне объяснить несколько вещей о проекте, который сейчас стал более зрелым, чем был в 2015.

В Фактически, одна из причин, по которой проект немного застопорился, заключалась в том, что мне было очень трудно решить, что включить, в каком порядке и т. д. Пять лет назад я совершил ошибку, просто сел и написал отрывки, которые я хотел написать. , и оставив решение о том, как книга в целом будет выглядеть, на потом. Это было очень неправильно. Таким образом можно вести блог, поскольку сообщения не обязательно должны образовывать целостную книжную структуру. Вы также можете написать книгу таким образом, если очевидно , что следует включать и в каком порядке (мой первая книга была написана таким образом, и тогда это было нормально – она ​​была довольно короткой, список концепций, которые нужно было включить, был самоочевидным, как и порядок, потому что некоторые из них естественным образом основываются на других) .

Emacs и Emacs Lisp действительно довольно сложны, и написание исчерпывающего Книга не имеет никакого смысла – по сути, это означало бы переписать Emacs Lisp Reference. Итак, это то, что я сделал вместо этого. Я составил список тем, которые хотел бы затронуть, и потратил некоторое время на сбор идей для инструментов для кодирования, которые могли бы стать их хорошей иллюстрацией. И далеко не каждая идея попала в этот список! Одной из целей книги было: никаких игрушечных примеров, только действительно полезный код. И действительно, большая часть кода в книге – даже если она начинается с искусственных простых примеров – превращается в полностью полезные вещи, которые вы можете включить в свой init.el .

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

Одна вещь Я не очень доволен тем, что я предпочел бы иметь больше коротких глав вместо нескольких длинных. (Это может измениться, поскольку сейчас я пересматриваю список глав – несколько дней назад у меня возникла хорошая идея, и вполне вероятно, что я добавлю одну или две главы!) Это в некотором роде плохо, так как кто-то тема одной из глав может показаться скучной, но следующая глава может основываться на том, что было представлено в предыдущих. С другой стороны, я хотел избежать ситуации, которая очень часто встречается в книгах по программированию, когда автор вводит некую концепцию, показывает упрощенный пример использования и переходит к другому. В моей книге мы действительно начинаем с простых примеров, но в конце каждой главы мы собираемся прийти к чему-то довольно всеобъемлющему – чему-то, что вполне может быть опубликовано на Мельпе в виде пакета. (Фактически, я мог бы опубликовать некоторые из них в какой-то момент.)

Кроме того, есть некоторые важные концепции, которые отсутствуют в книге. Моя идея заключалась в том, чтобы написать что-то, что можно было бы считать более или менее законченным, и, как только я соберу отзывы, возможно, расширю его. Действительно, есть несколько естественных кандидатов для дополнительных глав – тестирование, написание неспециализированных основных режимов, запуск внешних инструментов из Emacs и, возможно, другие вещи. Я даже отбросил некоторые идеи, которые, как я был уверен, попадут в книгу, например введение в функциональное программирование, которое я написал несколько лет назад – я могу снова представить их после того, как напишу то, что запланировал сейчас, но я хочу сосредоточиться на доставке сначала полная и самодостаточная (даже если немного минималистичная) книга.

Одна из приятных особенностей публикации незавершенной работы – это то, что она позволяет автору получить раннюю обратную связь. Так что, если вы решите достаточно доверять мне, чтобы заплатить за эту раннюю версию книги, я был бы очень благодарен за любые отзывы. Это слишком лаконично? Слишком многословен? Предложения слишком короткие? Слишком долго? И самое главное, что-то сложно понять? Скажите мне!

Подводя итоги, ожидайте здесь больше обновлений, скорее всего, раз в месяц или около того. Я хочу завершить книгу (или то, что может стать ее «первым изданием» в будущем) примерно в сентябре, так что следите за обновлениями!

КатегорияБлог , Категория Английский , Категория Emacs , КатегорияEmacsBook