Emacs в 2025 році? Так. І ось чому

Я священник Православної Церкви України, отець Михайло. А ще більше 30 років пишу код. Буває й таке😀. За цей час я працював з купою IDE, редакторів текстів і середовищ розробки, але Emacs залишається незмінним інструментом вже більше 20 років і планую використовувати його і надалі. Якщо це не підігріло ваш апетит, то листайте далі 😀

Колись давно точилися баталії йшло змагання між мовами C та Pascal. В процесі розвитку Pascal роздвоївся на дві основні гілки: Delphi та FreePascal. Це не допомогло йому втримати аудиторію, але мені довелося працювати з ними обома. Дещо краще було з Delphi, де був такий-сякий текстовий редактор, багато бібліотек, які там називались компонентами. Але було сумно з інтеграцією зовнішніх засобів, наприклад, систем контролю версій, кодуваннями чи вкрай невдала компонентна модель. FreePascal мав гарний кросплатформений компілятор, який можна було прив’язати до make — системи компіляції та управління задачами. Але не було сторонніх бібліотек та текстового редактора.

Спробувавши доступні редактори і не задовольнившись жодним я, нарешті, спробував Emacs. Попри високий поріг входу, він чудово працював з купою кодувань та мов та мав інтегровану роботу з make. Мої перші конфіги були жахливою копіпастою, але вони закрили мої потреби, а я закохався у такий спосіб налаштування програм. В результаті розробка на FreePascal значно спростилася.

Зрештою, я відмовився від Delphi/Pascal на користь Python та Emacs. Хоча там і не було пристойного автодоповнення, як у Delphi, та й, по-хорошому, не може бути дотепер, мова дозволяла зробити складні речі дуже швидко, тому десь за 3 місяці написав ядро CRUD з декларативним визначенням звітів та GUI, яке генерувалось на основі SQL-запитів. На Delphi мені знадобився б десь рік. Писав я під Windows, але через її незручність почав працювати на Linux.

Пройшли роки і Linux ставав тільки кращим, особливо у плані програмування. Python як не викликав у мене захвату тоді, так не викликає і досі, а Java виявилась чудовою. Ці два інструменти стали основними засобами розробки на роки. За цей час з’являлись, сяяли і зникали редактори коду та IDE, я експериментував з купою мов та різними напрямками в розробці, але Emacs завжди був поруч, як той швейцарський ніж:

  • потрібно зайти на віддалену машину та щось написати — а що краще за emacs це вміє?
  • хайп навколо нової мови чи поправити якийсь конфігураційний файл — в Emacs вже є мінімальний робочий режим.
  • потрібно написати статтю, документацію чи спланувати роботу — org-mode чудовий. Власне, в ньому і пишеться ця стаття.
  • працюєш з різним освітленням на різних моніторах — emacs просто підлаштується і під це.

У 2021-му році моя робота змістилась в сторону Internet Of Things (IoT) і моїм основним, бо є GPIO[^1], та улюбленим, бо можна покласти в кишеню, інструментом, став Raspberry Pi. А у 2022 році росія розпочала широкомасштабне вторгнення і я поїхав у інше місце, подалі від стрілянини. Інтернет там був поганий, не найкращі умови для віддаленої роботи. І тут Emacs розкрив свій потенціал: він досить швидко працює як на слабенькому Raspberry Pi так і віддалено по ssh, отже можна мати засіб розробки прямо на пристрої, який ти розробляєш!

Це модуль розумного будинку. Emacs крутиться і тут.

Досить скоро росіяни почали виносити енергетичну інфраструктуру і тут проявилися переваги Raspberry: він не тільки маленький, його, через перехідник, можна заживити і від автомобільного акумулятора. Ці нетипові, для сучасного програміста, умови прояснили для мене багато речей, про які я знав, використовував, але які були, все-таки філософією, а не практичним керівництвом[^2].

Але досить лірики, не за тим ви відкривали статтю. Поговорімо, краще про ⬇️

Текстові редактори vs IDE

Колись давно, коли здавалось, що життя таке ж нескінченне, як Чумацький шлях, я приймав участь у навколокомп’ютерних срачах, холіварах. Срались про те, яке пиво смачніше що краще: вінда, лінукс, чи фрібсд; яка мова крутіша і, обов’язково, яка IDE краща і чи, взагалі, потрібен в наш час текстовий редактор[^3]. В багатьох типових випадках IDE буде кращою за просто текстовий редактор, і я вписав Ідею в свій робочий процес та й в Emacs я намагаюся прикрутити функції IDE, якщо вони просто прикручуються або не тормозять. Але, на мою думку, прорив у функціональності досягається вдалою комбінацією невеликої кількості простих рішень, а не одним комбайном. І саме в цьому контексті текстовий редактор стає корисним, якщо ви слідуєте концепції ⬇️

Unix Way

Напевне, всі програмісти чули про це. Це принцип організації роботи складних систем, побудований на комбінації простих рішень. Ці принципи були сформовані в часи, коли комп’ютери були ще великими, дорогими, повільними, а заводити інформацію в них було значно складніше, ніж зараз. Але тоді писався чудовий софт, який робив складні речі і який зараз би вимагав на порядки потужнішого обладнання та засобів розробки. Тоді це були саме принципи розробки, методичка, а не шанована, але безплідна філософія! IoT-ня та війна помістили мене в такі умови, коли я теж працював в умовах, наближених до тих, де було сформульовано Unix Way.

З однієї сторони, це фізична організація робочого процесу: у тебе може не бути зручної клавіатури, великого монітора чи швидкої мережі. Зрештою, я старий став, лінивий і на додачу до інструментів перти на об’єкт ще й ноутбук мені ліньки та й жалко, як десь гепнеш. От я і працюю з мобільника.

Коли тобі повільно і незручно, то ти дуже добре розумієш, що система повинна бути осяжною. Навіть в комфортному офісі, чим менше коду, тим краще. Тому думай, не про те, щоб додати фічі, а щоб побудувати мінімалістичне ядро, до якого, за потреби підключити потрібну функціональність. Якщо програма на C, то потрібно бути уважнішим, бо легко додати багів. Якщо функція більше 15 рядків, думай над дизайном. Тому і сказано: Do One Thing And Do It Well. Саме з цього принципа виходить текстовий вихлоп, який легко завернути в логи, просто перевірити та, базуючись на ньому, поєднати програми, які легко замінити, якщо що. Та і в контролер ти багато коду не запхнеш[^4]. І важливою частиною роботи стає ⬇️

Текстовий редактор

