Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Lego is a "programming environment," so avoid the obvious contrarian nit of "must be more general," and accept there's no better language-environment combo for constructing workflows than elisp and emacs -- yes, it's leaps better than bash and term.


There is: my OS plus Python, Ruby, even JavaScript, or any other modern scripting language. macOS even supports Emacs keys globally!


You're confused on both points:

First of all, macOS doesn't "support Emacs keys" - those are readline/bash keybindings (C-a, C-e, C-k, etc.), not even partial Emacs navigation. The distinction matters. Emacs is inherently a modal editor, and no OS provides that aspect out of the box.

Secondly, although it sounds reasonable in theory, in practice it just doesn't manifest to the same level - because of the enormous context switching cost. While Python/Ruby/JS are excellent languages, using them for workflow automation typically means:

- Fragmented toolchain: Editor → terminal → file manager → browser → back to editor

- State loss: Each tool maintains separate state, history, and context

- Interface friction: Different keybindings, different ways to access data

Emacs provides unified state and interface - your scripts can directly manipulate buffers, access file system, interact with running processes, and integrate with your editing session. The "programming environment" aspect means your automation tools live in the same space as your work.

The fallacy is treating this as purely a language comparison when it's really about environmental integration. A Python script that opens files is fundamentally different from an Emacs function that operates on buffers you're already working with.

For personal workflow automation where you're already living in Emacs, the integration advantage is real.

Here some practical examples that would be just outright painful to achieve with a general-purpose PLs.

- Grab url from browser, insert formatted markdown link at point

- Extract all TODO items from project files, create agenda in new buffer (I can probably do it in fewer than 15 lines of Elisp without ever having to save, lint, compile that code)

- You're editing a CSV, write a function that operates on the current line/region and transforms it in place

- Mid-email composition, grab a code snippet from the adjacent buffer, format it, and insert

- While reviewing a log file, extract error patterns and automatically open related source files

Your automation remembers what files you had open, your cursor positions, your window layout. Scripts can modify your current work context rather than creating separate outputs

With Python/shell scripts, you'd need complex IPC, temporary files, external tools to achieve similar seamless integration with your active work session. That's why majority of programmers just don't even bother to think to try. Experienced Emacs hackers wouldn't even blink - they'd start whipping up Elisp like a chef would crack eggs to make an omelette.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: