Back to the schedule
Previous: GNU's Not UNIX: Why Emacs Demonstrates The UNIX Philosophy Isn't Always The Only Answer
Next: Emacs as Design Pattern Learning

Emacs and Montessori Philosophy

Q&A: live
Status: Finished
Duration: 10:27

This talk will also be streamed at an alternate time for APAC hours:

If you have questions and the speaker has not indicated public contact information on this page, please feel free to e-mail us at and we'll forward your question to the speaker.


As a former Montessori guide and now parent, I often think about the relationship of this particular educational philosophy and how it manifests in my work with software, Emacs in particular. This talk introduces the concept of Emacs as an educational environment and how it expresses elements of Montessori psychology regarding "Human Tendencies". Human tendencies are innate drives present in everybody that allow us to explore and make sense of our world.


  • having studied in a school which founded by following Montessori Philosophy, I can relate <3
  • Love the emphasis on creativity!
  • Such a cool talk
  • Great perspective in that talk.
  • the reference to Montessori made me think of Alan Kay's talks about Frenet and Papert.
    • i was thinking the exact same thing regarding Alan Kay and his talks about education, and of his philosophies behind Smalltalk (the programming language).
    • and Smalltalk as a platform shares a lot with Emacs, both are a world where a user lives and develops
    • garjola: yeah...the whole thing about discovery, figuring things out for yourself, having an epiphany.


  • 5-10 minutes: (brief description/outline) Quick overview of a Montessori classroom environment:

    • the adults or guides primarily observe and present material
    • the children are free to explore materials as they choose (within limits)
    • the environment itself is prepared specifically to foster engagement

    Enumerate the "Human Tendencies":

    • Abstraction
    • Activity
    • Communication
    • Exactness
    • Exploration
    • Manipulation (of the environment)
    • Order
    • Orientation
    • Repetition
    • Self-Perfection
    • Work (also described as "purposeful activity")

    How does Emacs express these things?

    • in the short version, pose the question, and perhaps give one example.
    • Emacs is an environment that provides facilities for individuals to find their way to proficiency through their Human Tendencies.
    • We are all both learners and guides, Emacs is our classroom


[00:00:04.960] Hello everyone. My name is Grant Shangreaux, and I'm happy to be back here at EmacsConf. So before I was a programmer professionally, I was a Montessori guide with young children, and now I'm a parent of a child in a Montessori classroom.

[00:00:20.320] I was thinking Emacs and Montessori philosophy are both fundamentally about respect. Respect children, for the child is the parent to the adult. And we should respect users. Maybe the user is the parent to the hacker. That was certainly my case.

[00:00:35.840] So this talk is about the similarities between the Emacs environment and the Montessori classroom, which is called a prepared environment, meaning that everything in the environment has been prepared for the child to come and interact with in a meaningful way. The child will be driven by natural human tendencies to interact with their environment and to construct and refine their understanding of the world and the things in it. What I hope you come away from this talk with is just a new perspective on Emacs and software, and how users interact in a prepared environment like Emacs following their human tendencies to gain understanding and reach toward perfection.

[00:01:19.119] Okay. So the human tendencies are innate drives present in everybody. They're what enable us to explore and make sense of our world. We use these human tendencies to construct and refine the world itself. You know, if you're an Emacs user, I hope that's ringing some bells for you right away, because what we do when we interact with Emacs as individuals is construct and refine our world in Emacs. So I'm going to go through the human tendencies one by one and bring up things that I have observed or noticed in Emacs. I'm sure there's plenty more. Feel free to share it in chat.

[00:01:56.560] So number one is orientation. Human beings want to know their relationship to the environment around them. With children, when they come into a new environment, they want to look at it, touch everything around them. They want to know where they fit in, things like that. In Emacs, the easiest thing to think of is the initial new Emacs buffer. Right away, that is giving you some guideposts to orient yourself. If you've used any of the other Emacs starter packages, different packages take different approaches to this. I think if you're trying to get people to use Emacs for some reason, thinking about how individuals might orient themselves to this new software world is important. I think that there are friendly ways to welcome people into the environment and to make it easier for people to orient themselves within Emacs. Of course we've also got the Info manuals, and one of my favorite examples is the which-key package, which, when you press a key, it'll pop up with all of the following key bindings that are available. That's a really important way for me to explore, which is another human tendency, or to orient myself; to think about when I press this key, now I've got these possibilities. You see that all over in Emacs with hydras or the Magit transient buffers. There's all sorts of ways that Emacs is trying to help us orient ourselves.

