3 ms·
Learn You Some Erlang for Great Good (2013)
- palsecam 2y ago(2015)
- deleted 2y ago[deleted]
- AlphaWeaver 2y agoThis book is a fantastic introduction to Erlang in very approachable language. It introduces the reader to both language syntax and design decisions that led to Erlang's strengths as a highly reliable programming language for realtime applications. If you're learning Elixir right now, I can't recommend enough to also learn a bit about Erlang. The OTP and BEAM VM sit underneath both systems, and learning about what's going on under the hood helps a ton when troubleshooting production issues!
- tenk4 2y agoThis book is nothing like the famous Haskell book of similar title. It's really hard to read, with walls of text displayed in a very small font and very little contrast. And already in the first pages it fails to explain the basic question for the newcomer: Why do I need Erlang? What can it do that other languages can't?
- ForTheKidz 2y agoHuh I assumed this was based off The Little Lisper. I have no clue why in retrospect.
- ollien 2y agoI haven't read the Haskell version (or at least, not more than a small portion and in a long time), so I can't comment on the comparison, but what did you find insufficient about the "So what's Erlang?" section? I think it explains the benefits quite well, though I am someone who writes BEAM code for a living :)
- 8s2ngy 2y agoFor those familiar with BEAM-based languages, are there any advantages to choosing Erlang over Elixir when starting a new project?
- 29athrowaway 2y agoThere are moments in which you will need to know Erlang to debug issues on an Elixir application.
- jasonm23 2y agoGranted that for many Elixir devs, knowing (and learning) Erlang happens during such debugging efforts.
- nikhizzle 2y agoI’m not sure there is a huge advantage at the beginning, perhaps even a disadvantage because of the ease of use of Elixir. As you get more advanced you start using Erlang here and there to access things not in Elixir. For example, Elixir only has lists not arrays, so if you need a good indexed data structure you end up using some Erlang. Also once you start getting into Mnesia etc, Erlang is the way. All this said, still very early on my Erlang journey.
- sbuttgereit 2y agoI guess this depends on what you mean by "end up using some Erlang". If you mean that you end up calling certain library functions and such which are written in Erlang from Elixir.... well, yes, and you need to by design. But I'd argue calling a function written in Erlang or from Erlang's standard libraries isn't the same as having to write Erlang code. I use Erlang's ETS, its in-memory key-value store, quite a lot from Elixir. I'm calling the Erlang ETS functions, but I'm not writing Erlang code I'm writing Elixir code which simply calls the Erlang functions. To me that isn't the same.... which for me is probably good: I know enough about Erlang to read the docs and to read Erlang code well enough by now... but not to write it; I've been writing Elixir code for years now and never had to write actual Erlang to accomplish anything. The closest would be a matchspec (kind of a matching DSL used by certain built-in Erlang databases), but I don't consider that writing Erlang, but more DSL like. I've also used Mnesia from Elixir in the same fashion: I call the Erlang libraries which are Mnesia, but I'm not writing Erlang code to do it: I'm writing Elixir code which calls Erlang libraries. I'd disagree with the larger statement where you say, "Elixir only has lists not arrays, so if you need a good indexed data structure you end up using some Erlang." You are correct that Elixir doesn't have arrays and only lists... but that's also true of Erlang. Elixir and Erlang basically share the same primitive data types. I have to assume by "a good indexed data structure" you are referring to the previously discussed ETS which is more a K/V store than something like a data or data structure. Otherwise, you'd have to be more specific to what you are referring. I think it's true that if you are going to write any serious amount of Elixir, you will benefit greatly from having some familiarity of Erlang. Not because you're necessarily going to write Erlang, but because Elixir was designed to be very compatible with Erlang's approaches, philosophies, and, most importantly, Erlang's runtime the BEAM. Because we do use Erlang library calls we will read Erlang documentation, frequently. We will see examples of those libraries written in Erlang, errors coming from the Erlang side, etc. None of this is to say I have to "write Erlang" to do any of this, but familiarity with Erlang doesn't hurt at all. In the end, Elixir is simply a more expressive way to address certain kinds of problems while still reaping the benefits of Erlang and its VM, the BEAM. If you don't leave the kinds of problems to which Elixir is well suited, you will certainly encounter Erlang's standard libraries and benefit from being able to read Erlang and its documentation... but you won't really have to write it, just call its libraries.
- joisig 2y agoThis is how I learned Erlang and the BEAM back in the day, and I'd still recommend it.
- davidw 2y agoThis book is very clearly a labor of love. He put so much work into it, much more than would have been necessary to just create a simple book about Erlang. It's very well done and if you're at all interested in Erlang, is worth purchasing.
- bikingbismuth 2y agoThough my Erlang skills have long atrophied, this book was my intro to functional programming and helped me understand recursion. It’s been a while since I’ve read it but I remember it being kind of funny as well as informative.
- jasonthorsness 2y agoWhat are the modern hosting platforms for distributed BEAM apps? The language model seems perfect for some kind of global distributed app, but can you leverage a network already built sort of like how Cloudflare workers or Vercel edge functions work?
- POiNTx 2y agoFly.io for Elixir is very popular
- deleted 2y ago[deleted]
- Takashoo 2y agoI have used Erlang when elixir still had to emerge. Today, I am using Elixir, with Phoenix LiveView and OTP Genserver, Supervisor and ETS. I would start with Elixir, if only because of its newbie friendly community. The Erlang community is reflected in the 'erlang in anger' book. But if you need to deploy on a small platform, say 32 bit 100MBytes, Erlang is the way to go.
- Takashoo 2y agoPlease know that both languages share a lot (the BEAM). Either will do to get to know the technology. You can decompile bytecode to erlang .
- tasuki 2y agoPerhaps half the comments here mention Elixir. As of now, no comment mentions Gleam. I haven't used either, but been eyeing Gleam. According to GitHub stars (bad metric I know) Elixir isn't that much more popular than Gleam.