this post was submitted on 22 Nov 2023
3 points (100.0% liked)

Emacs

313 readers
2 users here now

A community for the timeless and infinitely powerful editor. Want to see what Emacs is capable of?!

Get Emacs

Rules

  1. Posts should be emacs related
  2. Be kind please
  3. Yes, we already know: Google results for "emacs" and "vi" link to each other. We good.

Emacs Resources

Emacs Tutorials

Useful Emacs configuration files and distributions

Quick pain-saver tip

founded 1 year ago
MODERATORS
 

I'm a new emacs user and I've been using doom emacs for a while now and i'm willing to learn Elisp, but found out that it might not be as easy as it might seem at first, because as i found out, lisp is quite different from other programming languages that i'm used to, especially knowing that i'm not a programmer by any means and my programming knowledge is very little, not mentioning that elisp is pretty old so the learning resources might not be as much as other more popular programming languages

so my question is, Is it worth it?

like what is the level of mastery do i need to achieve to start implementing custom elisp in my configs to enhance my emacs experience?

and how exactly can i improve my emacs experience if i learned elisp?

in other words, how rewarding it would be

you are viewing a single comment's thread
view the rest of the comments
[–] erez@alien.top 1 points 1 year ago

I'll start from the last question, to me, if you don't use elisp, don't use emacs. To me this is why I still use it, because there is a lisp machine running under it and everything can be manipulated and configured with elisp. Otherwise there are probably better editors these days. You can obviously use it without elisp, if there's a library or mode that you love and (thanks to the power of elisp) have not found elsewhere, but even that is limited, since you need elisp to configure and manipulate it to fit your use-case the best. And to be honest, copy-pasting stuff without understanding will take you so far and you won't know why things don't work when they do, like with every programming language.

But is lisp worth learning? A definitive yes. As you found out, it's a different animal. Not just the syntax, but the way everything works. It requires you to think differently. I often say that learning new languages mean "how does if/else work, how does for/while works" basically figure out how do all the regular tools for logic and flow control look like in that language and your mostly set, only lisp does not have those "regular tools for logic and flow control". And on top of that, it's based on a wholly different paradigm than what the other languages are based on. It's a hefty task to climb and you must climb it if you want to get to the stuff that is important, like writing stuff that you can run and get results from, and that's before we get to the real insane stuff, the true homoiconicity (here's another word for you) of lisp, the idea that code is data is code, which is truly rare in computing (despite what some fans of other languages will tell you, there are only 2-3 actual homoiconic programming languages and lisp is the most commonly used of them all) and is very hard to wrap your head around.

So is it worth it? yes, for two reasons. Learning languages that use different paradigms always improves your abilities since you now have more ways of thinking about stuff. Learning Erlang made me a better Javascript programmer just because Erlang has a different way of thinking about everything that C languages take for granted.

Second, learning lisp in particular will improve you as a programmer. I don't know why exactly (Not a CS theoretician), but I believe it has to do with the way computers actually "think". Lisp, as its many detractors will say, is written in a way that is closely connected with the way a computer runs a program, after it's been disassembled away all the niceties of syntax and suchlike, but before its been interpreted down to assembly. It's the closest you get to programming in AST trees (another word for you) without actually doing that (and without going insane). Once you climb that mountain you will, guaranteed, be a better programmer, just because you will have better understanding of how is your code being run (guarantee not guaranteed).