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! =) 1. Taking apartSome 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. 2. LispMany "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,
and they start by learning how to execute sexps like these:
...and they lose the fear of Lisp. 3. 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
`
For most "adults" this is irrelevant - they want something that "just works". |