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

  • elimik31@alien.topB
    link
    fedilink
    English
    arrow-up
    1
    ·
    1 year ago

    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.

    • arensb@alien.topB
      link
      fedilink
      English
      arrow-up
      1
      ·
      1 year ago

      naming conventions that seem archaic today (things like cddar).

      I remember the bumper sticker “my other car is a cdr”.