One interesting property of emacs lisp is that a macro can't do an early return from a function. You either need a wrapper (like cl-block or cl-defun) or you have to signal.
C macros (including those in Emacs itself) don't have this property, making it harder to reason about.
Related Posts
One interesting design choice in Emacs that I haven't seen in other editors: reserved shortcuts.
An Emacs extension shouldn't use F5 through F12, or Ctrl-c LETTER. This lets users configure their own shortcuts. https://www.gnu.org/software/emacs/manual/html_node/emacs/Key-Bindings.html
Does it exist elsewhere? I miss it in VS Code, where e.g. all the Fn keys are already assigned.
Today I learnt that Emacs 28 shipped a context-menu-mode! https://oylenshpeegul.gitlab.io/blog/posts/20230129/
This seems quintessentially Emacs: deeply hackable, but building UI features in an order very different to the mainstream.
Playing with optional type signatures in Python, I realise that the return type is the most important to me.
I'd much rather have a function with only a return type instead of a function with only parameter types. It's often quick to add too.