Who would you like to see write an Elixir book (split thread)

Robert, I know I’ve said it before but I’d love to see an Elixir (or Erlang) book from you :stuck_out_tongue:
I reckon it would be very popular, especially with Elixirists as you are so popular and active within the community :003:

4 Likes

Here you go :slight_smile:

5 Likes

Look at the price of that! That book has aged well. :smile:

4 Likes

Whoa… That’s… impressive… o.O

1 Like

That’s what I was just about to say :lol:

C’mon Robert time for another one :003:

2 Likes

Btw, OvermindDL1, as I often review Manning Book manuscripts, they ask you to recommend any lesser known (hidden gems) authors for specific books. I actually mentioned you for Linux and Elixir.

Would you ever write a book?

2 Likes

Lol, I’ve actually thought about it a lot, but I usually just end up posting all the information online anyway, which kind of defeats the point. ^.^;

You should try to self publish one. That way there’s no overbearing Sith Lord breathing down your neck. I would love to start a thread for potential topics for you. LOL. Or maybe you can throw out some topics that you would prefer writing. Hopefully, there might be something that us noobs could decipher.

3 Likes

Oh there are so many topics I’d want to talk about, everything from proper ECS design and why (so many do it so wrong!) to BEAM systems to even, oh, implementing something OTP-like in C++ or so. ^.^

But…time… >.>

2 Likes

Do it ODL! :023:

I’ve also said this before, but @sasajuric, I’d love to see more books from you as well as an online course like the one Dave did :003:

4 Likes

@sasajuric’s book is brilliant. @OvermindDL1 and @sasajuric should write a book together

3 Likes

I’ll design the cover! LOL. No seriously, I’ll design the cover.

1 Like

One book is enough for me. As I said I would never get around to finishing it. Unfortunately.

The old book is ok but the newer ones are better. Though it does have one feature most others lack and that is we show examples of controlling hardware. There should be newer printings somewhere, price unknown.

The red cover is the 2nd edition. A funny thing happened with the first printing of the 2nd edition. We generated camera ready pages for Prentice Hall using latex (I kid you not :grinning:). For the new edition we had added a new chapter on distribution BUT we missed an error message telling us we had got the filename wrong so the chapter was never included. They had to include it as an extra inset with its pages. It was included in the second printing.

A problem of having too much logging info as latex just drowned us with information.

6 Likes

I’d love a book on, say, a strongly typed lisp with a HM type system running on the BEAM and with simple Elixir interop. And a production-ready implementation of such lisp ahahah. Now more seriously, I believe @OvermindDL1 has something to teach the community about the following topics:

  • low-level optimization in Elixir (using macros instead of functions, aggressive protocol dispatch, etc.)
  • advanced macro usage (the thing people say makes your code unreadable and warn you not to try at home)
  • benchmarking elixir (something that underpins the two points above)
  • expression templates (although they might not bring the speedups we see in other lower-level languages)

Also a language reference such as the one I’ve (jokingly) described in another post:

Reference for Developers who think that LISP is the best thing ever and that the characters that compose the program are mere distractions from the holy truth of the AST, which describes elixir as if it were LISP and in which after chapter 2 all programs are written directly by manipulating the AST using functions (do ... end? defmacro? who needs them? We write our AST directly!)

I believe that, in general, @OvermindDL1 represents the spirit of creative destruction who tears down a programming language and rebuilds it to his needs in several different way, which causes people to either lose themselves in contemplations or retreat in horror. Elixir is a language that makes creative destruction very easy to achieve, so we’ve been lucky to have @OvermindDL1 with us (as opposed to him using, say, Chicago Boss and Erlang Parse Transformations). I’m very happy about having him on board because he has written ExSpirit (which everyone reading this hsould try!). This talk about creative destruction reminds me I must release my single-module megadef library that abuses Elixir’s AST to add fake pattern matching to keyword lists independent of ordering.

implementing something OTP-like in C++ or so. ^.^

Couldn’t it be OTP in OCaml, for example? OCaml is fast and typesafe and doesn’t has A<B<C<D<E>>>> <F<G>> <H> xD And because it has a runtime (ugly word, I know) it can aspire to preemptive scheduling from what I understand.

I hereby pledge to buy any book written by @OvermindDL1 (with a reasonable price tag lol) or to help review and edit such book.

Sith Lords are not that bad all the time. Embrace the dark side. Editors make your books better xD

1 Like

Lol, those could actually be fun. A book like Elixir for the Advanced: Do not try these at home. ^.^;

That… really is so true, I do it to every single language I come across… >.>

I’ve implemented C-like, C+±like, OCaml-like, LISP-like, FORTH-like, and a dozen other languages in a dozen languages… >.>

Actually I’ve held back on implementing OTP in OCaml until the Effects PR lands in OCaml (probably still years away to be honest), because with that I could indeed truly and fully implement BEAM semantics, in full, into OCaml. That PR also includes getting rid of the GIL, which is a nice thing to get rid of. The Effects system will allow you to implement any kind of concurrency you can think of with about any kind of calls you could possibly want. This is very much a goal to do once it lands. :slight_smile:

Heh, finding time is still a big thing. Making a book and making a big complex program are not that different in terms of time and thought required. ^.^;

1 Like

Definitely agree, my comment was more tongue in cheek to persuade @OvermindDL1. :slight_smile:

2 Likes

That would be nice, bit would it be really necessary? If you’re willing to copy everything you can work with a GIL. From what I unferstand, the BEAM has a GIL too. Everything is copied between processes (maybe with the exception of ETS - I still don’t grok that very well). Without a GIL I assume you’d be more efficient because you might be able to implement Rust-like semantics and mutable state shared across cores.

But I think that Rust has a type system that’s strictly more powerful than OCaml’s, so it might be impossible to implement safe memory access across cores in OCaml? This is just a conjecture, I don’t know enough about this to know for sure…

1 Like

Who knows Elixir better than Jose Valim?

The origin, the idea, the philosophy, the progress, the future, the way of Elixir, etc.

1 Like

Uncle Bob Martin, Dr. Chuck, Mehran Sahami. :pray:

1 Like

Not at all—a lot of technical books start out as blog series, and I’ve bought more than one freely-available text to either support the author’s work or to have a more convenient form factor than lugging around dead trees (I seem to be one of the few who prefer electronic texts over paper for technical writing.) I’d particularly like to see something from you on strong typing—benefits, how to introduce it into a codebase in reasonable ways, how to play well with weakly typed languages, maybe a case study, etc. Having it all in one place instead of scattered forum posts would be worth paying for on its own merits.

1 Like