Introducing Maak.el, a modern task automation tool that enables infinite extensibility in Emacs by leveraging GNU Guile Scheme.
Does your computer have a ‘personal assistant’ that you use every day? Many of you might think of web browsers or messengers, but there is a slightly special assistant in the world of programmers. It is a text editor called ‘Emacs.’ It is a huge misunderstanding to think of it merely as a tool for writing text. In fact, Emacs operates like a massive operating system itself and is called a ‘Lisp Machine’—a system where the user can expand its size and freely change its functionality as desired, essentially controlling the internal workings of the editor using the Lisp language[Source 5, Source 7, Source 12].
Maak.el, introduced today, is the latest command execution tool that makes Emacs an even more powerful and intelligent work assistant.
Why is this tool special?
We get tired of repetitive daily tasks. Setting up projects, running tests, and organizing files every time we start something new. Programmers use ‘Task Runners’—tools that help execute complex commands all at once—to reduce this simple labor.
The problem is that most tools operate only within a set framework. Even if you think, “This feature is nice, but it doesn’t quite fit my workflow,” it is often not easy to customize it to your own liking. However, Maak.el is different. This tool puts ‘infinite extensibility’ at its core, helping you design workflows exactly how you want them[Source 2, Source 4]. It offers a creative experience where you are not just using a given tool, but crafting the tool itself.
Understanding it easily: A tool like an ‘All-Purpose Construction Kit’
Let’s use an analogy to make it easier to understand. If an off-the-shelf task runner is a toy car that comes pre-assembled, Maak.el is an ‘all-purpose construction kit’ made of Lego blocks.
A toy car only moves as designed when you press a button, but with a construction kit, you can add more wheels or attach wings as you wish. Maak.el uses ‘GNU Guile Scheme’—a type of Lisp, which is a functional programming language—as its construction blocks[Source 2].
Within the workspace of Emacs, you can use these ‘Scheme’ blocks to create your own commands and automate projects. For example, you can flexibly build your own ‘personal automation robot’ that performs complex testing procedures at the touch of a single button and automatically saves the results to your folder[Source 4, Source 8].
Current situation: The evolution of Emacs
Emacs is a program with a very deep history. Developed by Richard Stallman, this editor is based on the Lisp language, characterized by its powerful ability to treat functions as freely as data[Source 1, Source 7].
Currently, numerous Emacs users expand and use the editor through various packages[Source 9]. However, introducing a modern functional language like GNU Guile Scheme directly to control command execution flows, as Maak.el does, allows users to interact with the editor at a much deeper level[Source 2, Source 15]. Thanks to this, everything from programming automation to simple system commands can now be seamlessly connected within Emacs[Source 4].
Future outlook: Working with tools of your own
In the future, the work environments of programmers will become much more personalized. Instead of forcibly adapting off-the-shelf tools to your work style, the approach of defining tools in your own language, like Maak.el, is expected to gain more attention. If you are an Emacs user, why not evolve your editor beyond a simple text writer into a true ‘intelligent Lisp Machine’ that directs your work?
References
- Emacs Lisp - Wikipedia (https://en.wikipedia.org/wiki/Emacs_Lisp)
- Maak: The power of Lisp that powers your trusty command runner and the enlightments - jointhefreeworld (https://jointhefreeworld.org/blog/articles/lisps/maak/index.html)
- M-x emacs-reddit (https://www.reddit.com/r/emacs/)
-
Emacs As A Lisp Machine Irreal (https://irreal.org/blog/?p=279) - Emacs In a Box (https://caiorss.github.io/Emacs-Elisp-Programming/)
- Maak.el:LispmachinecommandrunnerinEmacs,infinitely… (https://news.ycombinator.com/item?id=49607858)
- Emacs: The Thermonuclear Text Editor (https://www.danfowler.net/resources/emacs_talk/)
- hackernoon.com/lambdock-a-hackable-wayland-dock-built-with-c-and… (https://hackernoon.com/lambdock-a-hackable-wayland-dock-built-with-c-and-lisp)
- Common Lisp
- GNU Guile Scheme
- Emacs Lisp
- A simple text editor
- An infinitely extensible, modern task runner
- A tool exclusively for graphic design
- VS Code
- Vim
- Emacs