Your backend is too complicated

68,358
0
Published 2024-05-12
Modern software engineering can be a bit of a nightmare. You've got all these different third-party services to keep track of, and often many first-party microservices too! As it turns out, things can be made more simple using Gleam. Let me show you how.

Thanks to CodeCrafters for sponsoring this video! Level up your coding skills:
ihh.dev/codecrafters

Check out the code:
github.com/isaacharrisholt/youtube/tree/main/039-g…

Resources:
Gleam: gleam.run/
Gleam OTP library: hexdocs.pm/gleam_otp/
Wisp web framework: hexdocs.pm/wisp/wisp.html
PokeAPI: pokeapi.co/

__________________________________________

Check out my other socials!
🎮 Discord ▶ discordapp.com/invite/bWrctJ7
🐦 Twitter ▶ twitter.com/IsaacHarrisHolt
🖥️ Portfolio ▶ ihh.dev/
📝 Blog ▶ isaacharrisholt.com/
__________________________________________

Timestamps:
00:00 - Your challenge
00:53 - Project overview
01:13 - The type system
02:14 - Decoding
04:07 - Concurrency
05:47 - Long running processes
08:36 - The battle manager

#gleam #softwareengineer

All Comments (21)
  • @IsaacHarrisHolt
    ERRATA: 5:19 - `task.try_await` doesn't protect you from the task crashing, only from timeouts. The correct way to avoid crashing the host process would be to use a supervisor. `try_await` will, however, return an error if the process EXITS with an exit code. If the process panics or is killed, the host process will crash. 9:11 - Yes, yes. It's POLYNOMIAL, not exponential.
  • @asdanjer
    I love how the answer to too many programming language is always more programming languages.
  • @olegdayo
    How to be a fresh backend developer? It's simple, just: Migrate from PHP/Python/Perl to Go Migrate from Go to Rust Migrate from Rust to Gleam
  • @andreujuanc
    "Your backend is too complicated" -> "I'm going to skip explaining this bit because it's too complicated for this video" xD
  • @kora_lin
    How many GIFs do you want to use in your video? Isaac: Yes
  • @ryzh6544
    It really seems to me that Gleam is the truth. 1. High-level feel with GC 2. Functional but simple 3. Strongly and Statically typed, Custom types (Variants and Records), Generics 4. Errors as values 5. Exhaustiveness 6. Built-in Scalability due to the Beam I like that
  • @siestalol
    exactly what I need right now?? great video!
  • @dandogamer
    I'm glad someone is doing some videos with gleam!! Would love to see some more about the gleam OTP and concurrency. Also some simple web dev stuff like how do I connect it to a postgres db etc
  • @funkdefied1
    Does it have pattern matching comparable to Rust’s? (Object destructuring and exhaustive enum pattern matching)
  • @aronjacobson5403
    I still don't get the `use` syntax. I've tried to understand it through the documentation and more but I just can't get to understand what it does and when it works. It said something about returning the value of the function that was a parameter or something like that and I really don't get how to use it. It seems like a great feature but I just can't wrap my head around it.
  • @kokop1107
    Love the sponsor, really cool idea. Seems more useful for experienced programmers than those leetcode style platforms.
  • @over_clockwise
    Anyone know what font and color theme is being used in the text editor at around 1:30 ?
  • @opposite342
    I have one question, is the play_button / triangle ligature in your font this: "|>" ? edited: I read the code, it seems like it is... I was confused how to make that for a moment haha
  • @ZisulinMorbrot
    What's the font and the color scheme used here? It looks exquisit and I need it.
  • @blouse_man
    that video had alot to unpack, too much for my brain, that's complex, grug brain can't get all of it, 50% was over my head, time to re watch this, keep this good work up
  • @mihaip1179
    Like the difference betwen Salsa on 1 and Salsa on 2 is almost impercetible to the music deaf, what makes backend so different from front end?
  • @tobeqz7065
    Interesting, this seems like rust except without the rough edges and running on BEAM. Ill be sure to give it a try
  • @lpil
    Heck yeah, Gleam!