Elixir: Agent Basics - [016][Free]

Hey Everyone

We recently released a free episode and 4 member’s exclusive episode in our Elixir Foundation series. In this episode I talk about when / why you should use Agents. Let us know your thoughts!

agent-basics-cover

1 Like

Elixir Foundation?

To me this is rather interesting. Is it an open foundation, meaning, can I join if I want to?
Also, you mention this one is free. I didn’t have trouble but I assume some episodes will be locked behind a paywall, right?

Why use Agents?

Because they give you an additional level of abstraction… Why use airplanes? Because they give you a different means to perform geospatial traveling within a shorter frame on the time axis of the 4D chart reality exists on.

Did you get it? No? Neither did anyone else learning Elixir.

From what I understand you explain Agents before finishing all of GenServer’s features. IMHO, this was a mistake. If I don’t fully understand GenServer, I cannot value what Agent brings to the table.

Don’t take me wrong, I am one of the guys who thinks there are reasons to use Agents, namely:

  • Reduced boilerplate code (less repeated code that you have to do over and over)
  • Shorter servers which lead to less bugs (there is a mathematical relation between the number of lines of code a file has and bugs. The more lines something has, the higher the probability of a bug).
  • Less mental load and complexity.

You may prefer the lower level approach via GenServer, and that’s fine, but these benefits hold value as well. I didn’t see you explaining them, instead you jumped right into Get and update.

But for me, what the video really lacks is an answer to the following question…

Why shoulnd’t I use Agent?

Someone who watches this single video will believe Agents replace GenServers. Such is not true. Agents lacks some of the capabilities GenServers have and this is a major factor people consider when they tell you they just use GenServer and don’t bother with Agents.

My evil opinion

You may have had the impression from my second paragraph I didn’t like your work. This is not true - I am by default a hard critic and I apologize if I hurt you. People in this community are not like me, so don’t be afraid :stuck_out_tongue:

Truth is I like quite liked the video:

  • post production effects were nice
  • short and straight to the point
  • real code examples

Videos like this take a lot of work I know for a fact. I just think the topic on Agents could have taken another approach.

Hope you guys keep on doing this great work!

A foundation course usually tackles the basics of something (in preparation for advanced books/courses) :slight_smile:

If you need to say something like that then, generally speaking, it’s a good indication that your thoughts could have been articulated in a more amicable, constructive or acceptable manner.

Please remember that people creating educational content (as well as those making libraries, languages and frameworks) put a lot of time and effort into what they do, and so feedback is generally best provided as kindly as possible.

This part of your post in particular is concerning:

I am by default a hard critic and I apologize if I hurt you.

There’s no need to be a ‘hard’ critic. Please just be a ‘nice’ one. Thanks!

4 Likes

Thx for the feedback however this is one episode in a series. It is meant to provide value on its own but also is supposed to be a continued in the next episode.

In the project I actually use GenServer with Agents so actually if you watch the entire series you will see there is use case for both. I also did mention in the video if you are only storing state Agents means writing less code, and GenServer is more for doing all kinds of other things like rendering a webpage which is displayed in the project.

Thank you for taking the time to watch the video.

Thank you for your work on this forum, it’s become a great place for the elixir community. I’m currently working on more elixir content once my site / content is more ready I looking forward to becoming a sponsor of elixir forum.

2 Likes