Gleam 1.0 Is Out! (I think I'm in love...)

Sdílet
Vložit
  • čas přidán 22. 05. 2024
  • I had no idea what I was in for going into Gleam, but I'm so happy I did. Wow.
    GIVE THEM A STAR github.com/gleam-lang/gleam
    Hope my nerdiness around Elixir, Erlang, BEAM etc helps contextualize things a bit here. Typesafe, ruby-like, FP focused BEAM compatible code is literally a dream come true.
    gleam.run/
    00:00 - Intro To Gleam
    01:10 - Gleam 1.0
    16:24 - Playing With Gleam
    Check out my Twitch, Twitter, Discord more at t3.gg
    S/O Ph4se0n3 for the awesome edit 🙏
  • Věda a technologie

Komentáře • 386

  • @huge_letters
    @huge_letters Před 2 měsíci +795

    Elixir for gen z lets goooooooooooooooooo

    • @user72974
      @user72974 Před 2 měsíci +57

      Erlang for boomers, Elixir for millennials, and Gleam for Gen Z?
      Iunno aboot that. I've never seen those three groups be this friendly to each other. :P

    • @speedstyle.
      @speedstyle. Před 2 měsíci +12

      Rust for Beam lol

    • @BinaryReader
      @BinaryReader Před 2 měsíci +3

      @@user72974You missed Gen X

    • @ckpioo
      @ckpioo Před 2 měsíci +21

      ​@@BinaryReaderthat's the middle child no one cares abt

    • @EightNineOne
      @EightNineOne Před 2 měsíci +1

      @@BinaryReader who?

  • @landonyarrington7979
    @landonyarrington7979 Před 2 měsíci +279

    So stoked about Gleam:
    - Simple like go (small surface area)
    - Can leverage Elixir and Erlang tools
    - Scalable and fault tolerant (BEAM)
    - Type-safe and functional
    - Familiar to rust users (option/result and pattern matching)
    - `use` as a solution to callback hell (instead of async/await function coloring)

    • @GreatTaiwan
      @GreatTaiwan Před 2 měsíci

      Why is it scalable and fault tolerant ?

    • @landonyarrington7979
      @landonyarrington7979 Před 2 měsíci

      @@GreatTaiwanLook into Erlang/BEAM

    • @prcvl
      @prcvl Před 2 měsíci +15

      @@GreatTaiwanBEAM is built for that, gleam doesnt do much extra for scalability

    • @mariogutierrez4989
      @mariogutierrez4989 Před 2 měsíci +3

      The one hesitation I have is a 53 stars postgres beam package. Is there a more proven package?

    • @yuchunc
      @yuchunc Před 2 měsíci

      @@GreatTaiwan I runs the Taiwan local elixir meetup, if you are curious, come and join us and find out. :)

  • @christiansheridan3410
    @christiansheridan3410 Před 2 měsíci +146

    functional programming, algebraic data types, and web frameworks using the elm architecture... this will be fun to try

    • @someguyO2W
      @someguyO2W Před 2 měsíci +15

      I used elm once in a production app. Absolutely loved it.
      Someone came in 3 years later and replaced it because they could not be bothered to learn it.

    • @Lucs-ku5cb
      @Lucs-ku5cb Před 2 měsíci +1

      Iced is a GUI Rust library that uses the elm architecture

  • @abrahamsimonramirez2933
    @abrahamsimonramirez2933 Před 2 měsíci +75

    I can already see job posts: 11 years of experience in this language for junior roles

    • @TerriTerriHotSauce
      @TerriTerriHotSauce Před 2 měsíci

      Lmao

    • @azizsafudin
      @azizsafudin Před 2 měsíci +4

      That wouldn’t be too crazy as I assume Erlang experience translates.

    • @drprdcts
      @drprdcts Před 2 měsíci +3

      Tech leads speed running the making of insane interview questions for Gleam

  • @studiousllama4776
    @studiousllama4776 Před 2 měsíci +78

    I literally said "I think this is my dream language" when I first saw gleam! I'm glad it's resonating with other people too!

    • @OnFireByte
      @OnFireByte Před 2 měsíci +8

      Functional language with simple C-style syntax, running on BEAM, statically typed, and cool mascot.
      Literally cant ask more than that!

  • @echoes6092
    @echoes6092 Před 2 měsíci +71

    louis, the gleam creator, is also extremely awesome and runs a great discord server

    • @0e0
      @0e0 Před 2 měsíci +1

      awesome human

  • @Malix_off
    @Malix_off Před 2 měsíci +236

    Two counters reset in 24h, jeez

    • @t3dotgg
      @t3dotgg  Před 2 měsíci +50

      lmfao

    • @nmotschidontwannagivemyrea8932
      @nmotschidontwannagivemyrea8932 Před 2 měsíci +11

      Mind saying what the counters are counting, for someone who isn't in on the joke?

    • @t3dotgg
      @t3dotgg  Před 2 měsíci +136

      @@nmotschidontwannagivemyrea8932 “X days since a new JS framework” and “X days since a new programming language”

    • @nmotschidontwannagivemyrea8932
      @nmotschidontwannagivemyrea8932 Před 2 měsíci +12

      @@t3dotgg Lol ty

    • @huge_letters
      @huge_letters Před 2 měsíci

      What's the new JS framework? Tanstack Start? It was a few days ago. There's a new one?

  • @robertlenders8755
    @robertlenders8755 Před 2 měsíci +68

    No function overloading is most likely a compromise for good type inference

    • @ernesto8738
      @ernesto8738 Před 2 měsíci +3

      yeah it's this, and as an elixir guy idk if i can manage. i *love* overloading arguments like that, i fucking *love* my left justification, i *hate* nesting

    • @Papageno123
      @Papageno123 Před 2 měsíci +3

      Yeah, compromise between having a simple language and full HM inference. Type classes are a big jump in complexity

    • @lpil
      @lpil Před 2 měsíci +6

      Yup that’s it

    • @tonyb3123
      @tonyb3123 Před 2 měsíci +4

      Good type inference _and_ function captures.
      Function overloading makes alot of more valuable features much harder to implement

    • @nyahhbinghi
      @nyahhbinghi Před 2 měsíci +2

      @@lpil down the road - allow the user to decide - method overloading is super convenient - if they want inference in their callbacks etc, then they won't overload. I do realize that overloading usually a burden to implement, so save it for later, but it's convenient for users

  • @robinquintero2351
    @robinquintero2351 Před 2 měsíci +31

    Lol, i literally started trying gleam today and im loving it, now theo uploads a video about it. Life is good

  • @jskksjjskksj
    @jskksjjskksj Před 2 měsíci +5

    The language looks very promising! It really shows that there was a lot of thought put into the structure and has learned from what worked best and did not work from the other programming languages such as Elixir, JavaScript, Go, Python, etc.

  • @jesse9999999
    @jesse9999999 Před 2 měsíci +18

    I've been writing a lot of go lately but this feels like what i was actually looking for

  • @the.helgard
    @the.helgard Před 2 měsíci +2

    Really fascinating language, I'm all for ML like languages that place a decent emphasis on static type-safe systems. I wish more languages / tools existed like this for building highly dynamic client-side applications!

  • @joaodiasconde
    @joaodiasconde Před 2 měsíci +1

    Amazing, takes all the features I love of Rust and simplifies it by trading off the fine grained memory layout / control which is fine for many software use cases. Literally been thinking of creating a language like this, I will definitively try and contribute to this! Nice video!

  • @Wizatek
    @Wizatek Před 2 měsíci +43

    I have tried to stop me for quite a while but today is the day i can't anymore.. Please stop making these faces on your thumbnails, they never match how you actually respond to the video.

  • @lpil
    @lpil Před 2 měsíci +28

    Ahh thank you Theo!!!

  • @finndriver1063
    @finndriver1063 Před 2 měsíci +2

    Woohoo! I'm an Erlang programmer and I love seeing new BEAM languages. Been following Gleam since the first announcements and I'm excited for 1.0.0

  • @anasouardini
    @anasouardini Před 2 měsíci +1

    I haven't read a lot of docs, but this is, by far, the most cleverly designed one I've read so far.

  • @madlep
    @madlep Před 2 měsíci +25

    Super pumped to get back into Gleam now it’s hit 1.0. Been following it for years. It’s been a long road, and Louis and the team has iterated and tried out a lot of things, threw out a bunch of stuff that didn’t fit quite right, and ended up in a really nice sweet spot. Elixir is Erlang but better. Gleam could well be Elixir but better.

    • @isenewotheophilus6485
      @isenewotheophilus6485 Před 2 měsíci

      I'm just finding out what it is,
      i never knew they've been working on it

    • @jsonkody
      @jsonkody Před 2 měsíci +3

      It does not seem to be better than Elixir. Its just different.

  • @abdoufma
    @abdoufma Před 2 měsíci +2

    Discord was also built on the Erlang VM, and last time I checked, they were handling a billion (literally) daily messages.

  • @mrmrigank7154
    @mrmrigank7154 Před 2 měsíci

    I saw your video on the vue having vapor, subscribed to your channel now

  • @admindeno2982
    @admindeno2982 Před 2 měsíci

    That was a nice video, very well meaning and positive. Love it!

  • @alphabitserial
    @alphabitserial Před 2 měsíci +14

    Gleam looks pretty awesome! It's honestly really funny to see you go through the playground and be super excited about all these language features like type inference, blocks, and pattern matching. I'm already used to all these features from Rust! Gleam seems very similar to Rust overall but the garbage collection and easy JS transpile are finessed as fuck.

    • @SeanLazer
      @SeanLazer Před 2 měsíci +4

      I think "rust but trade a bit of performance for some ease of use" is something a lot of people want. Arguably it's why Go is so popular but go is lacking some niceties from Rust. Rust's type system and error handling are amazing but I don't want to think about lifetimes, and its async situation is tricky. Worth it if you need the Perf, but most of the time I don't

    • @alphabitserial
      @alphabitserial Před 2 měsíci +1

      @@SeanLazerI agree that it's desirable to have all these great things in a GC language! I do write in Rust and I usually never have to think about lifetimes. 😄 That mostly comes up if you're writing libraries for others to use, especially if your library is full of generics or is highly concurrent.
      Me, I'm just writing application code. I use Rust because its type system makes modeling logical problems so much easier. Sometimes I'm working on a problem that has to iterate over hundreds of thousands of files and pull data out of them, or reformat them, etc. and I can use as much .clone() etc as I want!

    • @brod515
      @brod515 Před 2 měsíci +2

      @@SeanLazer tricky is an understatement. it's a mess. I use rest but I think people tend to pretend it's performance is worth all it's complexity. you have to remember that to even get that performance really* you have to write some complex rust.
      rust compile time is also quite horrendous.
      I initially like rust but honestly it's development time is quite stagnating

  • @AlecThilenius
    @AlecThilenius Před 2 měsíci +3

    I too didn't like implicit returns when I first saw then in Ruby many moons ago. Wasn't until Rust that their value really clicked for me, and all the elegant expression block syntax they enable.

  • @Voidstroyer
    @Voidstroyer Před 2 měsíci +7

    The thing I am most curious about is what would happen to Gleam once Elixir's static types system is ready for production. The biggest thing about Gleam is its static typing. Other than that, the language is either very similar to Elixir, or worse in some cases (no function overloading). I guess being able to run on Javascript runtimes might be a benefit, but at that point aren't you better off just using typescript instead?

    • @dandogamer
      @dandogamer Před 2 měsíci +1

      In systems where you have elixir/gleam on the backend being able to compile to TS/JS is useful as you dont have to go through hoops to call your function in a different lang

    • @Voidstroyer
      @Voidstroyer Před 2 měsíci +4

      @@dandogamer My question is, why would you ever want to compile to JS in the first place? If it is server side, you might as well keep it in the BEAM world. If it is frontend based, Elixir (Phoenix actually) already allows you to just write JS/TS directly.

    • @araozu
      @araozu Před 2 měsíci +2

      ​@@VoidstroyerThe same reason everything is JS nowadays: you don't have to learn a different language, you can reuse type definitions, validation between back/frontend

    • @araozu
      @araozu Před 2 měsíci +2

      Also, another thing they have is syntax (i'm not sure about semantics), i'd say it's familiar to Rust/Zig/Go/JS devs, and maybe even C/C++/Java, whereas elixir is similar to Ruby, and erlang is similar to itself.
      To existing erlang/elixir devs that probably means nothing, but in a world where people don't even want to leave JS for another C-like lang, familiarity is a good way to attract people to the ecosystem.
      For one, I'll be trying gleam in some toy projects or AoC. I've tried elixir, but the ruby syntax which i'm not familiar with is a deterrent. And erlang is erlang.

    • @Voidstroyer
      @Voidstroyer Před 2 měsíci +2

      @@araozu I understand the argument of "keeping it in the same language" but that is also one of the biggest problems with web dev nowadays. People using JS for everything. Just because you can, doesn't mean you should. To be honest, if you are already really adept at writing JS, learning a different backend language such as Go (or any OOP language) is so trivial. At this point it is just stuborness of JS devs to not want to use a different language for the backend. I didn't list elixir because I did have some issues getting used to Functional programming. But given some time it is really not an issue. I like Elixir & Phoenix because it allows you to use most of Elixir for your webapp, and if you need heavy client side stuff you can just write JS directly. It enables you to use "the right tool for the job". And since I don't see JS devs leaving it all behind for Gleam, I also don't see Gleam getting that much adoption. But hey, I could be completely wrong. But I do believe that once Elixir gets its static type system ready, it is definitely going to negatively impact Gleam.

  • @wmpasve
    @wmpasve Před 2 měsíci

    listening :) - unicode support allows 🔥in code in js, ruby etc - method chaining of map reduce and filter in js is almost pipes :)

  • @lost-prototype
    @lost-prototype Před měsícem +1

    Gotta agree, this looks really neat and has me looking over the fence...

  • @Redyf
    @Redyf Před 2 měsíci +21

    Who cares about type safety? The logo is nice, I'M IN

  • @crossscar-dev
    @crossscar-dev Před 2 měsíci +4

    that literately looks like the solidjs tutorial

  • @gregheth
    @gregheth Před 2 měsíci +1

    I'm happy too. My favourite language before I learnt about Erlang/Elixir was Prolog 😂

  • @dandogamer
    @dandogamer Před 2 měsíci +1

    Fly is a really really awesome project, it needs more love tbh

  • @ciarancurley5482
    @ciarancurley5482 Před 2 měsíci

    Theo face when he saw the pipes, I feel ya brother.

  • @jesse9999999
    @jesse9999999 Před 2 měsíci +4

    i believe mojo also has emoji support!

  • @frontend_ko
    @frontend_ko Před 2 měsíci +21

    Character is too cute to ignore

  • @MrManafon
    @MrManafon Před 2 měsíci +3

    I’ve gotten curious at some point and wrote a typesafe pipeline library for TS. Turns out, it doesn’t solve much, as unlike Elixir, the whole stdlib isn’t designed in a way that puts first argument first, meaning, even if you go crazy with syntax sugar, it still doesnmt feel right and looks messy. Add async/await to it and its impossible to debug and stack traces are useless 😢

  • @user-vl5jp5zh5f
    @user-vl5jp5zh5f Před 2 měsíci +4

    lol the whole lsp was released as a binary, Theo. It’s been a neovim package since before v1.

  • @quickdudley
    @quickdudley Před 2 měsíci

    Haskell also supports unicode in variable names, but I think the parser might treat emoji as operators unless you parenthesize them.

  • @joshuadonahue5871
    @joshuadonahue5871 Před 2 měsíci

    You and prime spilling the beans smh. Now I gotta fight with everyone else for the gleam jobs 😂

  • @jaymartinez311
    @jaymartinez311 Před měsícem

    finally got it to work on my intel mac with this version 1. I love the syntax and especially the typing.

  • @Blubb3rbub
    @Blubb3rbub Před 2 měsíci

    I think it is reasonable to prefer the implicit returns for the block expressions. So I could understand if explicit return wasn't considered in favor of implicit, so there is only one way to return values.🤔

  • @dmitriidemenev5258
    @dmitriidemenev5258 Před 2 měsíci +2

    20:01 Technically, Rust allows using emojis as variable names as well but you'll be getting warnings.

  • @yevhenmatasar7389
    @yevhenmatasar7389 Před měsícem +2

    Omg you always on hype. When you do your job?

  • @chrismastere
    @chrismastere Před 2 měsíci +6

    The thing about pipes. It's very awkward to type "|>" on a non ANSI-keyboard layout. Programming languages are definitely made for American and British layouts, but the rest of the world already have to wrangle semicolon, and curly brackets being hidden behind modifier keys.

    • @anon_y_mousse
      @anon_y_mousse Před 2 měsíci

      I feel that way about certain characters too, and I've got a US keyboard. Here we call () parentheses or parens, {} braces and [] brackets. I prefer brackets for most things because I don't have to hit shift to type them, but I still use braces often in writing code because it just makes sense. However, I did toy with the idea of an all bracket version of LISP. It looked weird, but I think people could get used to it.

    • @danvilela
      @danvilela Před 2 měsíci +1

      Also is really repetitive
      str
      |> String.reverse
      |> String.split
      Way better just
      str.reverse.split 🤷🏻‍♂️

    • @1Caja
      @1Caja Před měsícem

      I bought a keyboard with ansi layout 3 years ago and put the lost keys (ä,ü,ö,ß) on another layer that I trigger with caps (press -> esc, hold -> layer).
      Works beautifully.
      I use keyd on linux and on windows you can use their ancient keyboard layout creator to use altGr key instead of capslock.
      If I were to use Gleam I would just put |> on that layer and it would become perfectly ergonomic.
      Still need to look into ZMK/QMK to see if it's possible to have everything on the keyboard itself. I think it pays to invest a bit of time or money into ones tools.

  • @garcipat
    @garcipat Před měsícem

    Doesn't Mojo also allow emojis in variables? Or is it just the file extention that is the fire emoji?

  • @SnowTheParrot
    @SnowTheParrot Před 2 měsíci

    this is such a great project

  • @garyduell3768
    @garyduell3768 Před měsícem

    Just got to the strings part of the tutorial, and I'm not too stoked at how an actual newline in the code translates to a "
    " in the string. Sometimes I add whitespace and newlines to make the code cleaner, but I always expect newlines in the string to be explicit with
    or
    or something similar.

  • @draakisback
    @draakisback Před 2 měsíci +5

    This is a cool project but honestly I don't think it's at the point where I would want to abandon elixir for it. It might be useful to work with both languages, but I've been doing a lot of rust plus elixir work recently (they pair so well together), and I just don't see where gleam fits into all of that. It's definitely a cool language and it will bring more people into the ecosystem which is nice, I plan to dive into it to see what the 1.0 releases really like. Probably the most contentious issue I have with the language is the fact that OTP is not included automatically, and I have to wonder if that has something to do with the multiple back ends that they provide.
    That and I also wish that it had modular level pattern matching/function overloading like erlang or elixir. I knew that they wouldn't have it because they weren't including the argument amount for each function, which is kind of important if you going to do function overloading in that way. It's easily run my favorite features of elixir / erlang.
    Edit: I spent some time writing a distributed cache system in gleam. It's the kind of project that is somewhat trivial in elixir if you leverage otp. I found that gleam had a lot of really rough edges especially when it came to interop. The ETS library is deprecated, it's from 0.23 or something of the language and so I had to write my own wrappers. It was relatively easy to do this but I noticed that it was very easy to ignore the static type system by using generics and dynamic types (makes sense given that elixir / erlang are dynamic). One of the reasons why I really like using rust with elixir is because of rust's result and option monads, they make it easy to do error handling on the elixir side by simply passing atoms back to the system which minimizes the downside of using NIFs. On the other hand, when you are wrapping elixir with gleam, because gleam is the language that has results, you kind of have to work around the potential to get a nil or error atom. It definitely works but it's not as intuitive.
    I also really don't like the actor abstraction, it's just not as intuitive as genserver. I basically ended up writing my own wrapper around genserver. It's definitely rough to try to implement Genserver without function overloading but I was able to make my own pattern within the genserver behavior by passing calls, cast, and infos off to an elixir function. I was able to build a basic supervision tree and implement most of the stuff that I wanted to create, but it did take me a lot more time than it would have taken in elixir because I had to write all of these wrappers. That being said, if the community starts to build more libraries, I don't think this should be as much of a problem in the future. It just kind of sucks that a lot of the OTP functionality hasn't been exposed yet and so you kind of have to go and get it yourself if you want it. It also really doesn't play well with static typing, which is probably why they are trying to build a set-based type system in elixir.

  • @2mbst1
    @2mbst1 Před 2 měsíci +3

    I am not sure about this one. What is its strength? Seems like there are better languages around for various use cases, that do it better in those situations (eg Rust) The sales pitch sounds nice but overall it still is somewhat in an uncanny valley. Doesn’t even have OTP (and iirc won’t ever fully get there?)
    I would rather use Elixir and NIFs.

  • @Muzzino
    @Muzzino Před 2 měsíci +6

    I predict that pretty soon we'll see new programming languages and libraries released alongside LLM AIs to help developers convert their existing code bases and reduce onboarding

  • @brendan981
    @brendan981 Před 2 měsíci

    will this be friendly to newer programmers? i only know python but am looking to branch out and am definitely interested in this

    • @senzmaki4890
      @senzmaki4890 Před 2 měsíci +1

      is your full name Brendan Remmy

    • @studiousllama4776
      @studiousllama4776 Před 2 měsíci +2

      Yes, that is one of the goals. The standard library hasn't reached version 1.0 yet, so I would maybe wait until that happens

    • @dandogamer
      @dandogamer Před 2 měsíci +3

      It's a friendly language and the people are a lovely bunch on the discord :)

    • @DubiousNachos
      @DubiousNachos Před 2 měsíci +2

      It's a functional language, so some things might throw you for a loop at first (like there not being loops or throwing exceptions), but it's probably the most approachable form of the paradigm right now
      Once you learn functional programming (FP) through Gleam, you'll be able to transfer that to other functional languages, too

  • @AngelEduardoLopezZambrano
    @AngelEduardoLopezZambrano Před 2 měsíci

    Theo, I appreciate your video. I remember I gave Prisma a try because of one of your videos. But you get too excited sometimes, I don't want to make the same Prisma mistake with Gleam, by jumping on it. I'll wait a little, just like I should have done with Prisma.

    • @t3dotgg
      @t3dotgg  Před 2 měsíci +1

      Prisma is fine, better than anything that came before it, and easy to move off of with tools like Drizzle and Kysely. The mindset it teaches is the value. I'm sorry if you feel burned by adopting it early since we've collectively "moved away".
      There's a significant gap between my excitement for Gleam and my production use and endorsement of Prisma. Prisma was a tool I built multiple businesses with, and have had a great experience working with at scale.
      Gleam is a brand new language I'm excited about. I'm not endorsing it. I'm not telling people to go rewrite their stuff in it. I'm just excited. If you can't see the difference between my excitement and my endorsements, might be best to avoid my videos for awhile.

    • @AngelEduardoLopezZambrano
      @AngelEduardoLopezZambrano Před 2 měsíci +1

      ​@@t3dotgg Thank you for responding to my comment. Based on your response, I wish you hadn't taken it like an attack on what you do. I apologize if my comment came off like a complaint because it wasn't. To be honest with you, thanks to the issues I had with Prisma, I became a drizzle advocate and a huge contributor to the codebase. Before I used prisma I didn't use any "type-safe" library, just mysql2, node-pg and the like. I admire you as a developer and tend to pay attention to your takes because they make me think in a possibly different way. Hopefully next time I comment on one of your videos I'll express myself in a more positive way.

    • @danvilela
      @danvilela Před 2 měsíci

      @@AngelEduardoLopezZambranoid just stop watching his videos 😂

  • @zach9850
    @zach9850 Před 2 měsíci

    I'm such a huge fan of elixir, and gleam feels like elixir 2.0 super excited about it

  • @drevan1138
    @drevan1138 Před 2 měsíci

    I sometimes miss the “do { }” syntax for variable assignments in JS…I probably have some code still running it via Babel somewhere.

  •  Před 2 měsíci

    @6:33 - I believe that python was the first that pushed for homogeneous code formatting. I mean, indentation is part of the syntax. And there is also PEP 8 since 2001

  • @hakuna_matata_hakuna
    @hakuna_matata_hakuna Před 2 měsíci

    go still better with a broader use case but this has a cooler type system and js runtime support

  • @aaron_the_penguin
    @aaron_the_penguin Před 2 měsíci +12

    BTW, as a brit, £ is not a euro, it's a pound. € is a euro. 👍

  • @mme725
    @mme725 Před 2 měsíci +1

    20:00 PHP also allows emoji variables, to add to your list 😛

  • @c_sharp_yt
    @c_sharp_yt Před 2 měsíci

    I think Mojo also allows emojis as variable names

  • @mokolabs
    @mokolabs Před 2 měsíci

    Ruby also allows emoji variables!

  • @_neuromanser_
    @_neuromanser_ Před 2 měsíci +1

    What can you build with Gleam?

  • @boredstudent9468
    @boredstudent9468 Před 2 měsíci +3

    C/C++ can use Emojis as Variable names if you use the right encoding or punycode with the preprocessor

  • @peshutanpavri1599
    @peshutanpavri1599 Před 2 měsíci

    Great to know, Your content has been so helpful,
    As far as this Glean, I like it, it’s sweet, at the end of the day is this just like another Typescript ?
    I’m coming up with something soon :)

  • @head0fmob
    @head0fmob Před 2 měsíci

    The language mascot sold me lol

  • @Endelin
    @Endelin Před 2 měsíci

    semi-colon for returns would be hilarious

  • @markopoutiainen7108
    @markopoutiainen7108 Před 2 měsíci

    Raku also supports unicode variable names.

  • @aLfRemArShMeLlOw
    @aLfRemArShMeLlOw Před 2 měsíci +14

    I don't underestand why languages, especially new ones, don't have named imports, like in JavaScript. That's the thing I appreciate the most about JavaScript. It's such an easy win, but of the languages I know only Python and Zig do that.

    • @GreatTaiwan
      @GreatTaiwan Před 2 měsíci +2

      Python is older than JS
      So why they don’t have it like Python
      Just saying

    • @Rudxain
      @Rudxain Před 2 měsíci +1

      WDYM? Rust doesn't have named imports?

    • @genericuser1546
      @genericuser1546 Před 2 měsíci +8

      gleam does have named imports, you use the `as` keyword (if you know rust, it's just how rust does it)
      so `import gleam/string as str` or a more complex example `import gleam/string.{reverse as rev, append as app}`

    • @lpil
      @lpil Před 2 měsíci

      Gleam does have named imports

  • @MrManafon
    @MrManafon Před 2 měsíci

    @t3dotgg its not implicit returns :) you’ve forgotten that elixir functions always have only a single return statement, so you can’t put them anywhere else - meaning thay are always explicit

  • @NexusGamingRadical
    @NexusGamingRadical Před 2 měsíci +22

    High Level rust, lets gooooooooo!!!!!!

    • @trejohnson7677
      @trejohnson7677 Před 2 měsíci +1

      this is nothing close to the binary abomination that is rust lol.

    • @Goose____
      @Goose____ Před 2 měsíci

      so a bad rust!

    • @potatomaaan1757
      @potatomaaan1757 Před 2 měsíci +1

      ​@@trejohnson7677 what is a "binary abomination" supposed to be?

    • @trejohnson7677
      @trejohnson7677 Před 2 měsíci

      @@potatomaaan1757 run xxd or some shit guy.

  • @m4rt_
    @m4rt_ Před 2 měsíci +1

    Even though it's still in private beta, Jai is still my dream/favorite language. It was initially made for making video games, so it's made to be performant, both in the code being fast, and the compiler being fast, but it's also useful for a lot of other use cases to, as it's also a replacement for C/C++

  • @duke605
    @duke605 Před 2 měsíci +5

    Implicit returns turns me off so hard. Was interested until I saw that. And not just implicit returns, but FORCED implicit returns meaning no bailing out of a function early. Hope you like nested code!

  • @IlhanNegis
    @IlhanNegis Před 2 měsíci

    readable erlang? nooice

  • @HolarMusic
    @HolarMusic Před 7 dny +1

    It's so funny how Theo keeps praising features that are also part of Rust, while also hating on Rust 😅

  • @LoneIgadzra
    @LoneIgadzra Před 2 měsíci +1

    Gleam is a very exciting language for BEAM, but just keep in mind that OTP is the true engine behind what makes coding on BEAM unique, and the Gleam standard library currently wraps very little of OTP. This is not a criticism, I'm sure it will be easier to make progress on this with a stable language, and the language author loves the runtime.

  • @duckyDz
    @duckyDz Před 2 měsíci +11

    another functional programming language that will be used in 5 projects

  • @davidsiewert8649
    @davidsiewert8649 Před 2 měsíci +2

    The main reason to use TS/JS is having the ability to not switch languages if you write frontend / complex web apps.
    I do not see this advantage challanged, where are many good backend languages out where -> but they are all not good enough if you want to do frontend.

  • @rickdg
    @rickdg Před 2 měsíci +1

    Swift mentioned!

  • @hackerhaze
    @hackerhaze Před 2 měsíci

    Theo, aka the JS hype guy

  • @exapsy
    @exapsy Před 2 měsíci +2

    It's sad that it doesn't try to compete Go's async/multithreading standards with goroutines.
    Like, where does gleam stand now in this whole "Production languages" list from C++, Rust to Typescript, Python to Go being in the middle?
    I'm placing it after Go (in terms of not covering this humongous market) of software engineers wanting languages that are simple but also very performant.
    And Gleam does not seem to touch that market as much as Go does.
    It just seems to "Gleam" .... i don't know who will use it instead of Go, and why.

    • @andreilucasgoncalves1416
      @andreilucasgoncalves1416 Před 2 měsíci +2

      They seem to prefer elixir concurrent model and more functional style while go is more procedural
      Go is pretty good, but in my opinion is not the favorite of many devs because of err != nil and not having a strict null checker
      This language seems to have strict null checker like rust which reduces drastically bugs caused by skill issue
      They said that the language does not have null and that I doubt, they probably have null with another name

    • @cherubin7th
      @cherubin7th Před 2 měsíci +2

      Go's concurrency system is unsound and Gleam prefers to use an actually good concurrency system. It looks like Go but good.

  • @joshring8563
    @joshring8563 Před 2 měsíci

    Been watching gleam, got confused sometimes with the slots _ as it's a small thing that changes the behaviour quite a lot

  • @Lena-yt3yl
    @Lena-yt3yl Před 2 měsíci +3

    Obligatory nitpick : "75k Euros" while looking at British Pounds (and no it didn't change with brexit)

  • @Nellak2011
    @Nellak2011 Před měsícem +1

    Finally a Type Safe Elixir!!! I am 100% on board. Sign me up!

  • @adamkoxxl
    @adamkoxxl Před 2 měsíci

    Nim supports emojis as variable names as well

  • @seanknowles9985
    @seanknowles9985 Před měsícem

    Pipes has made its way to js through EffectTS library.

  • @mariobroselli3642
    @mariobroselli3642 Před 2 měsíci

    What you think of Roc lang?

  • @user-ij5rp9vp1u
    @user-ij5rp9vp1u Před 2 měsíci

    Js can do multithreading when using the event loop

  • @MrLordLowbob
    @MrLordLowbob Před 2 měsíci +1

    no emojis for variable names, thats good.

  • @daliareds
    @daliareds Před 2 měsíci +2

    It's really funny to me just how much Theo hates Rust

  • @flubba86
    @flubba86 Před 2 měsíci +2

    Sounds like you'd definitely like Julia. It can use emojis as variables, has block context scoping, implicit _or_ explicit returns, _and_ function overloding is the whole basis of the langauge. Also compiles down to LLVM, so it is as fast at Rust.

  • @seannewell397
    @seannewell397 Před 2 měsíci

    I'm so glad you played with it. Prime failed. You succeeded.

  • @tuzu3953
    @tuzu3953 Před 2 měsíci +1

    You can use emojis as variable names in C.

  • @ksulimma
    @ksulimma Před 2 měsíci

    Julia does support emojis as variable names.

  • @Vemu
    @Vemu Před 2 měsíci +1

    Se you haven't tried Kotlin

  • @cherubin7th
    @cherubin7th Před 2 měsíci +2

    16:25 onward looks almost identical to Rust. They even followed Rust in rejecting function overloading antipattern.
    Just last week I was talking with a friend the best replacement for the go niche would be simplified Rust with a garbage collector with the good Rust type-system. I just wish it had traits.
    Pipes look like a useless gimmick to me, especially when you have to use that awkward _

    • @RegrinderAlert
      @RegrinderAlert Před 2 měsíci

      How are pipes a gimmick? Chaining function calls is a basic necessity.

  • @thisbridgehascables
    @thisbridgehascables Před 2 měsíci

    I thought you just switched back to Elixir?? Prime already did a video on Gleam.

  • @bambitsunami4165
    @bambitsunami4165 Před 2 měsíci

    Interesting!

  • @triangleearther5916
    @triangleearther5916 Před 2 měsíci

    i. have prblems in understanding the _ in arguments

  • @winchesterdev
    @winchesterdev Před 2 měsíci

    PHP lets you use emojis everywhere, too

  • @nallwhy
    @nallwhy Před 2 měsíci +1

    I think it's not "implicit return". Function should return something and there is no null in Gleam. It's just what it is.

  • @thekwoka4707
    @thekwoka4707 Před 2 měsíci

    Yeah, imports going left to right is nice, I like Rusts syntax best, but this is quite similar to that. Much better than Pythons...

  • @tobiasjennerjahn8659
    @tobiasjennerjahn8659 Před 2 měsíci

    Wow. I almost dismissed Gleam because of its name and icon. I know that's a bad heuristic, but you gotta prioritize where to put your attention, you know.
    But boy am I glad that I watched this video. Gleam looks awesome. The design and syntax just makes me want to use it.

  • @andreagrossetti7589
    @andreagrossetti7589 Před 2 měsíci

    Sounds like a cool language to use inside an Elixir project for the business logic. I don't think it makes any sense to drop Elixir existing ecosystem (ExUnit for tests, Phoenix for the web, Ecto for interacting with db...)