Quick
index
main
eev
eepitch
maths
angg
blogme
dednat6
littlelangs
PURO
(C2,C3,C4,
 λ,ES,
 GA,MD,
 Caepro,
 textos,
 Chapa 1)

emacs
lua
(la)tex
maxima
git
lean4
agda
forth
squeak
icon
tcl
tikz
fvwm
debian
irc
contact

Eev for 5-year olds (2024)

From a chat in the #emacs IRC channel in 2024sep23, transcribed with authorization:


<Lumie> edrx: maybe you can give me a summary for a 5-year old about it
<edrx> Lumie: let me try
<edrx> Lumie: Emacs was created when computers were much more primitive
       and people were much more creative
<Lumie> I meant eev, but sure
<edrx> Lumie: by people who decided to take their favorite
       programming language - Lisp - and add a few functions to it
       to make a very basic extensible editor in which they could
       write Lisp expressions like, say, (+ 1 2), and execute them
       by putting the cursor after the ")" and typing C-x C-e
<Lumie> edrx: I know!
<edrx> Lumie: that functionality is still present, but most people
       are against - or rather, FEROCIOUSLY against - teaching it
       to beginners
<edrx> Lumie: so, for example, you can paste this into a file in which
       you keep your notes
<edrx> (info "(emacs)Init File")
<Lumie> My bad, I thought you started a lecture on emacs, patience
        was never one of my virtues :)
<edrx> Lumie: and use it as a kind of hyperlink - but you will have to
       execute it with C-e C-x C-e - that I will abbreviate as C-exe -
       instead of clicking on it.
<edrx> the core of eev is a key sequence - M-e - that works as C-exe,
       and lots of features to encourage people to put sexps
       in their notes and use them in hyperlinks.
<edrx> that's "executable notes".
<edrx> but nowadays it is better to start by the feature in the
       screenshots with handwriting near the top of this page:
       http://anggtwu.net/eepitch.html
<edrx> and you can try that by running this:
         (progn (package-install 'eev)
                (eev-beginner)
                (find-eev-quick-intro "6.1."))
<edrx> and that's a way to explain eev to a 5-year old
<Lumie> Seems like something I don't see myself using sorry to say,
        my workflow doesn't really need that
<edrx> Lumie: ok
<Lumie> I'm a simple person
<edrx> Lumie: in the last strike that we had here the students
       occupied one of the buildings and I gave a workshop on these
       things
<edrx> the compsci students didn't come, of course
<edrx> and the psychology students liked it because they found it
       fun to play with
<Lumie> :)
<edrx> so for 5-year olds I can say "try it, it is fun!"
<edrx> older kids expect something useful
<bpalmer> edrx: that explanation of eev is very polished, I think.
<edrx> bpalmer: thanks! =)


Taking apart

Some people - the "adults" - on #emacs asked me things like "What problems does eev solve?", and for a long time it didn't know how to answer...

It turns out that 1) they were expecting that eev could solve some problems that they already knew that they had, and 2) eev is more like a toy that is slightly interesting if you play with it for a few seconds, and much more interesting if you open it and take its pieces apart to see how everything works.

If you use Emacs and IRC then these instructions for installing and trying eev in seconds should be trivial to follow, and as play with eev for a while you will see that several elisp hyperlinks take you to the source code, and in the source code you will stumble on things like this:

in which the source code - for find-estruct, in this case - have lots of tests in comments, and it you run these tests you will learn a lot about cl-defstruct very quickly.


Lisp

Many "adults" believe that "Lisp is not for (Emacs) beginners", but I believe that that depends on where you start... if you start by learning how to configure Doom Emacs then you'll learn to see Lisp as a weird configuration language, and you'll be doomed...

I'm convincing my students to learn Emacs, eev and Maxima using these instructions,

(find-windows-beginner-intro)

and they start by learning how to execute sexps like these:

(* 2 3)
(+ (* 2 3) (4 5))
(info "(emacs)Screen")
(find-eev-quick-intro "2. Evaluating Lisp")
(find-eev-quick-intro "3. Elisp hyperlinks")
(find-emacs-keys-intro)

...and they lose the fear of Lisp.


Taking apart Org (and eev)

Most adults love Org Mode. I don't, and the main reason is that I'm used to learn programs by "opening them and taking them apart", and in Org this is quite hard to do...

In contrast, in eev I think that now all its innards are easy to understand - and its most complex functions have debugging modes that look like the window at the right in the screenshot below:

...that not only show the values of some variables but also have lots of links to the documentation and to the source code. For more on these debugging modes, see the links below (click on the link in the `")' at the end of each line):

(find-eev "eepitch.el" "debug")
(find-here-links-intro "8. Debugging")
(find-strange-functions-intro "3. Debugging")

For most "adults" this is irrelevant - they want something that "just works".