Найбільшою відміною текстового редактора від IDE є його простота. Найперше, що він має вміти — це швидко запуститись, підсвітити код, зробити швидкий пошук-заміну тексту, з мінімумом рухів запустити програму, побачити результат і повернутись до коду. На невеликій програмі чи конфігові не потрібно складного автодоповнення, дебагера або рефакторига — лог прекрасен, а весь Unix Way будується навколо простоти і мінімалізму. Такі редактори, як nano, mcedit чи vi добре вписуються в цю концепцію. Через реактивність та простоту їх зручно зробити типовим редактором в системі. Але один редактор, здається, не відповідає вимогам і це ⬇️

Emacs

Якщо бути чесним, в Emacs із коробки немає хорошого текстового редактора, навіть прийнятних налаштувань теж немає. Він поставляється з комбінаціями клавіш, які неактуальні ще з початку 80-х, бо тих клавіатур вже немає, але сам Emacs залишається корисним та актуальним.

Ті самі клавіатури, під які заточувалися сполучення клавіш. Тоді все було логічно та зручно, та й взагалі порядок був, а не те шо січас.

Бо Emacs — це не редактор, це система. Він був створений під сильним впливом Lisp-машин і є Lisp-середовищем з усіма плюшками і недоліками цього підходу: власне, мовою, що схожа на Common Lisp, інтерактивною розробкою, конфігурацією системи на цій мові, текстовим та графічним інтерфейсом на вибір, швидким стартом і щільною взаємодією із системою на якій він крутиться. Все це породило купу розширень, які дозволяють виконувати широкий спектр задач. Звісно, купа редакторів та всі IDE вміють взаємодіяти з операційною системою, але GUI не дає добратись до них по ssh.

Складні речі краще налаштовувати в текстовому файлі, а конфігурація IDE здійснюється через вікно налаштувань, де легко щось запороти. Мені стає погано коли потрібно лізти в налаштування Ідеї [^5]. Такі конфіги важко розповсюдити деінде, доводиться витягати його з архіва, заливати а github, на іншій машині його підкидати. Не факт, що пройде гладно через сумісність версій IDE і формату запису. API IDE, як правило, складніше, і застосувати розширення поза межами комп’ютера, де вони розроблялися довше. Тож мати однакові налаштування IDE скрізь, де ти працюєш значно складніше. Перевага Emacs — це текстовий конфіг, зроби git pull на новій машині — і отримаєш актуальний стан свого Emacs скрізь!

І є те, чого я не спостерігав ніде більше: це середовище, яким надихалися тайлові оболонки. Можна розділити вікно на кілька частин, буферів в термінології emacs, і бачити кілька файлів або різні частини одного файлу одночасно! Саме поєднання цих принципів робить Emacs актуальним сьогодні.

Робочий процес

Щоб почати я зазвичай розпаковую архів з налаштуваннями Emacs. Там вже всі потрібні розширення, і основа у вигляді історії git. Далі git pull і все працює. Далі вступає в гру система зборки — make. За допомогою цієї утиліти дуже просто автоматизувати весь процес розробки більшості проектів починаючи від ініціалізації, продовжуючи керуванням залежностями, зборкою, тестуванням і деплоєм проекта. І по ходу діла описувати та відслідковувати роботу в Readme.org. Навіть для Java, хоча я і розробляю все в IDE, є корисним завернути maven в make, щоб щось віддалено швиденько поправити та зробити make deploy. Єдине, де такий підхід не спрацював, це розробка під Android.

Коли працюєш з телефону, прийоми роботи відмінні від роботи за комп’ютером відчуваєш дискомфорт: за комп’ютером у мене відкрито кілька терміналів між якими легко перемикатись. Там зручно лазити по каталогам та переглядати файли. На телефоні незручне перемикання між вікнами. На щастя, в Emacs є свій файловий менеджер — dired. Але з коробки все незручно відсортовано та перемішано, то я написав розширення для сортування та попереднього перегляду. Тепер не потрібно тримати окремі консолі для перегляду та редагування файлів.

Варто сказати, що потреби допилювати dired дуже довго не було, тому, що в Emacs дуже зручно відкривати файли, особливо якщо налаштовано ⬇️

Completion

В Emacs може не бути просунутого доповнення для певної мови, але є два режими, які часто використовуються: company-mode провадить стандартне віконечко з варіантами та документацією. Але є і більш вдале рішення на базі окремого буферу — completion. Ось як у мене працюють обидва варіанти:

(setq completions-format ’one-column)
(setq completions-header-format nil)
(setq completions-max-height 20)
(setq completion-auto-select nil)
(define-key minibuffer-mode-map (kbd «C-n») ’minibuffer-next-completion)
(define-key minibuffer-mode-map (kbd «C-p») ’minibuffer-previous-completion)
(define-key completion-in-region-mode-map (kbd «C-n») ’minibuffer-next-completion)
(define-key completion-in-region-mode-map (kbd «C-p») ’minibuffer-previous-completion)
(defun my/minibuffer-choose-completion (&optional no-exit no-quit)
(interactive «P»)
(with-minibuffer-completions-window
(let ((completion-use-base-affixes nil))
(choose-completion nil no-exit no-quit))))
(define-key completion-in-region-mode-map (kbd «M-RET») ’my/minibuffer-choose-completion)
;; marginalia-mode
(marginalia-mode t)
(setq marginalia-field-width 50)
;; company-mode
(add-hook ’after-init-hook ’global-company-mode)
(global-set-key (kbd «\e\em») ’company-complete)
(company-quickhelp-mode)
(setq company-quickhelp-delay 3)
(setq company-idle-delay nil)

Compilation

Буфер компіляції. Можна запустити компіляцію використовуючи make compile і, якщо є помилки, цей буфер перенаправить вас в потрібне місце в коді. А можна перетворити його в монітор роботи програми, виконавши make run чи python mycode.py. Одним з налаштувань цього режиму є розумне розширення під вміст буфера. В звичайному стані цей буфер знаходиться ніби у звернутому стані, займаючи мінімум місця (але достатньо для спостереження боковим зором), а при перемиканні в нього адаптується під розмір тексту. такої поведінки я ще не бачив в IDE. Для мене це важливо, бо розумно розподіляє увагу між кодом і вихлопом, який мене цікавить і мінімізує кількість моїх рухів. Ось мій хак, щоб це запрацювало:

(require 'popwin)
(popwin-mode 1)

(setq popwin:special-display-config
      '(("*Help*" :position right :width 40 :stick t)
        ("*Messages*" :position bottom :height 10 :stick t)
        ("*compilation*" :position bottom :height 15 :stick t :regexp t)
        ("*eshell*" :position bottom :height 15 :stick t)
        ("^\\*helpful.*" :position right :width 0.4 :stick t :regexp t)
        ))

(defvar my-window-max-height 25
  "Height of the window when it is active.")

(defvar my-window-min-height 10
  "Minimum height of the window when it is not active.")

