My foray into Elixir brought forward many more similarities between it and Go, than I originally expected. One of them is how both handle concurrency. With respect to that, creating Elixir-style stateful actors in Go is surprisingly easy. Answering the question, whether one needs them, or can make use of them, I’d leave to the user. If you approach me back saying that the same thing can be achieved using a channel or a map with sync.
iEx (Elixir’s interactive shell) is pure dope! It helped bring my development efforts back to the “let’s play and see what happens” level. Since Elixir modules are stateless and made up of pure functions, reloading a module is as easy as calling r MyModule inside iEx. During development, I’d try to keep one module called Demo, or Scratch, etc, where I’d do the quick and dirty setting up of things. This scratch module would usually have one function only, called demo or run.
Yes, the Elixir. I’ve decided to use the cold February weather, as well as the relative project calm, and see how far I can go with it. But why Elixir and why just now? There are a few reasons. Actually, this is not my first encounter with the language or the Erlang/BEAM ecosystem. About a year ago, a colleague at work and I started doing lunch break walks, in which we discussed tech topics, beyond the scope of our current projects.
“You can think of any web server as a function. Each time you type a URL, think of it as a function call to some remote server. That function takes your request and generates some response. A web server is a natural problem for a functional language to solve.” Excerpt From Programming Phoenix by Chris McCord Buy on Amazon Programming Phoenix Don’t accept the compromise between fast and beautiful: you can have it all.
It’s probably not too important, in the grand scheme of things, whether you are using a language like Erlang or not. While I do feel it’s under-used and under-rated, the biggest benefit of it is not in running a system that uses it. The biggest benefit comes from learning about the fundamentals of solid system design, and internalizing its lessons in a practical context. Ten Years of Erlang For my ten years in the Erlang community, I decided to cover a few topics such as hype phases and how this related to Erlang, the ladder of ideas within the language and how that can impact adoption, what changed in my decade there, and what I think Erlang still has to bring to the programming community at large.