After working in Ericsson I had to learn Erlang and there was a wild learning curve but it stayed with me and I absolutely love it for network related things of course, what Elixir has done has really brought that capability to the masses of normies and people who don't want to learn how to optimise their networking to that level. They found a great niche and are doing an incredible job really. I have to say Jose is SUPER humble too and communicates the process really well, one of the best interviews here. Thanks
Elixir is so good and it’s so incredibly high quality, the thing that really gets me is the quality of decisions made in the language and most libraries is fantastic.
I was lucky enough to have some small group training in erlang by Robert Virding from the original erlang team and wow, what insights into that ecosystem. Also, the niche classic Erlang the Movie and the follow-up meme Erlang the Movie 2 are worth a watch
One of the things I really enjoy about map and reduce is you kinda know what you're going to get. A while loop can do anything and everything. One thing I really like from Clojure that is kind of like a while loop, is the 'loop'. You use 'recur' to jump back to the top of the loop. I prefer it much more than the generic while loop because you basically have to declare everything you're going to be changing each recursion (iteration) upfront. It makes it much less of a "do anything" thing - someone reading the code has an idea ahead of time what you're going to do.
29:00 the connection race condition bug can be solved if you have a counter for when the process starts and another for when it completes. You had me pacing for a good 5 minutes pondering this though.
I love this format... It would be amazing to have Thibault Duplessis, the creator and (almost) sole mainainer of lichess on Top Shelf. Shoud be interesting on how to manage something on that scale alone...
Primeagen should look into how far the radio waves we've sent have traveled compared to the size of the universe.. they're outpacing all the other stuff we've ejected into the universe.. the volume they cover is a tiny spot even in the scale of our galaxy, let alone the huge vastness that's beyond it. Also, there may be a lot of alien life that never took the evolutionary trajectory the human species went..
"While" loops are easier, but recursion + pattern matching are an amazing way to do the same things with immutability. I would resist calling the latter necessarily harder. I wonder if we tend to see "while" loops as easier because of an existing bias towards mutability in the way programming is taught.
Number 1: ok, "thanks", I guess is number 1. But Number 2: Links? The resources, the live notebook thing? The follow-through man? And Number 3. Only 132 comments for this? After 2 whole weeks? Unacceptable! Everybody, be sure and show the Top Shelf some love. Liked! Subscribed!
actually new life has been bootstrapped in the lab. it was done by craig venter in 2008. he did a ted talk on it. they sampled baterial dna and tried to cut it down to the bare minimum, then they sucked out all the insides of an existing bacteria, and replaced it's genome with the synthetic one. it wasn't very healthy, but it grew and procreated.
49:20 I am glad that is more and more common for languages to either come with a formatter, or at the very least a well-documented style guide, including rules on naming, language conventions, etc. I would rather get used to a rule that I personally dislike than all the code in the ecosystem being the wild west.
I really want to use Gleam since I like Rust and find that the lack of static typing in Elixir makes refactoring harder. Unfortunately it seems like standard library in Gleam is next to nothing. I like the Elixir sugar on top of Erlang, but I want a language with more static checking.
@@simquinoa2030 To be honest I have not spent much time with Gleam. It just seems like it relies a lot on Erlang libraries instead of building something more “Gleamy” on top. If you want consistent error handling then all functions that can fail should return Result etc. C++ is a nightmare in this sense with a mix of at least five ways to handle errors.
Hi @Prime, I am half way through this video and I am loving your TopShelf stuff. Awesome! Would you mind asking your future guests on their developer/machine setup(like their tools of trade - OS/Editors/Tools/etc). Thank you so much
Funnily enough Prime is actually completely wrong about his argument about Aliens. Mathematically, the inverse of his argument is true. Unless those alien civilizations achieve teleportation, the sheer size of the universe means that it is infinitesimally unlikely that we would ever encounter each other, even if we presumed that there were multiple civilizations all travelling at the speed of light.
Like, things that are ONLY a million light-years, are considered somewhat close to us. For context, what that distance means is that if there were aliens there a million years ago, and they started travelling to us at the speed of light, for a million years straight, then they would only now begin to reach us. And even that would require technology so advanced that it borders on magic.
I keep telling people even if aliens exist, we will never see them, so its like they dont exist And people start moaning and insulting me that im not smart enough to understand the statistics of how vast the universe is, we will SURELY meet them one day To which i always laugh because its them that dont understand the statistics and how low the chance is precisely because universe is so vast and on top of that its constantly expanding Lmao
This is a comment to one of the messages in chat: 51:21 PritchettBots: "autoformatters reduce cognitive load just like modal editingamirite" While I agree about the first part (mostly), I disagree about the second. At least for me modal editing greatly increases cognitive load.
Compared to most in the JS ecosystem, React hasn't been too bad with breaking changes. IMO, React has done a decent job of maintaining backward compatibility. I still maintain an old React app I built in 2016 that uses class components and haven't had too many issues updating React. I recently updated that app to React 18 and my old code still worked fine. I just couldn't take advantage of some new features unless I changed render() to createRoot(), which was pretty easy.
Does your app have tests written in enzyme? If no then consider yourself lucky because enzyme doesn’t support Reaction 17 upwards. You will need to migrate all your tests to RTL which has a very different testing philosophy to enzyme.
@@engine_man I remember enzyme but didn't use it back then. I did use RTL though. It's true that changes in react can break other libraries that use react. Enzyme is an old example, but a more recent example is the update to RSCs, it broke css-in-js libraries. However, React makes these changes gradually and the actual react code you write is backward compatible. All of my class component code still works fine. This is much better than most in the JS ecosystem. For example, that Angular situation really sucked and pushed me to React. I am pretty sure enzyme never made an adapter for React 17 or 18. What ever happened to enzyme? Did they just stop working on it?
Also, I should clarify the css-in-js thing. You can still use it if you don't want to use RSCs so maybe that's not the best example. css-in-js still works in react 19 if using React as a SPA in vite or something.
Elixir is great, but I cannot handle the type less ness. Started getting into pekko which is much more approachable and realistic to convince our management. Elixir is a good beacon, it shows how to think about distributed systems.
At this point it's only a matter of (a lot of) time until the type system will be completed. Fom the latest blog post, the design is looking promising.
After working in Ericsson I had to learn Erlang and there was a wild learning curve but it stayed with me and I absolutely love it for network related things of course, what Elixir has done has really brought that capability to the masses of normies and people who don't want to learn how to optimise their networking to that level. They found a great niche and are doing an incredible job really. I have to say Jose is SUPER humble too and communicates the process really well, one of the best interviews here. Thanks
As a person who wants to learn erlang for network related things, where do you suggest I start.
Brazil mentioned
COME TO BRASIL (again)
Brazil mentioned
Timestamp? If not then clearly not dedicated enough
@@xClairy the timestamp is the entire video, cause the dude is brazilian
where
Elixir is so good and it’s so incredibly high quality, the thing that really gets me is the quality of decisions made in the language and most libraries is fantastic.
looking forward to the elixir LSP rewrite. I will say, as great as elixir is, the LSP is very very crude and lacking.
The quality of the libraries is very good. I'm used to PHP and Java ecosystems and they're both absolutely amateurish comparatively.
Elixir guy is just as chill as I’d have expected. You’re good people elixir guy
Valim is such a nice guy!
Elixir is my fav language for like 7 years now and couldn't be happier by starting with it. :) Here's to 7 more.
I am a simple man - I see Jose talk - I listen and enjoy
I have just been working through Sasa's book on Elixir and it has got me very excited about this language. Great timing! Really great interview
Elixir has been a huge advantage for my business to be able to safely and reliably process customer data. Jose is the man.
I was lucky enough to have some small group training in erlang by Robert Virding from the original erlang team and wow, what insights into that ecosystem.
Also, the niche classic Erlang the Movie and the follow-up meme Erlang the Movie 2 are worth a watch
Elixir is the gateway drug to Erlang Flavored Lisp
Tasty
One of the things I really enjoy about map and reduce is you kinda know what you're going to get. A while loop can do anything and everything.
One thing I really like from Clojure that is kind of like a while loop, is the 'loop'. You use 'recur' to jump back to the top of the loop. I prefer it much more than the generic while loop because you basically have to declare everything you're going to be changing each recursion (iteration) upfront. It makes it much less of a "do anything" thing - someone reading the code has an idea ahead of time what you're going to do.
A legend! Brazil mentioned! Vai Brasil! Vai Corinthians!
Pô mano, "Vai Corinthians" não. Pegou pesado.😅
@@jose-valim agora eu respeito você ainda mais. Kkkkkkkkkk
I know he’s not the guest here but TJ is so incredibly articulate and asks killer questions in the best of ways. Glad he’s on too!
elixir bros did we win yet
José is a great leader, one of the reasons I love Elixir!
What a great episode, really loved it, hoping that Prime jumps on the Elixir bandwagon!
This guy has great takes
José Valim, my hero
If I was a woman I would marry him
@@JonasThente-ji5xxwhat if he were a woman?
@@vikingthedude I'm already married
Another great guest to have on the podcast. Keep it up! Very informative.
NOOO WAY, BRAZIL MENTIONED, LESSSS GOOOOOO 🇧🇷🇧🇷🇧🇷🇧🇷🇧🇷🇧🇷
1:12:23 .. yep .. I just packed my bags and left to Elixir Phoenix 😁🥳
Great talk. Just started to learn Erlang. Next will be Elixir.
Lets go Brazil mentioned, Elixir is amazing!
29:00 the connection race condition bug can be solved if you have a counter for when the process starts and another for when it completes. You had me pacing for a good 5 minutes pondering this though.
The whole BEAM ecosystem is incredibly blessed.
I love this story arc
This is epic and on point
I love it ❤
I love this format...
It would be amazing to have Thibault Duplessis, the creator and (almost) sole mainainer of lichess on Top Shelf. Shoud be interesting on how to manage something on that scale alone...
Hoping one day we can have a conversation like this with Rich Hickey
52:23 is one of the best quotes that perfectly describes me as a human being
Primeagen should look into how far the radio waves we've sent have traveled compared to the size of the universe.. they're outpacing all the other stuff we've ejected into the universe.. the volume they cover is a tiny spot even in the scale of our galaxy, let alone the huge vastness that's beyond it. Also, there may be a lot of alien life that never took the evolutionary trajectory the human species went..
"While" loops are easier, but recursion + pattern matching are an amazing way to do the same things with immutability. I would resist calling the latter necessarily harder. I wonder if we tend to see "while" loops as easier because of an existing bias towards mutability in the way programming is taught.
Number 1: ok, "thanks", I guess is number 1. But Number 2: Links? The resources, the live notebook thing? The follow-through man? And Number 3. Only 132 comments for this? After 2 whole weeks? Unacceptable! Everybody, be sure and show the Top Shelf some love. Liked! Subscribed!
actually new life has been bootstrapped in the lab. it was done by craig venter in 2008. he did a ted talk on it. they sampled baterial dna and tried to cut it down to the bare minimum, then they sucked out all the insides of an existing bacteria, and replaced it's genome with the synthetic one. it wasn't very healthy, but it grew and procreated.
49:20 I am glad that is more and more common for languages to either come with a formatter, or at the very least a well-documented style guide, including rules on naming, language conventions, etc. I would rather get used to a rule that I personally dislike than all the code in the ecosystem being the wild west.
what about Gleam? Also, you guys should definetely get Richard Feldman on the show to talk about Roc!
Prime, do not invite them!!!! 😊
I really want to use Gleam since I like Rust and find that the lack of static typing in Elixir makes refactoring harder. Unfortunately it seems like standard library in Gleam is next to nothing. I like the Elixir sugar on top of Erlang, but I want a language with more static checking.
@@krumbergifyjust wondering. What kind of things do you feel like you’re missing from the standard library?
@@krumbergifyStatic checking is coming! Some of it is already here in Elixir 1.18 :)
@@simquinoa2030 To be honest I have not spent much time with Gleam. It just seems like it relies a lot on Erlang libraries instead of building something more “Gleamy” on top. If you want consistent error handling then all functions that can fail should return Result etc. C++ is a nightmare in this sense with a mix of at least five ways to handle errors.
Hi @Prime, I am half way through this video and I am loving your TopShelf stuff. Awesome! Would you mind asking your future guests on their developer/machine setup(like their tools of trade - OS/Editors/Tools/etc). Thank you so much
Life Elixir 🌞💛
This was sooo fun to watch
very smart and experienced all 3, respect!!!
He seems like such a cool guy
What a great episode!
Elixir!!!
Evan Czaplicki would be a great next based on this conversation
elm is dead
B R A Z I L
Fun guy, great interview
the one where prime keeps getting trolled
Vem que vem.
Funnily enough Prime is actually completely wrong about his argument about Aliens. Mathematically, the inverse of his argument is true. Unless those alien civilizations achieve teleportation, the sheer size of the universe means that it is infinitesimally unlikely that we would ever encounter each other, even if we presumed that there were multiple civilizations all travelling at the speed of light.
Like, things that are ONLY a million light-years, are considered somewhat close to us. For context, what that distance means is that if there were aliens there a million years ago, and they started travelling to us at the speed of light, for a million years straight, then they would only now begin to reach us. And even that would require technology so advanced that it borders on magic.
I keep telling people even if aliens exist, we will never see them, so its like they dont exist
And people start moaning and insulting me that im not smart enough to understand the statistics of how vast the universe is, we will SURELY meet them one day
To which i always laugh because its them that dont understand the statistics and how low the chance is precisely because universe is so vast and on top of that its constantly expanding
Lmao
That rust comment near the start 😂
The gpu stuff seems to mostly be linking to python stuff. Although there is a unique backend with candlex.
Seems like a healthy situation
BR - A Z I L !!
Great! Very likable fellow
This is a comment to one of the messages in chat:
51:21 PritchettBots: "autoformatters reduce cognitive load just like modal editingamirite"
While I agree about the first part (mostly), I disagree about the second.
At least for me modal editing greatly increases cognitive load.
Brasil mentioned!
OMG HYPE!
Wow, this one is couple of weeks old
Been a while since you recorded this I was wondering when it would release.
VAI BRAZIL!!!
Prime pronouncing José’s name:
Brazilians: ☠️
Is 2025 the year of Ellxir?
Hahahahhaa this was awesome
Sooo good
1:25:30 gottem!
We need to make him start using vim
⬆↗➡↘⬇↙⬅↖ ima computa
Sick
Compared to most in the JS ecosystem, React hasn't been too bad with breaking changes. IMO, React has done a decent job of maintaining backward compatibility. I still maintain an old React app I built in 2016 that uses class components and haven't had too many issues updating React. I recently updated that app to React 18 and my old code still worked fine. I just couldn't take advantage of some new features unless I changed render() to createRoot(), which was pretty easy.
work on bigger codebases son
@@aviral2759, 600k lines of code is a big codebase, son?
Does your app have tests written in enzyme? If no then consider yourself lucky because enzyme doesn’t support Reaction 17 upwards. You will need to migrate all your tests to RTL which has a very different testing philosophy to enzyme.
@@engine_man I remember enzyme but didn't use it back then. I did use RTL though.
It's true that changes in react can break other libraries that use react. Enzyme is an old example, but a more recent example is the update to RSCs, it broke css-in-js libraries.
However, React makes these changes gradually and the actual react code you write is backward compatible. All of my class component code still works fine. This is much better than most in the JS ecosystem. For example, that Angular situation really sucked and pushed me to React.
I am pretty sure enzyme never made an adapter for React 17 or 18. What ever happened to enzyme? Did they just stop working on it?
Also, I should clarify the css-in-js thing. You can still use it if you don't want to use RSCs so maybe that's not the best example. css-in-js still works in react 19 if using React as a SPA in vite or something.
Re: the formatter. I use it but I hate some choices. I hate code alignment. I want indents only.
neat!
BRAZIL MENTIONED! VAAAI CORINTHIANS!
BRA - SIL 🇧🇷
Every time they said resilient software I understood Brazilian software lol
Edgelords practicing degen for 2 hours straight
love it
Bora Brasillll
Nice
I resemble that comment.
WHaaaaaaaaaaaaaaaaaaat????????!!!!!!!!
1:12:01 React developers in shambles
BRAZIL MENTIONED?
Elixir is great, but I cannot handle the type less ness. Started getting into pekko which is much more approachable and realistic to convince our management.
Elixir is a good beacon, it shows how to think about distributed systems.
At this point it's only a matter of (a lot of) time until the type system will be completed. Fom the latest blog post, the design is looking promising.
@akkesm Looking forward to it. Though I don't know why they have to be special and try do so invent some new type theory, hope it's worth the effort.
They just added typing of function calls yesterday
@@gravisanIt has to be special because a language like this has never had static types before.
1:25:25 😂😂😂
My dream job is an elixir job
Me too
whatsapp is written in erlang, similar to elixir
How I'm I this early
Removing trailing commas makes no sense!!!
am I the only one or could he be the third tate brother? (only by looks!)
1
Elixir is Erlang with worse syntax.
why is this obnoxious TJ debris guy in all of the Primeagen's videos nowadays?
Cause he’s great
@@aldrickdevSoCute
cause he wrote telescope.nvim and plenary.nvim
You take that back
Cuz he’s fuckin funny and smart
Elixir took erlang and made is so unbearably ugly.
I probably have to make an honest attempt to use it, but knowing Erlang it is easy to agree with you.