(defun my-adjust-popwin-windows ()
  "Minimum height of the window when it is not active."
  (dolist (win (window-list))
    (let ((buf (window-buffer win)))
      (when (and buf
                 (assoc (buffer-name buf) popwin:special-display-config))
        (let ((config (cdr (assoc (buffer-name buf) popwin:special-display-config))))
          (when (eq (plist-get config :position) 'bottom)
            (if (eq (selected-window) win)
                (with-selected-window win
                  (enlarge-window (- my-window-max-height (window-height))))
              (with-selected-window win
                (shrink-window (- (window-height) my-window-min-height))))))))))

(add-hook 'window-selection-change-functions
          (lambda (_) (my-adjust-popwin-windows)))

А як же без...

  • дебагера? Режим compilation + системи логування чудові. Єдине, де я користуюсь дебагером, це Android. І то, тільки тому, що logcat став незручним.
  • автодоповнення та навігації по коду? По-перше, таке-сяке автодоповнення для більшості мов є. Для Java все сумно, є тільки базове автодоповнення, але і з цим можна жити. Як не дивно, але без автодоповнення можна працювати, а от швидкість відгуку системи для мене важливіше. Навігація по коду теж багато для чого є, хоч на рівні language-mode, хоч на рівні тегів (у мене налаштовано автоматичне оновлення тегів при зберіганні).
  • рефакторинга? Це той момент, коли потрібна IDE :)
  • управління проектом? Emacs має кілька систем управління проектом, наприклад, projectile. Я не люблю ставити лишні розширення, тому використовую базовий .dir-locals.el
  • системи контролю версій? Рідний vsc непоганий, а magit чудовий.
  • без зручної клавіатури, наприклад на телефоні? По-перше є безпроводна міні-клавіатура, жити можна. По-друге, стандартні сполучення клавіш типу Ctrl-F/B/P/N з стають у нагоді, особливо, якщо погано попадаєш по стрілкам.

Що ще?

Потенціал Emacs Lisp, мови розширень Emacs, недооцінений. Це потужна та зріла мова, а Emacs надає купу зручностей для неї: REPL, автодоповнення, гарну документацію, можливість взаємодії з системою. І купу бібліотек, які доступні у вигляді готових пакетів. Ви можете використовувати її не тільки для розширень, а і для купи разових задач, не вартих навіть окремого файла для зберігання, як то скачати дані, розпарсити їх і т.і. В принципі там є все, щоб крутити якісь сервіси з можливістю оновлення коду без перезапуска.

Приклад разової задачі

Стандартна задача аналізу лога. У мене є регулятор, який читає значення температури та вологості. В процесі розробки я пишу лог який я і хочу проаналізувати. Я запускаю make run і в буфері Compilation виводиться щось на кшталт:

t 10
t 12
t 18
h 80
t 25
t 30
t 33
h 77
t 31
t 28

Тепер потрібно відфільтрувати значення >= 30, щоб подивитись, як відпрацьовує регулятор. Є кілька способів це зробити. Самий простий, віділити потрібні рядки, викликати shell-command-on-region та передати його в Unix-way спосіб:

awk '$1 == "t" && $2 >= 30'
t 30
t 33
t 31

Але лог, як правило, великий, незручно виділяти, викликати і т.і. Можна просто скормити вміст буфера *compilation* lisp-кодові. І навіть більше, можна організувати роботу з ним в стилі Unix-way.

В Emacs є буфер*scratch* для виконання lisp-кода. От його я і використовую для разових задач. Тут функція my/with-compilation-buffer передає вміст буфера *compilation* в my/filter-compilation-temp.

(defun my/filter-compilation-lines (lines)
  "Filter LINES starting with 't' where value >= 30."
  (let ((results nil))
    (dolist (line lines results)
      (when (and (stringp line)
                 (string-match "^t \\([0-9]+\\)$" line)
                 (>= (string-to-number (match-string 1 line)) 30))
        (push line results)))))

(defun my/with-compilation-buffer (handler)
  "Call HANDLER with the lines of the *compilation* buffer as a list."
  (with-current-buffer "*compilation*"
    (funcall handler (split-string (buffer-string) "\n"))))

(defun my/filter-compilation-temp (lines)
  "Filter LINES starting with 't' where value >= 30 and print to stdout."
  (interactive)
  (let ((results (my/filter-compilation-lines lines)))
    (if results
        (with-temp-buffer
          (dolist (result results)
            (insert (format "%s\n" result)))
          (princ (buffer-string) t)))))

