On the one hand, you're absolutely correct that most of my problems are in 3rd party packages, my own customizations (perhaps), and their interactions.
But on the other hand, emacs w/o 3rd party packages and personal customizations isn't really Emacs!
So I think it's fair to critique the quality of the software you end up with in practice, as a normal user of Emacs. Perhaps I should say the "Emacs ecosystem" tends towards jankiness, rather than Emacs itself, per se.
> site-lisp vs lisp
I meant my personal collection of 3rd party packages I have installed, which for some reason I call site-lisp, perhaps an abuse of the term!
My thinking was recent 3rd-party code wold be a better pulse-check of current practice than emacs itself, which I'd expect to have a lot of older code predating lexical scope. Interesting that they're about the same though.
> FWIW, there is no call to `sleep-for` in my Emacs 26.3's `shell.el` file
It turns out it's in comint.el, in (comint-exec). Here's the code:
;; Feed it the startfile.
(cond (startfile
;;This is guaranteed to wait long enough
;;but has bad results if the comint does not prompt at all
;; (while (= size (buffer-size))
;; (sleep-for 1))
;;I hope 1 second is enough!
(sleep-for 1)
...
> But on the other hand, emacs w/o 3rd party packages and personal customizations isn't really Emacs!
Certainly it is! There are many users who have used Emacs for decades who have only a handful of lines in their init files and no third-party packages.
> So I think it's fair to critique the quality of the software you end up with in practice, as a normal user of Emacs. Perhaps I should say the "Emacs ecosystem" tends towards jankiness, rather than Emacs itself, per se.
Yes, I think you should say that instead; that would be more fair and accurate.
Elisp is a forgiving language, and Emacs is a forgiving environment, so low-quality code is not always "punished" by failing to compile or run. So, as with any software you would run on your computer, you should use discretion.
The good news is that the quality of software in the Emacs ecosystem is steadily improving. MELPA is upholding higher standards for packages, and more tools are being made to catch poor-quality code and encourage best practices.
> I meant my personal collection of 3rd party packages I have installed, which for some reason I call site-lisp, perhaps an abuse of the term!
Ah, I see. Not necessarily an abuse, if you are your own sysadmin, I guess. :)
> It turns out it's in comint.el, in (comint-exec).
Thanks, that's interesting. I guess there must be some interesting discussion on emacs-devel about that from years past. I wonder if that could be improved.
> Certainly it is! There are many users who have used Emacs for decades who have only a handful of lines in their init files and no third-party packages.
...
> Yes, I think you should say that instead; that would be more fair and accurate.
Makes sense, & will do in the future!
> The good news is that the quality of software in the Emacs ecosystem is steadily improving. MELPA is upholding higher standards for packages, and more tools are being made to catch poor-quality code and encourage best practices.
But on the other hand, emacs w/o 3rd party packages and personal customizations isn't really Emacs!
So I think it's fair to critique the quality of the software you end up with in practice, as a normal user of Emacs. Perhaps I should say the "Emacs ecosystem" tends towards jankiness, rather than Emacs itself, per se.
> site-lisp vs lisp
I meant my personal collection of 3rd party packages I have installed, which for some reason I call site-lisp, perhaps an abuse of the term!
My thinking was recent 3rd-party code wold be a better pulse-check of current practice than emacs itself, which I'd expect to have a lot of older code predating lexical scope. Interesting that they're about the same though.
> FWIW, there is no call to `sleep-for` in my Emacs 26.3's `shell.el` file
It turns out it's in comint.el, in (comint-exec). Here's the code: