I'm on the 6:10pm Amtrak Cascades out of Seattle, scheduled to arrive in Portland at 10:00pm. After two intense days in Bellevue, I'm exhausted, but wired. A group of young guys two rows up are loudly discussing their favorite AWS services; I wonder if they're also returning from ElixirConf, but then I remember that this is Seattle—half the city works in tech.
An older guy across the isle from them has his feet propped up on the unoccupied reverse seat in front of him. He's wearing slip-ons, crew socks, Levi's, and a striped polo shirt. He eventually strikes up a conversation with the kids (who work at Amazon), and I eavesdrop that he's with Microsoft. Half the city works in tech. He says he works on "a big hardware team", but conspicuously won't say which one.
This was my 3rd ElixirConf. I remember how striking the growth in attendance was between 2015 in Austin and 2017 in Bellevue—the conference seemed to double in size (I skipped 2016 due to becoming a parent). This year felt more established, with good attendance, but not noticeably larger (excluding the addition of Aaron Patterson). Maybe it's just that everything felt familiar being in Bellevue for a second year.
The general vibe I got this year was that Elixir is stable, and investing in the long-term. DockYard announced some ambitious 5 to 10-year goals of running BEAM on WebAssembly, and getting Elixir into the top 10 most popular programming languages in the world. Boyd Multerer (speaking of secretive Microsoft guys) released the library that he's been quietly building for the past several years—a client application framework for embedded and IoT devices, called Scenic (it's truly impressive). Chris McCord announced Phoenix.LiveView, a way to develop rich client-side applications without JavaScript.
Deploying Elixir is still the topic of the day, but the discussion is maturing. According to Jose Valim, Releases in Distillery 2.0 (recently released) are still the best way to deploy Elixir today, and they will eventually include a trimmed-down version of releases in Elixir itself. Some Elixir-focused PaaS offerings are also beginning to appear (I heard a lot about Gigalixer). In his talk, "Docker and OTP: Friends or Foes?", Daniel Azuma showed us how it's possible to blend the good parts of OTP and Cloud Native to reap the benefits of stateful processes and distributed OTP applications on Docker/Kubernetes.
Daniel's talk felt really important to me; he pointed out that Elixir is split over ideology of deploying OTP applications. Purists want to squeeze every last drop of performance out of their hardware, which naturally resists virtualization. On the other hand, the industry at large is currently diving into containers (the Google results for that phrase are funny), which are built on multiple layers of virtualization. His call to action was rather than embracing one at the expense of the other, let's work together to create tooling which is new and unique.
There's still a lot of work to be done, but as my friend Derrick recently wrote on Twitter, the future of Elixir is bright. ElixirConf 2019 will be in Aurora, CO. See you there!