Залишилось лише викликати (my/with-compilation-buffer 'my/filter-compilation-temp). Це можна зробити в чомусь, що підтримує виклик функції: консолі ielm, прямо тут, в *scratch* або в інтерактивному виклику натиснувши M-:

Але саме цікавіше, що в Emacs вбудовано команну оболонку, eshell. Вона дозволяє вивести результат у змінну чи передати конвеєром

eshell> (my/with-compilation-buffer 'my/filter-compilation-temp)
t 30
t 33
t 31
eshell> (my/with-compilation-buffer 'my/filter-compilation-temp) | wc -l
3

Нажаль, eshell ще не навчився приймати вхідний текст через пайп, але можна вивести у змінну echo "Hello eshell" | wc -c > #'myvar. Якшо не потрібно використовувати результат в стилі Unix-way, то код буде ще коротшим.

Більше про eshell можна дізнатись з цієї статті.

Закінчення

Коли ти слідкуєш за простотою системи, складні інструменти і великі ресурси вже не критичні[^6]. Звісно, в мене є значно потужніше залізо, ніж телефон чи Raspberry Pi, але саме поєднання Linux, make та Emacs дозволяє ефективно писати код та організовувати процеси навколо нього. Звісно, є те, що не буває простим, в моєму випадку це були розробка під mobile або бухгалтерія, тут Unix Way не буде працювати.

Хоча я находжу Emacs оптимальним, але є ще два популярні інструменти, які роблять приблизто теж саме. Це Vim та VSCode. Обидва мають приблизно ті ж можливості: складніші за тупий редактор, але недотягують до IDE, всі троє налаштовуються, мають мову розширень. Головним недоліком Vim є те, що він псує текст 😉, а мова конфігурації гірша за Lisp. До VSCode не доберешся по ssh і він все-таки повільніший, а швидкість відгуку редактора для мене залишається вагомим аргументом. Заради цього я готовий пожертвувати просунутим автокомплітом.

Всі три редактори підтримують сучасні мови через lsp-mode, що забезпечує автодоповнення та навігацію по коду для Python, JavaScript та купи інших мов, наближаючи його до можливостей IDE, але втрачається простота і швидкість, які я так ціню.

З написаного видно протиріччя: як Emacs суміщаться з Unix Way, з його простотою та мінімалістичністю? Emacs достатньо швидкий, щоб залишатись текстовим редактором, звісно, якщо з нього не ліпити IDE. Я надаю перевагу простим та швидким режимам з базовим функціоналом, як то підсвітка синтаксису, робота з VCS, інтеграція з системою та універсальним автокомплітом. В моєму випадкові це чудово працює як само-по-собі на легких проектах, так і в парі з IDE.

Тут я згадав лише основні моменти, чому Emacs актуальний для мене, а по багатьом з них можна було б написати по статті. Для когось цей підхід не відкриє нічого нового, а хтось, можливо, відкриє для себе чудові пласти програмістської культури. Зрештою, вагомою частиною програмування є фан. UNIX, Lisp, Emacs і все довколо них розробляли дуже талановиті і, напевно, геніальні люди. Атмосфера вільних, творчих, сміливих та рок-н-рольних 70-х досі присутня в цих інструментах, а винаходи того часу досі не втрачають актуальності. Якщо ви ще не торкнулись цього, то все просто виправити:

sudo apt install emacs

Footnotes

[^1]: GPIO — інтерфейс для підключення датчиків

[^2]: Як же це схоже на ситуацію в християнстві!

[^3]: Звісно, дати відповідь чи варто вкладатись в ту чи іншу технологію такі срачі не можуть, дешевше і швидше попробувати зробити щось на кожній з них і вирішити для себе що, де і за яких умов краще.

[^4]: Знаю, тепер це вже неактуально, python туди запхали 😀

[^5]: Якщо налаштовувати Emacs через вікно налаштувань, стає ще гірше

[^6]: Це перегукується з практикою християнства, де одним з побічних ефектів є перемикання з володіння на буття. В цей час якби самі-по-собі відпадають купа речей, звичок, намірів і людей. І от таке простіше життя приносить радість. Але це вже інша історія.

Підписуйтеся на Telegram-канал «DOU #tech», щоб не пропустити нові технічні статті

👍ПодобаєтьсяСподобалось20
До обраногоВ обраному6
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Круто, наснаги та творчості

Це дуже похвально, ви — молодець!

Основний value proposition emacs це те шо він розширюваний без кордонів. Це дає йому можливість адаптуватись до будь-чого пов’язаного із текстом.

Пару років тому емакс для програмування був застарілим і костилявим. Сьогодні tree-sitter та інтеграція ЛСП з коробки роблять його аналогічним вскоде ітп редакторам майже відразу (замість lsp-mode використовую eglot який іде зараз по дефолту). А далі можете ставити і конфігурувати-дописувати що завгодно, під свої воркфлоу. Зробив собі інтеграцію з анкі щоб створювати та редагувати картки в плейнтексті та тримати їх під гітом. Наступним кроком буду дивитись в інтеграції ЛЛМ щоб мати централізоване місце де я з ними спілкуюсь. Вся історія зберігатиметься локально, по ній можна буде робити греп, як мінімум.

Якшо немає потреби у кастомному, звісно, немає сенсу

>Anki
Доречі, можете спробувати й мій додаток play.google.com/...​com.waverunner.wordrunner

VS code что ли не осилил ? Седня смотрел чего мой мак тормозит и оказалось ИДЕЯ сожрала 3гига памяти. Это маленький проект на 200 строк, ну немного еще депенденси, но 3 гига — это дофига. ВС код тоже любит память, но можна запускать его локально а код держать в клауде на виртулке. Емак конечно уже не окопать из истории.

В статті написано ж :)

VS code что ли не осилил?

питання: для чого

ВС код тоже любит память

і відповідь: ресурси по стрес-тестам поганяти)

и оказалось ИДЕЯ сожрала 3гига памяти.

Какой именно памяти? VSZ? RSS? Dirty pages? Вы вообще в курсе про организацию Mach-styled VM во всех современных Unix-like и Windows OS, и как она влияет на различия показателей?
«Сожрала памяти» без указания её типа это показывает только то, что рассказавший это не знает, как оценивать потребление памяти и, как следствие, как искать причины торможения системы.

імакс топ. Свічнувся з нього лише через якусь графодрочерську фігню, що мене дратував баг, як мерехтів в певному моменті юай. А по суті сетап був дуже зручним і гнучким. Тобто просто набрид і хотілось чогось нового, що буде відбуватися з психікою людини завжди. Найбільш чіткий юай-юікс, мені здалося, в хіліксі, тому юзаю його, але не наполягаю, що це найкращий варіант для всіх

Використання Emacs/Vim бачу рентабельним тільки якщо в тебе надлегке залізо або ти який-небудь девопс, у якого 99% робочого часу проходить в консолях та SSH. Тобто абсолютно і точно як «легке рішення для легких задач».

З пів року пробував сидіти на різних конфігах neovim, але воно не здатне на щось більше за редагування конфігів чи невеликий персональний пет проджект.
Навігація по чужому коду? Ніяка.
Простий конфіг? Ніскілечки, хіба що тільки в разі редагування тексту as-is, як в блокноті, без будь-яких develop-related фіч.
Можливо хороші плагіни для сучасних фреймворків? Ноуп, добре буде якщо LS для твоєї мови оновлювався хоча б раз за останні 10 років.
Хороші шорткати, конфіги? Ні, все маєш налаштувати під себе з нуля, навіть банальне форматування чи підсвітку синтаксису("на тобі відро з піском — сам збудуй інструмент що тобі треба" — саме те рішення, що потрібне сьогодні девелоперу, ага).
Можливо інгеграції з тікет-системами? Теж ні.
Просунута робота з гітом? Нєа, спробуй порезолвити конфлікт хоча б на 1к+ стрічок коду в різних файлах — посивієш раніше.

Все де він показував себе на 100% — це редагування конфігів, перегляд надвеликих файлів(що IDE зазвичай не можуть), швидкий ssh доступ до IoT/невідомого заліза та перегляд логів. Не бачив жодного готового конфігу, який би покривав 100% потреб девелопера (навіть опускаючи факт, що тобі потрібно фізично йти і шукати конфіг для кожного екстеншену, і дай боже щоб він був актуальним і працюючим — або хоч взагалі був). Тільки мільйон туторіалів на 4+ години як налаштувати дебагер чи `go to definition`(навіть із розслабляючою музикою на фоні, щоб менше підгорало), який все одно буде працювати через жопу.

юніксоїди та служителі церкви не шукають простих шляхів бо складний шлях загортовує через страждання і веде до просвітлення та розвитку:) Амінь!

Якщо говорити за прості шляхи... Вінда — складніша за Linux, PowerShell за bash. Зрештою, не просто так у вінду засунули бубунту та скопіювали KDE 😀
Якщо будувати системи, орієнтовані на довгий аптайм, рішення на вінді буде дорожче, складніше і все одно менш надійним.
З мого досвіду, linux це, якраз, суттєве спрощення життя.
Із мінусів це те, що доведеться поламати любимі шаблони, але воно того варте.
З християнством десь схоже, але там багато писати треба.

Оо, дякую за відповідь)
Боюсь що буде черговий холівор)

Вінда — складніша за Linux,

