Programming Erlang Book Club

Whoo hooo welcome to the club @mafinar :+1: :+1: :+1:

I hope to get back in to this in the next week or two so you have plenty of time to catch up :nerd_face:

1 Like

Reading the ToC and sample chapter, I got the idea that this book is no just for Erlang, but also an invaluable resource to learn about OTP, kinda like prepping you for the Oā€™Reilly book (Designing for Scalability with Erlang/OTP), I could be wrong though, canā€™t judge book by the cover.

2 Likes

I havenā€™t got to the OTP bits yet but yes, I expect it will leave you with a really good grounding in it. Are you a slow/fast reader? I am pretty slow unfortunately - so I expect you will overtake me in no time :joy:

1 Like

I am an insanely fast reader. Finished ā€œGetting Clojureā€ minus the Interoperating with Java and Macro chapters in a day to revise Clojure. But still, this is ~500 pages, reading Erlang hurts my eyes and I am no longer unemployed so ĀÆ_(惄)_/ĀÆ

2 Likes

I wish I was as fast!! :joy:

I think you may find you grow to like the Erlang syntax, at least I think that seems to be the case for a fair amount of people :blush:

2 Likes

I do like to write in it, but when reading it get tricky for me- Iā€™m the slow writer fast reader type. The Pascal case atoms and lower case variables slow my reading speed. Oh wait, did I just get them reversed? (See what I mean?) Also this wonā€™t go away because every time my muscle memory settles down a little, Elixir will retune it.

But to be honest, Erlang is very simple. Much simpler than any non-Lisp languages I have encountered. Thatā€™s what makes me want to learn it well.

2 Likes

Thatā€™s something I was astonished about, after reading chapter 8 ā€œThe Rest of Sequential Erlangā€. The basic concepts are simple yet so powerful.

Looking forward to you catching up :slight_smile:

Meanwhile, i did the last exercise of chapter 8:

Exercise 8.2 part 3 (unambiguous function names)
unambiguous_function() ->
    Exports = [Module:module_info(exports) || {Module, _} <- code:all_loaded()],
    Functions = lists:flatten(lists:map(fun(F) -> function_names_in_module(F, []) end, Exports)),
    unambiguous_elements(Functions, []).

function_names_in_module([{Funname, _}| T], Acc) ->
    case lists:member(Funname, Acc) of
        true -> function_names_in_module(T, Acc);
        false -> function_names_in_module(T, [Funname | Acc])
    end;
function_names_in_module([], Acc) -> Acc.

unambiguous_elements([Funname|T], Acc) ->
    case lists:member(Funname, Acc) of
        true -> unambiguous_elements(T, Acc);
        false -> unambiguous_elements(T, [Funname | Acc])
    end;
unambiguous_elements([], Acc) -> Acc.

I think thereā€™s an easier solution, but Iā€™m doing it at night with a tired brain :smiley:

2 Likes

It arrived early! Canā€™t wait to start

2 Likes

Whoo hoo!!!

Doesnā€™t it feel kinda special in your hands? Maybe itā€™s just me but I really wanted to get the printed book as it would feel like thereā€™s a little bit of Joe here - and it does too! Arenā€™t we a funny species? :upside_down_face:

I will look forward to seeing you get through this book :nerd_face:

2 Likes

Yes.

I could imagine Joe speaking those lines as I was reading the first page :sob:

Such a well introduction, is the rest of the book as enlightening?

4 Likes

If you like what youā€™ve read so far you are going to love the rest of it (at least based on what Iā€™ve read so far myself).

Joeā€™s personality shines through very strongly - it will fill you both with joy and sorrow - joy because itā€™s him (and almost as if heā€™s there with you) and sorrow because heā€™s no longer around, and because you wonā€™t be able to tell him how awesome youā€™re finding Erlang thanks to him/his book :cry:

Itā€™s far from depressing tho - I donā€™t think anyone could feel depressed in the presence of Joeā€¦ and in this book his presence is most definitely felt :orange_heart:

3 Likes

Hi everybody! Iā€™m back after a long break. My 4 dayā€™s trip got stretched to almost 3 weeks, and it looks like I wonā€™t be able to open the book for the rest of this year because of the tasks held. Where is everybody in the book? @mafinar, welcome to the club!

3 Likes

I didnā€™t make any progress on the book, instead Iā€™m solving Advent of Code with Erlang when I find some time :slight_smile:

3 Likes

Welcome back DG - I hope you had a nice trip :smiley:

Iā€™ve not made much progress tbh but like you hope to get back to it soon. Rainer is steaming ahead :rofl: and from what Mafinar has said, he may be flying through it too :joy:

I would like to place my bet now that I will probably be the last to finish the book :hear_no_evil:

2 Likes

As Iā€™m busy with Advent of Code you have some time to catch up :smiley:

3 Likes

Thank you!
I enjoyed the trip a lot. :slight_smile:

2 Likes

I just finished reading chapter 9 :slight_smile:
Itā€™s about types in Erlang, how to specify them and find mistakes with the dialyzer.
Pretty interesting, as I didnā€™t know anything of that :smiley:
Also I liked that Joe described writing good code and type annotations as a kind of art. Often while coding I feel like an artist, wanting to create something elegant and beautiful.
More people should feel like that, then the legacy mess Iā€™m cleaning up at work wouldnā€™t look like it does :stuck_out_tongue:

2 Likes

I really need to get back to this book :see_no_evil:

I hope @DevotionGeo and @mafinar are still reading it and Iā€™m glad to see you are @Rainer :nerd_face:

2 Likes

Yes I am reading it. On Chapter 10 right now. Will stop and contemplate on the language a little before moving to the OTP part (most of which I am familiar with thanks to Elixir but retelling by Joe will surely be an absolute pleasure)

2 Likes

Ah nice Mafinar! Though I was looking forward to your chapter-ly updates/thoughts - keep us posted on how you get on if you can (it can help keep the rest of us motivated too :nerd_face:)

2 Likes