Upgrade to Pro — share decks privately, control downloads, hide ads and more …

My First Year with Elixir: Livebook, Machine Le...

Andrés Alejos
March 08, 2024
130

My First Year with Elixir: Livebook, Machine Learning, and Open Source

I discuss my experience in my first year with Elixir. In particular, I discuss contributing to open-source and ideas to improve adoption in a new language.

Andrés Alejos

March 08, 2024
Tweet

Transcript

  1. Socials X / Twitter -- @acalejos https://github.com/acalejos EXGBoost -- XGBoost

    in Elixir Mockingjay -- Decision Tree Compilation to Nx Merquery -- Postman-like Livebook Smart Cell Read more from me @ https://www.thestackcanary.com/
  2. What is this talk about? Programming Elixir is the most

    fun I've ever had programming and I want more people to experience it. I wanted to share my exprience and potentially offer a guide for how to get involved. Elixir is a great language to make your open-source home
  3. Brief Timeline First introduced to Elixir ~ November 2022 First

    Open-Source contribution ~ December 2022 -- 4 month break from touching Elixir -- Started working on EXGBoost ~ April 2023 Started working on Mockingjay ~ June 2023 Gave talk @ ElixirConfUS -- September 2023 Started working more in-depth w/ Livebook -- January 2024
  4. First Impressions (Pros) Pipes -- where have they been all

    my life?! Standardization & uniformity Mix for packages Hex for package hosting HexDocs & ExDoc for documentation ExUnit for testing Welcoming Community (You all!) Young Ecosystem*
  5. First Impressions (Cons) Different Mental Model than I was used

    to What the heck does use do? import vs require vs use What is OTP? Incomplete tooling Copies are not performant Young Ecosystem*
  6. So What? Easy to understand why newcomers might be discouraged.

    BUT, if you can get past the initial higher Barrier to Entry*, you can be EXTREMELY productive (*) Oversimplification and not always true
  7. Barrier to Entry (Tangent) Entirely depends on your perspective Typical

    Object-Oriented background not only doesn't translate, and can even work against understanding.
  8. There might not always be a perfect packages for your

    use case like other languages That means YOU get to make it You can have an outsized impact
  9. Open-Source Contributing Doesn't have to be intimidating Start small in

    a niche you know well Reference known good libraries Coding style Project managment / best practices Code Review CI/CD Good Developer Experience == better adoption
  10. Filling A "Gap in the Market" Developer communities have supply

    / demand Supply Demand Adoption High Low Low High Hight Quality Low Low Who cares? Low High High
  11. Elixir Points of Entry Backend Scalability, concurrency, distribution From JVM,

    Ruby, Go, Node, etc. Front-End Phoenix Framework From JS, Ruby (on Rails), PHP (Laravel), etc. Machine Learning Nx et. al. From Python, Python, (and maybe Python)
  12. My Elixir OSS Targets Machine Learning Up-and-coming discipline in Elixir

    Ecosystem still young High potential end-user base Mostly dominated by 1 other front-end (Python) I had experience in it I knew someone working in it (he wrote a book I think)
  13. My Elixir OSS Targets Livebook Backed by Dashbit "Front-End" to

    Elixir Extensible Better than its counterparts ML Front-End Docs
  14. Current Thesis Livebook is the perfect tool for onboarding newcomers

    It should be embraced and supported by the community. Standalone installer (MacOS & Windows) Managed Environment through Livebook Teams and Hubs "Supercharged IEx" 3 Runtime Options (Standalone, Attached, Embedded) Improving support for prototype -> production
  15. Reduce Adoption Friction We know where most people are coming

    from, so let's put things in terms they can understand Write good documentation Minimize macro usage when possible I know they're fun Be a good steward of the language / ecosystem Refrain from diminishing other languages Speak in the positive rather than in the negative
  16. Write Understanding the Elixir ML Ecosystem From Python PyTorch to

    Elixir-Nx Elixir Tips of the Week 5 Tips for Elixir Beginners From NumPy to Nx
  17. Final Thoughts Writing is good! Share your progress! Either you'll

    learn because you're wrong or you'll teach others something they didn't know. The Elixir ecosystem is moving extremely fast and constantly improving People want less complexity in their lives Show how Elixir can reduce complexity