це дивлячись як дивитись, З технічної точки зору виконання Вєнда скдадніша, але з точки зору звичайного користувача простіша за Лінукс;)

Зрештою, не просто так у вінду засунули бубунту та скопіювали KDE

наскільки мені відомо це зроблено для галочки, аби було, бо реально підсистемою лінукс на вєнді ніхто не користується бо «не кошерно»:)

Якщо будувати системи, орієнтовані на довгий аптайм, рішення на вінді буде дорожче, складніше і все одно менш надійним.

спірно, бо перше спеціаліст який усе налаштує на лінукс, на довго, буде коштувати дорожче ніж спеціаліст під вєнду, по-друге це здається дивним але в Україні держава готова платити за Вєнду бо розуміє що за підтримку лінукса треба буде заплатити більше ніж за ліцензійну вєнду

З християнством десь схоже, але там багато писати треба.

десь згоден, але це окрема тема

>але з точки зору звичайного користувача простіша за Лінукс;)<
По-перше, я все-таки, не простий користувач, а по-друге, вже забув, коли я востаннє робив десктопне рішення під вінду 😀. Навіть контролери зараз плюються веб-інтерфейсами, яким однаково на чому працювати.
Головне, вінда складніша в плані «поставив, автоматизував, забув, а потім, якщо припече, розібрався».

>наскільки мені відомо це зроблено для галочки, аби було<
Хто зна чому вони його прикрутили, але воно є і розвивається. А інтерфейс 11-ї вінди ну прямо кеди 10-тирічної давнини.

>перше спеціаліст який усе налаштує на лінукс, на довго, буде коштувати дорожче ніж спеціаліст під вєнду<
Сервер для 1с, напевно, краще робить на вінді. Та й можливості для розпилу більше, ніж на лінуксі. Але й аптайм, з мого досвіду, у вінди значно менший. Втім, вєндоадмін, який за цим наглядає, буде працевлаштований, але не факт, що він зможе щось автоматизувати на тому ж Power Shell. А залізяку з верхнього фото підключив і забув.
Різні потреби вимагають різних інструментів.

По-перше, я все-таки, не простий користувач, а по-друге, вже забув, коли я востаннє робив десктопне рішення під вінду

я кажу з точки зору звичайного користувача

А інтерфейс 11-ї вінди ну прямо кеди 10-тирічної давнини.

вони друг у друга щось завжди копіювали mac<>win<>linux

в Україні держава готова платити за Вєнду

Не зовсім. В школі, наприклад, була піратка, і досі, мабуть, — піратка, не знаю.

Цікаво, як в армії з цим.

не знаю як у школі, бо і шкіл зараз звичайних вже немає, бо усе онлайн у дома, або напевно гроші виделені були, а школа купила вєнду для тих хто займається розпилом шкільного бюджета;)

не знаю що в армії, але знаю що зараз з переводом медицини та інших соцзакладів у цифру, усюди була ліцензія

як вірно зазначили вище придбання ліцензійної вєнди це зручний спосіб розпилу місцевих бюджетів

Для великого і жирного проекту придумали Ідею 😀.
Фото зверху Raspberry Pi Zero (навіть не 2). На цій залізяці зручно робити різні прототипи, її можна запхнути в некомфортні умови, надовго там забути і т.і. Там живе emacs. Коли є потреба, туди зручно зайти по ssh і ту проблему вирішити в зручному оточенні. Там тобі і зручний редактор регулярних виразів, і підсвітка синтаксиса, і таке-сяке автодоповнення, і інтергація з make. Такий от дебагер.
Окремим бонусом йде те, що emacs lisp швидший за python і разові задачі він робить не гірше. Зрозуміло, що комерційних перспектив на сьогодні у цієї мови ніяких. А жаль, в цьому середовищі воно було б зручним.
А з різними клонами vi я теж не потоваришував, отакої.

ну nvim на щастя має більш можливостей, і в цілому, його можна налаштувати як VS Code, з усіма плюшками і навіть з Copilot
тож, якщо потрібно швидетько щось підправити, то його може вистачити

З прогоамуванням ясно. Але не розкрита тема: чому священник? Як так сталось?

а що тут дивного? програмувати священнику «релігія має не дозволяти»,
навпаки навіть цікава тема linux, кодинг, хакінг та emacs як нова релігія?
а чому б ні, ви не згодні?

Було покликано. І після третього покликання я зрозумів, що потрібно йти.
З.І. Це не були голоса в голові 😀.
Втім, тема «як Бог з’явився а моєму житті» тягне на лонгрід. Прямо зараз я на це не готовий.

Цікава стаття дякую, але виникли питання.

>на мою думку, прорив у функціональності досягається вдалою комбінацією невеликої кількості простих рішень, а не одним комбайном
>Такі редактори, як nano, mcedit чи vi добре вписуються в цю концепцію. Через реактивність та простоту їх зручно зробити типовим редактором в системі. Але один редактор, >здається, не відповідає вимогам і це

Ви не помітили протиріччя? прості рішення =|= комбайн

>І є те, чого я не спостерігав ніде більше: це середовище, яким надихалися тайлові оболонки. Можна розділити вікно на кілька частин, буферів в термінології emacs, і бачити >кілька файлів або різні частини одного файлу одночасно! Саме поєднання цих принципів робить Emacs актуальним сьогодні.

ось здається і відповідь чому особсто мені не заходить емакс, бо тайлінг! він далеко не усім підходить, як я не намагався але мені зучніше працювати в одному великму вікні(nano, mcedit) і перемикатис між іншими або хоткеями абе на панелці.

>Потенціал Emacs Lisp, мови розширень Emacs, недооцінений. Це потужна та зріла мова, а Emacs надає купу

де це практично зараз можна застосувати, цікаво лише з історичної точки зору?

>Тут я згадав лише основні моменти, чому Emacs актуальний для мене, а по багатьом з них можна було б написати по статті. Для когось цей підхід не відкриє нічого нового, а >хтось, можливо, відкриє для себе чудові пласти програмістської культури

а ось ще одна відповідь, для опанування емакс треба бути лінуксоїдом + програмістом over 80lvl+

Прості рішення != вдала комбінація простих рішень. Наприклад, С проти С++, або go vs rust, якщо брати сучасні мови. Чи python версій ще ±2.3.
В плюсах, rust чи останніх java пішли шляхом «комбайна», напхавши в мову кучу фіч.

>де це практично зараз можна застосувати, цікаво лише з історичної точки зору?
Я застосовую, наприклад, при обробці логів чи написанні власних розширень, наприклад, тут урок — це розширення emacs m.youtube.com/...​sVtetzBddBaM9WOXL2r4Yikdd

>тайлінг! він далеко не усім підходить, як я не намагався але мені зучніше працювати в одному великму вікні(nano, mcedit) і перемикатис між іншими
C-x 1 жи. Втім, для мене повноекранний режим + тайлінг саме продуктивне. Доречі, i3wm прєкрасєн.