[00:03:30.720] The second tendency is order, which I probably should have talked about first, but here I am. I myself am not particularly attuned to order, but when I was in the Montessori classroom, I found that it wasn't necessarily myself imposing the order, it was... The environment itself has a certain order to it, and by creating an environment where everything has its place, and everything has its time, and you have a way of doing things, it makes it easier for the child to develop that internal sense of order and succeed at imposing order upon their work, which... We do that as programmers. If we're contributing to Emacs, we try to do so in an orderly way, use prefixes for namespacing, since we don't have that ability in Emacs Lisp, and by sharing well-ordered self-documenting programs with our community.

[00:04:26.000] Number three is exploration. I think exploration is what drew me into Emacs, personally. In the beginning, it was just this wondrous software environment that offered so many opportunities. I was curious. Like, you've got your scratch buffer. You can explore in there with expressions. You can start up IELM. You can explore your file system with Dired. You can explore different packages with list-packages. There's so many ways you can explore in Emacs. For me, that was very delightful. It really resonated with my bias of exploration and human tendencies. Places to explore in Emacs are wonderful, and eventually you get down into the source code, and it's great.

[00:05:12.080] And then we've got communication. I think communication kind of speaks for itself as well. Emacs is software. Software is a form of communication. We're all driven to communicate. That's why we're here at this conference. Within Emacs, you've got lots of ways to communicate. You've got IRC clients, mail, you've got news readers. You could use Org. I even started working on a magazine in Org that I was going to distribute via live Debian CDs back in the day. So I think Emacs for communication is pretty clear.

[00:05:46.160] Activity. So Activities is just a natural thing when you're... You see it in children. Right? Children always find something to do to keep busy, whether they're pretending, or running around, or moving. You don't have to have a goal or end-product in mind. People are just active. You do things. I find that in Emacs, all the time, when I don't know what to work on, sometimes I just go into Emacs and hack around and, like, change things in my config. I'm sure we've all been there. So Emacs encourages and enables that kind of activity as well.

[00:06:21.199] Manipulation is the next one. So Lisp. Anyone? The fact that Emacs is this live Lisp process that's running, that you can manipulate at your fingertips... You couldn't ask for something better. I think the malleability of Emacs is why people love it. Clearly, the environment of Emacs was prepared with manipulation in mind from the very start. We'll go through these next ones pretty quickly.

[00:06:48.319] We've got work or purposeful activity. Emacs would not exist without this human tendency. it's been worked on by free software volunteers for 40 years, and this is the kind of self-motivated work that inspired me to be a hacker.

[00:07:09.199] Repetition is another human tendency. I think that one kind of speaks for itself. It's this tendency that gave me Emacs pinky after learning all of those key bindings, and then that same tendency drove me to learn another modal key mapping to deal with that. I've repeated myself, starting over new Emacs configs several times. I could give another example, but I'll just be repeating myself at this point.

[00:07:38.960] And then exactness. So we have a tendency, a human tendency toward exactness. That's not one that's very strong for me. I'm not a super exacting person. But I think you can see that in Emacs, like certain parts of it have been refined down to exactness. I know when I'm working, sometimes it's just the theme that I choose or making sure the mode line is exactly the way I want it... You know, getting that environment to feel conducive to thought and work is important to me.

[00:08:16.319] And then we have abstraction, which... That one goes pretty deep, but I think you can see how abstraction works in Emacs. A buffer is an abstraction. One of the great things about Emacs and about Montessori philosophy is that these abstractions might not be something you need to think about right away, but they're there, right, like the fact that a buffer abstracts over working with text. Once that becomes clear to you, once you have a reason to manipulate it, having the abstraction of the buffer there to work with makes a huge difference. And then of course, we can create our own abstractions: transients, pop-up buffers, hydras... I'm sure there's plenty of examples in chat that I can't come up with.

[00:09:02.000] And finally, perfection. All of the human tendencies culminate in this one. Perfection doesn't mean like you just have to make this perfect shining idealistic thing. It's about perfecting what we do. I think everybody who's worked with Emacs for a long time, you perfect your configuration. Sometimes you tear it down and start over. If you're working on a package, you perfect that, and it's an ongoing process. An example I can think of are like raxod502's packages. straight.el is an attempt at perfecting the package management system in Emacs, and he's taken a stab at several other common things, like incremental selection and so on. These aren't necessarily finished problems. There's room for perfection, and we have a human tendency to pursue that. I hope this talk has gotten you thinking about how Emacs and the Montessori classroom are similar--they're both prepared environments that call upon our human tendencies to construct and refine our world-- and how Emacs respects us as users in the hopes that we will grow up into creative hackers. Thank you for listening. I'm happy to answer any questions (captions by sachac)

Back to the schedule
Previous: GNU's Not UNIX: Why Emacs Demonstrates The UNIX Philosophy Isn't Always The Only Answer
Next: Emacs as Design Pattern Learning