
Rainer
Programming Erlang Book Club
My first contact with Erlang was about 2 years ago when I used RabbitMQ, which is written in Erlang, for my job. This made me curious and I started exploring the world of the BEAM, did some Elixir programming and used Phoenix for side projects.
Finally, the time has come to dig in deeper
@AstonJ and I will be working our way through Programming Erlang and documenting our progress in this thread - please feel free to join us either by commenting on things you find interesting or by reading it with us! We’d love the company! We’ll try to writ something about each chapture.
Until now I just read the introduction and the “Introducing Concurrency” part, which didn’t contain something particularly new to me, but it was a nice read for the start, and made me keen to work through the next chaptures
Most Liked

AstonJ
Whoo hoo! I can’t wait to read this book!
I had actually planned to read it after all of my Elixir/Phoenix books, however I’ve been increasingly curious about the Erlang way and how it differs to the Elixir way. @DevotionGeo’s thread here reignited some of that curiosity and Robert’s posts in the thread then just pushed me to do it!
I also purchased the paper book which is not something I would normally do for a programming book (I prefer reading eBooks on my Kindle and they are of course more environmentally friendly) however I thought having a physical copy of the book might nice, like having a little bit of Joe here
Speaking of Joe, Like @Rainer I’ve only read the first couple of chapters but I can tell you Joe’s personality shines through very strongly. If you’ve watched any of his talks or interviews, or interacted with him via the forums, twitter or email, it’ll feel like he’s there with you. At least that’s how I feel given what I’ve read so far.
So I’m very excited to read this book and look forward to Rainer’s comments as well as any of yours should any of you join in or comment in the thread yourselves

Rainer
Finished chapter 2 now with the exercise. Good read so far
@AstonJ how is your solution?
Here’s mine:
Client:
put_file(Server, FileName, FileContent) ->
Server ! {self(), {put_file, FileName, FileContent}},
receive
{Server, Response} -> Response
end.
Server:
loop(Dir) ->
receive
{Client, list_dir} ->
Client ! {self(), file:list_dir(Dir)};
{Client, {get_file, File}} ->
Full = filename:join(Dir, File),
Client ! {self(), file:read_file(Full)};
{Client, {put_file, FileName, FileContent}} ->
Client ! {self(), file:write_file(FileName, FileContent)}
end,
loop(Dir).

mafinar
Yes.
I could imagine Joe speaking those lines as I was reading the first page
Such a well introduction, is the rest of the book as enlightening?
Popular Community topics










Other popular topics










Latest in Programming Erlang (2nd edition)
Latest in Erlang
Categories:
Sub Categories:
Popular Portals
- /elixir
- /rust
- /ruby
- /wasm
- /erlang
- /phoenix
- /keyboards
- /rails
- /js
- /python
- /security
- /go
- /swift
- /vim
- /clojure
- /emacs
- /haskell
- /java
- /onivim
- /svelte
- /typescript
- /crystal
- /kotlin
- /c-plus-plus
- /tailwind
- /gleam
- /ocaml
- /react
- /flutter
- /elm
- /vscode
- /ash
- /opensuse
- /centos
- /php
- /deepseek
- /html
- /zig
- /scala
- /sublime-text
- /textmate
- /debian
- /nixos
- /lisp
- /agda
- /react-native
- /kubuntu
- /arch-linux
- /ubuntu
- /revery
- /django
- /spring
- /manjaro
- /diversity
- /nodejs
- /lua
- /c
- /slackware
- /julia
- /neovim