>ось ще одна відповідь, для опанування емакс треба бути лінуксоїдом + програмістом over 80lvl+<
Тут зворотня залежність: потрібно бути лінуксоїдом. Як наслідок, ти стаєш кращим програмістом і заводиш собі emacs 😀. На сьогодні Linux — це найпростіший спосіб будувати надійні, гнучкі та дешеві системи, тому його варто опанувати, далі ви зрозуміли 😀
dou.ua/...​rums/topic/55430/#3003922

Дякую.
А як ви відноситесь до *bsd?
Який ваш улюблений дістрибутив лінукс та яке de чи wm?

Ubuntu Mate прєкрасна, я ганяю її на ноуті та компі і Raspberry Pi Os для малини. Хоча я геть не в захваті від LXDE та Debian, але для продакшена краще використовувати фірмове рішення. Вронія в тому, що я в захваті від малини і мирюсь з фірмовим софтом.
В якості робочого стола на ноуті/компі або i3wm, або Mate — люблю фулскрін, простоту та швидкість.
За BSD нічого не скажу, бо ніколи не ганяв.
От від чого не протащився, так це від красівого мака.

Дякую.

Raspberry Pi Os для малини

це ж та сама lxde, яка повільно розривається бо основні розробники перейшли на lxqt.
а що не так з lxde на дебіан?

От від чого не протащився, так це від красівого мака.

це так би мовити єресь), бо пропрієтарщина, повна протилежність лінуксу, канонам і кошерності вільного ПЗ, але ноги у макосі ростуть з *nix

на ноуті/компі або i3wm, або Mate

Mate як намене важкувата, тому мені більше подобається xfce

На Debian основна проблема — це Debian 😀 Там завджи якісь дрібниці недоколихані. Доколихувати їх сумно. Люблю Ubuntu, там до цього уважніші.
Lxde, як на мене, ні десктоп, ні віконний менеджер.
В Mac нема ні зручного десктопу, на нормального пакетного менеджера.

Як на мене назараз debian зручніше трохи, чого нема з коробки — snap, докбар в gnome (з того що згадалося зразу, може ще щось). По великому рахунку таксамо все з софтом, тільки більш консервативний підхід з експериментами, і тому по ідеї підтримувати легше (як на серверах, так і на юзер десктопах).

Snap чи flatpack додають більше проблем, ніж вирішують. Було кілька додатків, які мали проблеми з доступом до того, що за межами пісочниці.
От скільки я Дебіан пам’ятаю, оті дитячі проблеми псували життя. Ось, наприклад medium.com/...​pberry-pi-os-33e624e63316 і це ситуація, коли мейнтейнить потрібно півтори залізяки. Там ще через той недороблений Wayland проблеми з доступом по vnc були. Зато перемикання між вікнами в стилі Windows 7.

У них крім базового функціоналу з контейнеризації (як нп легша по ресурсам альтернатива докер-рішенням), ще іноді плюси зустрічаються — нп на старих системах де чи нема бажання апгрейдитись чи то неможливо — тоді через snap/flatpak доступні свіжі рантайми і тому можливо додати модерновий софт який залежить від них.

А в цілому так — мені також і звичніше і зручніше з стд пакаджами, але.. якщо орієнтуватися на звичайне офісне використання — то контейнеризований і свіжий юзер софт (який ще і доволі часто змінюється) ставиться через store з flatpak чи snap — по ідеї саме то для офісної роботи/підтримки.

Походу пісочницю мейнтейнить гірше, ніж deb. Emacs, Android Studio, viber, ще щось дуже глючили.

Походу пісочницю мейнтейнить гірше, ніж deb

