OTOH every decent erlang book or tutorial I've ready, from Armstrong's book[1] to Learn You Some Erlang[2] to Erlang and OTP in Action[3] and others all start off by introducing primitives like spawn, message sending , and receive.
They then introduce OTP and explain all the cases it handles.
I've never read a book or tutorial on OTP that just starts with OTP. In fact (a bit tangetially) whenever I encounter abstractions where I don't already understand the primitives I have a very difficult time. Maybe that's just the way my brain is wired though. I have a terrible time with OO programming for that reason. I much prefer a separation of functions and data because it's much easier for me to reason about what is happening.
Anyway, I agree that programmers should start with the primitives, but I've never seen anyone really teach OTP any other way.
Edit: also there are tools such as Erlang.mk[4] by Loïc Hoguin[5] that will handle a lot of the boilerplate for OTP projects and building releases, though it's good to do it manually at least once while learning.
They then introduce OTP and explain all the cases it handles.
I've never read a book or tutorial on OTP that just starts with OTP. In fact (a bit tangetially) whenever I encounter abstractions where I don't already understand the primitives I have a very difficult time. Maybe that's just the way my brain is wired though. I have a terrible time with OO programming for that reason. I much prefer a separation of functions and data because it's much easier for me to reason about what is happening.
Anyway, I agree that programmers should start with the primitives, but I've never seen anyone really teach OTP any other way.
Edit: also there are tools such as Erlang.mk[4] by Loïc Hoguin[5] that will handle a lot of the boilerplate for OTP projects and building releases, though it's good to do it manually at least once while learning.
[1] https://pragprog.com/titles/jaerlang2/programming-erlang-2nd...
[2] https://learnyousomeerlang.com/
[3] https://www.manning.com/books/erlang-and-otp-in-action
[4] https://erlang.mk/guide/index.html
[5] https://ninenines.eu/