[HN Gopher] A curated list of Emacs Lisp development resources
       ___________________________________________________________________
        
       A curated list of Emacs Lisp development resources
        
       Author : andsoitis
       Score  : 96 points
       Date   : 2023-07-02 14:41 UTC (8 hours ago)
        
 (HTM) web link (github.com)
 (TXT) w3m dump (github.com)
        
       | tra3 wrote:
       | I found that learning lisp development follows logically from
       | using emacs. To configure emacs you have to use elisp, so you
       | naturally become proficient in it.
       | 
       | That also finally elucidated the staying power of emacs. I don't
       | know of any other software system that has the same introspective
       | capabilities as emacs. That makes learning and modifying emacs a
       | natural extension of whatever you're doing.
        
       | otterpro wrote:
       | Obligatory video "Interview with an Emacs Enthusiast in 2023
       | Colorized" https://www.youtube.com/watch?v=urcL86UpqZc. "Emacs is
       | a part-time job". I agree.
        
         | npsimons wrote:
         | You _do_ realize that 's satire, right? I'd hope the channel
         | name ("Programmers are Also Human") would have given it away,
         | but . . .
        
       | ReneFroger wrote:
       | I found this overview of https://emacs.zeef.com better to find
       | quickly Emacs resource you might need.
        
         | Theizestooke wrote:
         | Every link just reloads the site. For me, at least.
        
       | NeutralForest wrote:
       | For the uninitiated, writing Emacs Lisp is pretty easy. The only
       | thing that requires some getting used to is all the existing
       | functions to work with Emacs. There are thousands of them, acting
       | on different facets of the editor, like for receiving user input,
       | manipulating text and interacting with "modes" ; Emacs'
       | abstraction that specifies behavior based on which file is
       | currently being edited.
        
       | LanternLight83 wrote:
       | I've been down this rabbit hole, to the level of reading
       | disassembled bytecode to optimize preformance. Elisp is alright
       | for what it is, but Emacs itself contains so many hacks and
       | subsystems at the C level that elisp isn't allowed the
       | comprehensive level of access that it would need to make me happy
       | highly performant extensions.
       | 
       | To be clear, these limitations in reasonable package scope come
       | with positive trade-offs in the broader ecosystem such as
       | promoting stability, inter-operability within emacs, and the
       | insulatory disuse of FFI. I just feel like Emacs promised me I
       | could do anything with elisp, and then denied me the low-level
       | control that a lisp like Guile or Common Lisp _is_ capable of.
       | Helix does this better by not having extensions making any
       | promises.
        
       | sourcepluck wrote:
       | Thank you for sharing this! I don't know how I'd missed this
       | resource until now. Brilliant stuff, cheers, I'll be going
       | through some of these tutorials.
        
       | lavventura wrote:
       | I can code code in C, Python, and Java. But I don't have courage
       | to learn Lisp.
        
         | andsoitis wrote:
         | > But I don't have courage to learn Lisp.
         | 
         | Give it a shot! What have you got to lose?
        
           | [deleted]
        
         | linguae wrote:
         | Lisp isn't too difficult to learn. The syntax is off-putting to
         | some people, but what helped me adapt to Lisp syntax quickly
         | was my familiarity with RPN calculators; I used an HP graphing
         | calculator in college and I regularly use dc in Unix. In my
         | opinion, the best way to start is to learn Scheme and work
         | through The Structure and Interpretation of Computer Programs,
         | which is a very nice read even for experienced programmers.
         | Scheme is a nice small language, and many undergraduates have
         | written Scheme interpreters in Scheme. After mastering Scheme I
         | recommend moving on to Common Lisp, which is a large language
         | with many features that are not common in more popular
         | languages, such as conditions for error handling, the Common
         | Lisp Object System and its support for multiple dispatch, the
         | metaobject protocol, support for image-based development, and
         | support for REPL-based development and debugging.
        
         | nvy wrote:
         | It's really not as weird or as esoteric as the memes would lead
         | you to believe.
         | 
         | (Common) Lisp is multi paradigm so you can write code that
         | looks very much like "C with the parenthesis in the wrong spot"
         | and it'll work just fine until you evolve a more
         | idiomatic/"lispy" style.
         | 
         | If you're proficient in C, Java, and Python you already have
         | everything you need to be proficient in lisp. It's honestly not
         | that difficult to learn.
        
         | sourcepluck wrote:
         | I can't code in anything, and I'm using Emacs since a couple of
         | years, know some basic Elisp, and have recently started doing
         | Common Lisp. Still baby steps, but it's really very fun, and I
         | don't find it so hard.
         | 
         | Doing the book "Gentle Introduction to Symbolic Computation" at
         | the moment, it's lovely.
         | 
         | So that's all I wanted to say - there's no courage required.
         | Just doing. Emacs is a joy, and there's no rush on these
         | things.
        
       | abdullahkhalids wrote:
       | Last month, after about 10 years, I decided to write a small
       | package for emacs [1]. I decided to use chatgpt to help me do it,
       | as I had completely forgotten common functions and what not.
       | While, it got the syntax always right, it kept hallucinating
       | function names, or was completely wrong about function arguments.
       | 
       | Quite annoying, because all I was asking for it was to move the
       | point around or search backward or forward for specific strings.
       | Eventually, I had to reference stackoverflow and rewrite most of
       | what chatgpt produced to get something working. Some of these
       | resources would have been quite useful last month.
       | 
       | The package itself is a markdown-notebook minor mode. If you
       | trying to write a readme for your github python package, the mode
       | allows you to add codeblocks, execute them and put the results
       | just below them in the document. Works well for text right now,
       | but need to figure out how to make it put images.
       | 
       | [1]
       | https://gist.github.com/abdullahkhalids/83055b1abbd2cdf2416a...
        
         | nemoniac wrote:
         | You might like Org Mode
         | 
         | https://orgmode.org/
        
           | abdullahkhalids wrote:
           | I use org mode quite a bit.
           | 
           | But github readmes should ideally be in markdown, and it
           | makes no sense to write in org-mode and export to markdown.
        
             | nequo wrote:
             | I'm sure you know that GitHub handles README.org files too.
             | What's the downside of using org for readmes?
        
               | npsimons wrote:
               | > What's the downside of using org for readmes?
               | 
               | Popularity.
               | 
               | That's it. orgmode format was around long before
               | Markdown, then all of a sudden Markdown got pushed _hard_
               | for some reason.
        
               | Jtsummers wrote:
               | > orgmode format was around long before Markdown
               | 
               | That's not really true. org-mode (2003) and markdown
               | (2004) only have a year between them. Markdown was pushed
               | more broadly (versus org-mode) because it was not tied to
               | a specific implementation in a specific editor and was
               | _just_ for marking up text whereas org-mode was meant to
               | tie in with more of emacs ' other packages and
               | capabilities.
               | 
               | If you weren't already using emacs, you likely wouldn't
               | have known of org-mode in the late '00s. Markdown had
               | already been incorporated into a lot of static blogging
               | systems and forum comment systems by then with many
               | independent implementations. Additionally, org-mode
               | wasn't made a default element of emacs until 2006, two
               | years after markdown was publicly documented.
               | 
               | All that said, I still prefer org-mode and use it for my
               | own readmes outside of actual work where I stick to
               | markdown.
        
               | abdullahkhalids wrote:
               | I have yet to have a collaborator who uses emacs, let
               | alone org more. Best to provide people open source stuff
               | in the format they are familiar with. I wouldn't want
               | learning the org format be an impediment to contributing
               | to a project.
        
       ___________________________________________________________________
       (page generated 2023-07-02 23:01 UTC)