Невпевнений повністю (бо нп yaml маніфест для snap простіший ніж debian/* для deb), але цілком можливо. Хоча... зновуж — якщо розглядати тільки deb формат цілком можливо що легше підтримувати буде, якщож треба deb/rpm/arch-alpine-BUILDs/... та деякі інші, то супровід під купу опцій з доволі різними форматами і підходами — може бути накладно принаймні по часу.

Emacs, Android Studio, viber, ще щось дуже глючили

Android studio зараз десь є під рукою — і в debian13 (правда не пам’ятаю звідки початково ставилося в /opt) і в ubuntu25.04 (snap) — ніби все ок. За emacs і viber не в курсі.

p.s. я в принципі в основному юзаю майже тільки стд пакаджи, але цілком ясна яка мета flat/snap контейнеризацій та їх використань (з їх плюсами та мінусами)

pps. вище пропустив відносно raspberry — я би під iot девайси контейнеризовані рішення уникав зовсім, хоча зараз доволі неслабенькі (відносно) по всім ресурсам девайси вже йдуть — то можливо з часом і туди контейнерні рішення доберуться повністю

Студія з сайту гугляшки нормально працювала, а з пісочниці щось було чи з емулятором, чи з девайсом, не пам’ятаю вже.

studio свої залежності та їх структуру своїми засобами може підтримувати (наскільки я то розумію), тобто доволі нетипова річ якщо загалом по усьому пакетованому софту брати (це так по ходу як можливий excuse у деяких випадках)

З новим emacs-ом щось вилазило, чогось не бачив, здається зовнішніх команд. Простіше було самому перекомпіляти, ніж розбиратися з пісочницею.

Wayland проблеми

чув, що вюленд помер ще не народившись, чи так не знаю бо я мав справу тільки з Х, а з вюленд також були проблеми

Wayland

чув, що вюленд помер ще не народившись

чув :)
а скільки років відсутній досвід роботи з лінукс десктопами якщо він був?

(тицав кнопку схожу на старт — не враховується)

а скільки років відсутній досвід роботи з лінукс десктопами якщо він був?

досвід є, але справу з вюлендом не мав, бо юзаю лінукс на старому залізі

вюленд помер ще не народившись
справу з вюлендом не мав, бо юзаю лінукс на старому залізі

безвідносно плюсів-мінусів іксів, не помітити на лінукс десктопах перехід до wayland неможливо

не зрозумів, але пробував pop.os і nobara на новому десктопі для ігор, ікси мені більше сподобались для протона ніж вялений

В популярних debian-based системах на ікси потрібно перемикатись.

Якщо там gnome/gtk то gdk backend вже wayland по дефолту (якщо не застарілі версії), треба додати що назараз часто не помічають wayland під капотом за рахунок xwayland проксі. Pop.os/nobara не цікавився — тому що саме там чи просто застарілі версії — хз.

p.s. «вялений» то wayland з якогось сленгу чи щось інше?

Не помітив. Що треба зробити, щоб помітити?

Яка дефолтна сесія чи WAYLAND_DISPLAY? Xwayland для того щоб перехід відповідно відбувався не шашкою.

p.s. якщо загальну інфо отримати, то зазвичай з `inxi -G` зручно
pps. по gtk, gdk backend: docs.gtk.org/gtk4/wayland.html

Здається, правильне питання — з якої версії має початись?
У мене на графічних хостах Kubuntu 22.04. І там бачу X11. З якої версії чекати змін?

З kde/qt не дивився, під рукою зараз з kde тільки opensuse16 з дефолтною wayland сесію.

З gnome/gtk4 після 4.12 то вже точно було.

релевантність вітаннь до мене яка — смайликом похизуватися?

тому що ви за вюленд піарите тут, а вюленд ще пиляти і пиляти якщо вже не піздно бо треба щось нове:)

за вюленд піарите тут

де, хто, gnome, kde, nvidia?)

а вюленд ще пиляти і пиляти якщо вже не піздно бо треба щось нове:)

букво вюленд якийсь)

ну як, дебіан це основа усе інше похідні різного ступеню поліровки, і кому як, а мені і багатоьом іншим цікавіше самим полірувати дебіан напильником, тому кожному своє,

lxde якраз чудове суцільне DE, до того легке, нажаль його майже не підтримують на користь lxqt, а WM у lxde та lxqt свого власного немає, тому ставите що до вподоби зазвичай це openbox

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

Мене вже давно не цікавить компіляти ядра та полірувати систему. Убунту просто працює, та й по тому.
Юзабіліті Мака сильно перевищена, це більше понти. Мате та i3wm наразі найкраще в цьому плані. Навіть 11-та вінда, якщо не лізти в новомодні налаштування, вони жахливі, юзабельніша за Мак.

Мене вже давно не цікавить компіляти ядра та полірувати систему. Убунту просто працює, та й по тому.

Так, згоден, якщо комп новий

Юзабіліті Мака сильно перевищена, це більше понти.

Також згоден але більшості фанів огризка подобаються понти

i3wm

а яким файлменеджером користуєтесь під і3wm, і чому?

а яким файлменеджером користуєтесь під і3wm, і чому?

PCManFM

дякую, а як же кошерні mc, ranger, або взагалі вбудований у emacs для труъ?;)
у чому сенс користуватись i3wm якщо користуєтесь gui pcmanfm?

По-перше, відти дуже зручно витягати флешку :) По-друге, десь зручніше PCManFM, реактивний, з мінімальними залежностями; десь зручніший mc та й допиляний dired зручний. Не бачу проблеми.
І я тойво, не труъ :)

І я тойво, не труъ :)

якщо emacs то явно що труъ :)

Бо i3wm не має власного власного файлового менеджера. Для цього спеціально придумали PCManFM чи SpaceFm

ось, до тайлинг менеджера кошерніше підходить щось tui,
а PCManFM чи SpaceFm з інших ДЕ

Стаття гарна, хоча і користуюсь практично тільки vim/nvim. Відносно lsp сервісів — чесно кажучи я вже навіть і забув як без них незручно було кодувати, і наскільки більше зусиль витрачалося. Навіть не тільки сі чи пайтон чи багато інших мов програмування, а нп колись і не здогадувався що знайду доволі резоні warn/hints навіть для простої шелл скриптовки нп у nvim)

Більшість недоліків Vim виправили в NeoVim — neovim.io :)
А VSCode має плагіни для роботи із віддаленими серверами через ssh (code.visualstudio.com/docs/remote/ssh) і непогано працює в цьому сегменті :)

Зараз хто тільки не вміє, те, що emacs вмів 20 років тому :) Тут поінт в тому, щоб залізти на віддалену систему і там запустити. Це потрібно, не тільки, щоб накодити і там запустити, а щоб взаємодіяти з віддаленою системою. Ну і локально може не бути нічого, як на телефоні чи планшетці, а ssh є скрізь.

Дивно. Для FreePascal повністю переписали бібліотеки Delphi та створили Delphi-подібну IDE. Називається вона Lazarus. Ім’я вибране за іменем Біблійного персонажа — Лазара з Віфанії. Вибір імені пов’язаний із тим, що перша версія IDE називалась Megido, виявилась неуспішною та перестала існувати. І деякі розробники вирішили «воскресити» проєкт, і вибрали для нього ім’я Лазара, якого воскресив Христос. Навіть зараз ця IDE активно розвивається — www.lazarus-ide.org

На початку нульових Lazarus був в зачаточному стані, а саму Delphi я не вважав і зараз не вважаю вдалою ідеєю.

Delphi просто започаткувала цілу низку принципів, за якими зараз створюються візуальні інтерфейси у різних IDE на різних платформах. Але дуже швидко стали bloatware.
А для Linux у Borland ще був Kylix. Ось той проєкт остаточно зник — en.wikipedia.org/wiki/Borland_Kylix

У Делфі дуже довго не було пристойного менеджера геометрії (анхори не рахуються). Tcl/Tk, а потім Tkinter за простотою зарулювали. В Java був Swing, на принципах Tk побудований, але багатословніший.

напевно вам пощастило не працювати у 2026 році з системою у якої менеджерів геометрії (анкори не рахуються) нема взагалі, а можливостей що давала навіть D1 для маніпуляцій з контролами на формі в рантаймі не було і обіцяють що не буде (навіть просто змінити прив’язку до іншого поля в джерелі даних), настільки УБОГИЙ вбудований редактор скриптів, який не допомагає писати код, а тільки заважає і засобів підключити зовнішній нема....
Часи коли я писав в D2007 та навіть D7 або Ecilpse згадую просто як казковий сон.

Один такий продукт я знаю. Там FastReport і ще щось своє, схоже на бейсік.

колись писав, що мене там дратувало michael-kazarian.medium.com/...​phi-парт-тво-5be9e0d233b4

Прикольний шлях :) В мене частково схожий, хіба що священиком поки не став. Хоча прапрадід був протоієрей, так що якщо раптом надумаю — то не перший у роді буду :)

По розробці — не згоден з тезою про «вкрай невдалу компонентну модель в Delphi». Я в Delphi «міг усе», брався за проекти будь-якої складності. Навіть написав свій фреймворк поверх VCL, щоб покрити тестами 100% UI. Результат мене самого здивував — воно реально працювало. Але пояснити команді, як це все влаштовано, було ще той челендж... Мій поінт — у Delphi було все, як у всіх. Якщо рівень розробників достатній — можна було писати нормально. Проблема радше в тому, що нових проектів майже не лишалося, і десь у 2012 я почав шукати наступний стек. Спробував C# (автор той самий, що й у Delphi) — принципової різниці не відчув. Спробував Java — тоді вона була занадто вербозна і, як на мене, в стагнації. Ще копався в Scala, Ruby... але найбільше зайшов Python :)

В результаті в мене вийшов той самий перехід —

я відмовився від Delphi/Pascal на користь Python та Emacs

А далі, як наслідок, і на Linux пересів. Пів року писав в Emacs, потім зламав свій Debian, перевстановив, але конфіг Emacs уже не відновив. Тоді і пересів на IDE — треба ж було щось робити, а не воювати з dotfiles...

Дякую за статтю — сколихнула хвилю спогадів і ностальгії

З Делфі була халепа, що постійно лізли глюки НЕ з CP1251. Компоненти, що працювали з SQL теж не вийшло працювати як хотілось.
На початку нульових я почав активно використовувати DSL для своїх задач. У випадку паскаля це лексяки, а у випадку пітона його структури данних.
Коротше все було рішабєльно, але занадто складно.
Хоча я і віж пітона не в захваті :)

Веселіше було коли embarcadero різко перейшли на 2х байтовий w_char_t з однобайтового, розмір типу char змінився і помітили це не відразу)))

Вчасно втік :)

Там ще дуже сумно було, що VCS не була інтегрована.

колись писав про претензії до моделі розробки. michael-kazarian.medium.com/...​phi-парт-тво-5be9e0d233b4

Раз пять брал emacs на испытание, отплёвывался от предельно дебильных шорткатов и забрасывал его. Переписывать все к чему-то нормальному мне было облом. Столлман гений в политике, но полный даун в UX.
Идея с лиспом внутри чудесна, но не достаточна, чтобы оправдать остальное.

Я переназначив шорткати. Втім М-х + completion прєкрасни, див. скрін. В нижній частині воно десь так. Деякі роблять completion як в VSCode, але мені не зайшло.

Ось саме за Meta і є моя перша скарга. Ну нема такої клавиші на клавіатурі, и тим більше нема в транспорті ssh. Alt+буква не всюди працює. А тиснути кожного разу щось як Esc M мене задовбує. Emacs писався під локальну консоль, тим паче текстову, навіть не xterm, і від того така маячня.
Друга — довгі слова, які треба набирати на майже кожну важливу дію. Ось їх теж всіх переназначати — гіморно.

Я з вами згоден, що залишити стародавні хоткеї це рішення в стилі хіппі. Персонально для мене це не проблема: у мене небагато хоткеїв: F2 для зберігання, F9 для запуска `make`, `Esc-Esc-m` для менюшки автокомпліта, яку я не дуже люблю. Перемикання між буферами та відкриття файла дефолтні, я їх люблю. Для решти M-x. А далі історія команд та автокомпліт.

Нещодавно почув, що Лінус досі користується власною модифікацією Мікро Emacs, просто так звик
www.youtube.com/shorts/BHmyxsIdOHQ
github.com/torvalds/uemacs

А James Gosling, автор мови Java, переписав Emacs на Сі для Unix
www.youtube.com/...​atch?v=IT__Nrr3PNI&t=636s

Emacs і так на С. Розширення на lisp. /потім вони компіляються в байт-код та натив і доволі шустро, як для динаміки, бігають./

Нещодавно почув, що Лінус досі користується власною модифікацією Мікро Emacs, просто так звик

Я можливо помиляюсь, але ви подивіться на вік гіта мемакс, я також років п’ять читав що Лінус користується звичайним нано

так, останні зміни в репозиторії — років 7 назад,
але відео — в цьому році
youtu.be/...​i=AMFtQjkhiHXpK236&t=2417

разве он что-то пишет еще? по-моему он давно только мейнтенер и ревьювит код, той репе уже 15 лет

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

А James Gosling, автор мови Java, переписав Emacs на Сі для Unix

Richard Stallman began work on GNU Emacs in 1984 to produce a free software alternative to the proprietary Gosling Emacs. GNU Emacs was initially based on Gosling Emacs, but Stallman’s replacement of its Mocklisp interpreter with a true Lisp interpreter required that nearly all of its code be rewritten. This became the first program released by the nascent GNU Project. GNU Emacs is written in C and provides Emacs Lisp, also implemented in C, as an extension language

Скільки часу автомобільний акумулятор тримає Raspberry PI? І яка конфігурація Raspberry PI (дисплей, SSD, тощо)?

По-перше, якщо непотрібне GPIO, то сучасні ноутбуки тримають батарейку шо дурні. Мені GPIO потрібне.
По-друге, залежить від акумулятора і навантаження.
По-третє, на щастя, знімати акумулятор з машини не довелось, просто вийняв зі звичайного безперебійника, але не піднімав до 220В, а опустив до 5В. ККД в такому випадку значно вище. Потім вкидав акумулятори в безперебійник і вони встигали зарядитись.
Враховуючи, що більше 4 годин на день я не програмую, мені вистачало.
Можна підключити і нормальний монітор, але щоб живлення було не 220В, а виносне. По тій же схемі, перетворюєш з 12В на, здається, 19. За рахунок більшого ККД довше працюєш.

Десь таким самим шляхом я пішов, для енергонезалежності квартири. Ну не можу я морально собі дозволити понад 40% енергії витрачать на перетворення 12В -> 220 -> 5/12/20В.

А взагалі круто у Вас вийшло. Цікаво які практичні задачі Ви вирішуєте, і чому саме пішли складнішим шляхом з малинкою, і складними сервісами, а не простішим ардуінка/ESP

Ще до повномасштабки замовник дуже захотів специфічний умнодом з керуванням через web (адаптивний) та snmp, періодичними завданнями ну і купою іншого. На вчора. Ардуїнка там теж була.
Швидше виявилось використати Linux.
Зараз у мене вже кілька успішних проектів.

Тут не тільки в акумулятор все впирається, а і у саму малину. Для розробки оптимальна 5-та, але по живленню вона майже в притирку, якщо пускати через адаптер. В принципі, живлення малини це тема на окрему статтю, бо завжди є компроміси.

В 2025 існує neovim, а так стаття топ )

Мені сподобалася стаття. Війнуло ностальгією. Згадав шкільний клас інформатики і світло синій текст pascal на темно-синьому фоні

У emacs есть и графическая версия.

Вона не працює на планшетках і телефоні. А текстова, по ssh, працює.

Я поруч написав: по ssh всі ці Esc m це постійне задовбування, а Alt+m спрацює не з кожного термінала. Ну не розробляли його для віддаленної роботи.

З давен-давен я користуюсь XTerm, налаштування в
```$ cat .Xdefaults
XTerm*metaSendsEscape: true```
В інших терміналах є відповідні пункти меню.
Ще в .bashrc прописати
```export TERM=xterm-256color```

Здається всьо. По ssh теж працює.

Є також vim. Встановлений на більшості linux систем по замовчуванню. Мені здався досить простим

За замовчанням ставиться vi. vim прокачаніший, але ми не потоваришували.

Священник і холівор emacs vs vim — тепер я бачив все

Ми ше не спорили про вінда vs лінукс 😀, С vs Pascal.

Підписатись на коментарі