Emacs Lisp was one of my first programming languages. As a physics student I had learned C++ (badly) as my first programming language, choose Emacs as an editor for that and also started using Lisp for configuration (maybe not a smart choice for productivity and in hindsight, but I had fun). Compared to an old-school compiled language I found Lisps to be easier, no worrying about types, no weird syntax, just functions (and macros). And most importantly coding in Elisp (and other Lisps) is incredibly interactive, just C-x C-e
to eval any expression and see the result of any expression. For ELisp Emacs has excellent “IDE” features out of the box, you with ELdoc you see signatures of the function at point, can jump to defenitions, see docstrings etc. Also it helps that Emacs functions and variables have excellent docstrings (which the first physicist-written C++ codebases that I had worken on had not, in some cases basic Doxygen but it’s not as nice. Later I learned Python and I think it’s the better programming language today for learning how to code, and as an interpreted languages it also has some interactivity with its REPL (IPython) and Jupyter, docstring support, ducktyping etc. But I really appreciate how “friendly” Lisps are in relative terms considering how old they are, no wonder they had been used for introductory computing courses at MIT in the past. But there’s a lot of weirdness and naming conventions that seem archaic today (things like cddar
).
Regarding how rewarding it is, I think very much so! In other programming languages I found it hard to find project ideas that are really useful to me in my every day. But I use an editor daily and it’s incredibly easy to find something that I’d like to tweak and I can come up with a function in a *scratch*
butter, evaluate it and use it interactively or hook it to some mode for example.
Most of my coding I had done was just doing configuration and some interactive helper functions, things like adding a custom completion backend (capf) to a special mode, a confirmation warning when I forget to add an email subject and things like that. But in total I wrote more Elisp than the recreational coding I had done in most of my other programming languages.
Despite saying I studied physics in my research I leaned heavily on the coding-heavy work and am soon entering an IT job in industry, so I’m totally someone who enjoys coding. But I think Emacs gave me a slight push in that direction.
Luckily Emacs and Emacs Lisp still have enough attraction that the package ecosystem will probably stay alive, at least there nobody needs to worry about copyright assignment (except for Elpa) and people’s opinions on mailinglists.
But recently I saw that there is also a lot of value in contributions to the core with Eglot, tree-sitter, native-compilation, such improvements are important to keep Emacs attractive for newcomers. But it would be a shame if newcomers were discouraged from contributions to the core, ideally it should be a more inviting place.
But to be honest this is what I came to expect from free-software mailinglists, where everybody can voice their opinion and you can yourself be more heard just by being “louder” (posting more often), if you have the time. Especially if you add to that some level of historical authority. For mental health I find it best to just ignore the discussions or if I’m bored I take some popcorn and take a looks at what the drama is about 🍿. I think that’s a social problem of group dynamics but I’m no expert and have no idea how to solve this.
My opinions regarding RMS are very mixed nowadays. I’m happy if he sticks to technical discussions, where he has at least some background knowledge, even if it might be dated. As long as his opinion is not held higher than others due to him being RMS, I think it might be time to pass on the baton in this regard. He already did officially as a maintainer long ago but his opinions still find a large audience). I think it would already help if everybody would agree he is just human. I’m also opinionated to some level and will probably be much more so when I get older 🤷.