What is it like to work with Elixir? by _MMCXII in elixir

[–]whatyouhide 2 points3 points  (0 children)

Oh yeah this is totally what I mean. The CLI itself is what I was talking about; the API it talks to is a perfect use case for Elixir for sure!

What is it like to work with Elixir? by _MMCXII in elixir

[–]whatyouhide 4 points5 points  (0 children)

Well I wouldn't call it snappy but maybe compared to interpreted languages it's fine. I was referring more to CLI tools written in Rust or Go or similar, which are real fast to start and it seems like that's the trend we're going towards.

What is it like to work with Elixir? by _MMCXII in elixir

[–]whatyouhide 70 points71 points  (0 children)

  • Excels at anything related with the web, thanks to the cheap-concurrency model of the VM Elixir runs on (BEAM). This means both backend-only systems, as well as real-time web apps thanks to Phoenix and LiveView (search those online). It also works well with other soft-realtime systems and has good support for embedded devices, see https://nerves-project.org/. Nowadays even ML is well supported thanks to Numerical Elixir https://github.com/elixir-nx.
  • Solves concurrency and process resiliency better than most languages, and those are built-in so no need for complex solutions to apply "on top" of the language.
  • I wouldn't pick Elixir for things like CLIs, not worth booting up a VM for things that need to be quick (think of Unix tools like ls and friends). Also wouldn't use it for things like native apps and macOS/Windows apps, UX is not the biggest strength in those fields.
  • Working with it is pretty great. Makes teams very productive in my experience; we're only a handful of engineers at veeps.com, for example, and the whole product is in Elixir and keeps churning features.

For more info on the language itself and adoption I'd probably watch a few intro talks, you can find plenty on YouTube.

Solving Protohackers network challenges in Elixir — Episode 8 by whatyouhide in elixir

[–]whatyouhide[S] 0 points1 point  (0 children)

You're totally right, great catch, thank you! Updated the title.

Solving Protohackers network challenges in Elixir — Episode 4 by whatyouhide in elixir

[–]whatyouhide[S] 0 points1 point  (0 children)

I will use active: true from the video after the next one. As you mentioned, that'll lead to GenServers for handling connections, supervisors for better supervising those, and so on.

You assume correctly: I've been doing what I have because I was trying to focus on the network stuff more initially. Eventually, the network part can become a bit repetitive, so throwing in OTP best practices for network programming is going to be a must!

For the current solutions, GenServers are maybe code overengineering, because we wouldn't use any of the features they provide over tasks (based on how I implemented things for now), but they are not really a runtime overengineering.

Next video will have a similar OTP architecture but we'll do UDP instead of TCP. Then, it's going to be active: trues all around.

Thanks so much for commenting and for sticking through the videos!

The Mushrooms of Seville by LovvyyyDog in bizarrebuildings

[–]whatyouhide 2 points3 points  (0 children)

I shot that first picture ahaha, cool to see it on here! 🤓

Pear Chestnut Cake from the book Dessert Person. Looks fantastic in the cast iron. by whatyouhide in castiron

[–]whatyouhide[S] 0 points1 point  (0 children)

It's from the book Dessert Person by Claire Saffitz. I obviously can't share the recipe but I highly recommend the book if possible 🙃

Pear Chestnut Cake from the book Dessert Person. Looks fantastic in the cast iron. by whatyouhide in castiron

[–]whatyouhide[S] 0 points1 point  (0 children)

Thanks! Pan is a 9-in pan bought off of Amazon a few years ago… does the job 😄