Reflections on ten years of Erlang, teaching novel ideas to newcomers, and whether 'killer apps' get more contributors or just more users:
miniblog.
Related Posts
On teaching Haskell, and which parts of the semantics are tricky for newcomers: https://ciobaca.substack.com/p/pedagogical-downsides-of-haskell
I'm not convinced that offering the staging area is a good default for git.
It's an abstraction that newcomers have to learn before their first commit. Subversion style "commit every tracked file" isn't as pretty (`git add` is general) but it's the common case.
It's weird that you can't push *all* of your git state. I'd be able to help newcomers better if they could push their reflog.
Similarly, if I'm halfway though a big merge with conflicts, I have to handle them all: I can't push the current state and continue later on another box.
