r/gleamlang

Is Gleam what I'm looking for?

Let me start saying that I don't believe on perfect languages. But I quite think that Gleam may be what I was looking for for quite some time. But I'm confused with it's position on the Beam ecosystem.

I do program a lot in Go, and I do value the simplicity of the language, but at the same time the type system is so damn simplistic, to a point I can't program on it anymore. The issue is, a better type system becomes way too complicated as it tries, but it's not required, to add all features under the sun. For example, I was working with Scala using Cats on a previous job, and oh my God, indeed, very powerful, but the complexity is just unbearable.

From my experience this is what makes a good language to me:

  • Simplicity. This is so subjective, but think on this like: can I learn the language in a weekend or does it take a full year? Go x Haskell
  • Compiled
  • Errors as values
  • Async by default and without function coloring
  • ADT
  • Immutability
  • Good visibility control of fields, structs, functions, and packages
  • No nulls and rely on Option/Result types

I think Gleam checks all of this, right? Just the compilation that is not there, but I could live without it by having everything else.

The question now in my head is, why Gleam when Elixir is getting a type system? I did program a little in Elixir, I find it amazing, but being dynamic was such a deal breaker for me. I was very excited to know that José was working on a type system, but I still don't understand to which degree it will extend. From what I was able to read, and understand, it will fill kind of progressive typing and it will not be as strong as Gleam is right now.

Right now I'm working with Rust, despite it's complexity, but dealing with all those lifetimes/borrowing is something that I really don't like. I'm not building a billion requests per second service.

reddit.com
u/Ecstatic-Panic3728 — 6 days ago

How can I run some test generation step in gleeunit?

Hi folks, I am working on a doc test package for Gleam, and for integration testing purposes I'd like to include a test clean up and generation step before I start executing the tests.

Right now, I am trying to use simplefile to delete the old tests and generate new ones before gleeunit.main(). However, if there are any updates, they won't be included in the current round. They will be included in the next round, but that would be quite confusing... Is it possible in gleeunit to have something like a before hook?

P.S. Self-plug: https://hex.pm/packages/gleedoc It's generally usable, but docs are a bit lacking and there are some issues I'd like to tackle. But yeah, feel free to give it a try.

u/xzhan — 2 days ago

I implemented a Gleam code generator for Skir, a modern alternative to Protobuf

The goal is to make it easy to share data between a Gleam application and an application written in another language (one of the 12 languages that Skir supports).

I would love to hear what the Gleam community thinks of it.

skir.build
u/gepheum — 6 days ago
▲ 26 r/gleamlang+2 crossposts

Hi everyone!

TL;DR: I*’ve just released* Hexy*, a simple and efficient app to track and monitor your* Hex.pm package downloads. I’d love for you to try it out, it would honestly make my day! If you want to hear the story and the "why" behind the tech choices, keep reading below.

App Store: https://apps.apple.com/it/app/hexy-watcher/id6762607967

screenshot

If you've made it this far, congratulations! You've unlocked the long, confusing version.

First off, please bear with me if I’m terrible at this "social media" thing. Writing sensible announcements, convincing people, or trying to "sell" a product isn't really my forte. I’m way too much of a DIY/maker person—the kind who’d rather spend time at the workbench or glued to the keyboard than figuring out how to communicate.

Actually, I’ve realized over time that the things I find genuinely cool, useful, or interesting usually don’t resonate with most people. I’m a niche person, often excited about details that others don't even notice. But if there’s one place where "niche and passionate" is the norm, it’s here.

So, Let's start:

Since I started diving into the BEAM world (Elixir, Erlang, Gleam ), I’ve been blown away by the energy. This community has a vibe that’s just different: welcoming, active, and genuinely cool. I’ve felt at home here from day one.

I wanted to make a little something to say thank you. No strings attached, nothing pretentious, just a small gift for all of us who build and share: Hexy Watcher (or "Hexy" for friends).

We all know the feeling: you run mix hex.publish (or, in my case, gleam publish), you close the terminal, and that’s it. But a download isn’t just a stat; it’s a dev on the other side of the world trusting your code to build their dream (so heartwarming). It’s a sign that your work is out there, breathing and moving. I built this so we can keep those trends a bit closer, making the life of a package feel a little more "real" and visible.

The Tech Stack (and why native): 
The app is written in Swift. I know, I know... I could have used a cross-platform framework like Flutter, React Native, Tauri, or even Elixir Desktop.

So, please, don’t ask me things like "Why didn’t you build it for Windows/Linux/Android?" just yet. Please: after years of C# and Windows native dev, I felt the need to get my hands "dirty" with a completely new ecosystem from the ground up. I didn't want to hide behind a multi-platform abstraction. I wanted to experience the full, raw process of publishing something entirely "mine" from the first line of code to the final App Store submission.

I wanted to be responsible for every single pixel and every sync logic, rather than just being the dev who builds a small piece of a larger machine (a terrible idea). That’s why I chose to ignore the "build once, run everywhere" path for a moment: I opened Xcode and went full native, focusing on macOS first and then iOS, using iCloud to keep everything in sync between devices without any setup.

Status:

  • iOS: Live now!
  • macOS: Currently stuck in the "Apple Review Maze" (they’re taking their sweet time!). I might release it outside the App Store soon if they don’t hurry up.
  • Android: I haven’t forgotten you! Once the Apple dust settles, I’ll see if I can embark on that journey.
  • Linux: (P.S. I’m experimenting with Rust + eww, so something might pop up there too!)

I’d love your feedback! If you have a moment to try it out, please let me know what you think. Honestly, even just some "emotional support" would mean the world to me putting your own work out there for the first time is always a bit nerve-wracking! 😅

I hope you find it useful. It’s just my way of giving back to a community that’s been so great to me.

App Store: https://apps.apple.com/it/app/hexy-watcher/id6762607967

Happy coding, everyone! 💜

One last thing (the "awkward" part): 
I know, I might sound a bit desperate here... but hey, if you appreciate the effort of building a (simple) app for free, with no ads, no tracking, and no spy attached, maybe consider buying me a coffee? It would help keep the DIY spirit (and my caffeine levels) alive while I figure out the Android/Linux versions! ☕️

Ko-fi.com/lupodevelop

reddit.com
u/lupodevelop — 13 days ago