I really like gleam. I have a few unfinished side projects in gleam with about 10k lines of code, so I've had enough of a taste to know I like it. I can't wait to see how it matures. I plan to write more gleam in the future. I am particularly excited about the possibilities of sharing more code between webapp frontends and backends. Gleam has so much potential and is already quite productive.
I am not that online of a person. But I joined the discord to say hi and ask a few questions and I have to say the community really does have great vibes. If I were spending more time online, I would likely bias to spending it in the gleam community. They're a bunch of very friendly, and smart people working on a wide variety of interesting projects.
Alupis · 2h ago
Some highlights from this release are listed here[1].
The best part of Gleam in my opinion is the language's design. It's just so elegant to read and write. Take this example code snippet from the release notes:
It's a trivial code snippet, but I'm finding this kind of "first class" pattern matching produces very readable, elegant-looking, well organized code.
There was a discussion the other day about the pipe operator being added to PHP 8.x. Gleam was my first language which included a pipe operator. Now, having used it a bit, I feel every language should have something like it.
Omg yes, pattern matching is such an amazing feature I miss it dearly in languages that don't have it!
ZpJuUuNaQ5 · 2h ago
>It's just so elegant to read and write.
Interesting. I was just about to write the opposite. I tried Gleam to solve last year's Advent of Code, and it felt like a weird mix between Rust and Elixir. You can't write code as elegantly as you'd do in Elixir, which was somewhat disappointing. I switched back to Elixir after a couple of days. I think the biggest advantage of Gleam is static type system.
innocentoldguy · 41s ago
I prefer Elixir's syntax over Gleam's, but my main issue with Gleam is architectural. Specifically, Gleam had to bastardize BEAM and OTP to implement static typing. To me, static typing vs. dynamic typing is like having a shelf with a doily vs. one without a doily (the shelf works fine either way), so messing up a solid Actor Model implementation, for instance, for the sake of static typing seems like the wrong thing to do.
lpil · 2h ago
If you've examples of code you have in Elixir that you could not express well in Gleam I would be very happy to help you out with that.
The two languages are almost the same at the value level, so code should translate across well.
Alupis · 2h ago
Depending when this was, it was likely pre-1.x days? Things moved very quickly there for a while - it's worth checking back in again.
Gleam seems to have a lot of obvious influences from Rust, and the creator is a rust dev.
While the Gleam ecosystem is vastly less mature than Elixir's or Rust's (because it's literally younger), the language itself, I've found, is vastly more pleasant to read/write. YMMV of course.
lpil · 1h ago
> Gleam seems to have a lot of obvious influences from Rust, and the creator is a rust dev.
Hi! That's me!
Gleam the language doesn't have any Rust influence really. It's a happy accident that some of the syntax ended up looking the same, but that's likely due to both being inspired by similar languages such as OCaml and the C family. Most the syntax and the semantics predate Gleam's compiler being rewritten in Rust.
The build tool is a rip-off of Cargo for sure though.
Alupis · 1h ago
> The build tool is a rip-off of Cargo for sure though.
Hey, great artists steal, as the saying goes...
It's all shaped up really nice. I'm a big fan of Gleam and your work in general.
zem · 1h ago
more like both gleam and rust have a strong ML influence (gleam might actually consider itself an ML? not sure about that, but it's definitely a descendant)
steve_adams_86 · 2h ago
I'm so envious of this. In TypeScript I use ts-pattern and Effect Schema, and while they make this logic way nicer, it's insanely verbose and doesn't offer any of the niceties of being first class.
Alupis · 2h ago
I have not used it at all, but Gleam does have a javascript target in it's compiler/build-tool. So in theory, you can write Gleam (strongly typed, etc) and produce js.
I've exclusively used the BEAM/Erlang target so far - but the js community within Gleam seems quite interesting.
steve_adams_86 · 1h ago
I've been considering trying this, but my team already struggles to properly adopt TypeScript so I'm fairly sure introducing Gleam would cause a few people to throw me out a window.
thijsvandien · 1h ago
Error(error) -> Error(error) has strong if err != nil { return err; } vibes, and I don't consider that a good thing.
bmacho · 9m ago
No, it doesn't have strong if err != nil { return err; } vibes.
Pattern matching on Ok/Error is one of the best known error handling, while go error handling is one of the worst. They are about as far from each other as possible.
debugnik · 1h ago
That's what Gleam's use expressions[1] are for (the last example is exactly this case). Most languages with the same heritage as Gleam have grown a similar syntactical feature, such as OCaml's binding operators or F#'s computation expressions. Although I appreciate how simple Gleam's is while having similar power.
This is a trivial snippet. Often you will transform/map your error into another type (or deal with it in some way), so it's not so much `if err != nil { return err; }` vibes like you're thinking here.
The beauty here is being compelled to handle both the happy and sad paths. You cannot just pretend the sad path doesn't exist.
> As a community, we want to be friendly too. People from around the world, of all backgrounds, genders, and experience levels are welcome and respected equally. See our community code of conduct for more. Black lives matter. Trans rights are human rights. No nazi bullsh*t.
On one hand I applaud that their community standards are inclusive, but on the other hand, it shouldn't be that blatantly ideological from the get go. It's just another programming language, not a political platform.
steve_adams_86 · 1h ago
I used to be on the fence with this, finding the ideology-forward attitude fairly abrasive. I've since decided that while I don't love it, I see the perceived necessity of it that some people have. I enjoy the privilege of living somewhere and being a person who no one cares to cause problems for. Some people don't have that experience, and are targeted routinely and unfairly. I see it like they put up these barriers and deterrences because they need to, not just that they want to. People who support them participate in that endeavour because it matters enough.
For guys like me, it seems like a needless distraction from what matters. Unless I consider living a life in which there are people who don't want me to exist, or something. Then yeah, I might throw up a few "please fuck off" signs, I don't know.
AnEro · 1h ago
I used to think it was kinda pander-y, but then after participating in some of these communities it was just obnoxious when it wasn't stated, the cultural wedge between people. Where randomly there was drama from someone posting an unrelated yet offensive meme/joke, then it was a huge discussion on if it was ban worthy, if it was okay to joke about, or xyz. When really I just wanted to be nerdy with others.
steve_adams_86 · 1h ago
I get that. You can put up the signs, but it doesn't need to be a regular, loud topic in the community. In fact, the signs should serve to prevent the need to discuss it in the community and make moderation cleaner and easier.
zdragnar · 1h ago
I dunno, it seems like everyone should have learned lessons from the sordid scala and node drama incidents, but instead they're just forgotten.
Don't make in groups and out groups. Just have a "be nice" rule and leave it at that.
steve_adams_86 · 1h ago
The trouble is that nazis think it's very nice to get rid of the untouchables. Life is messy, you've got to set some boundaries and stick to them or jerks gum up the works.
SwiftyBug · 1h ago
The Gleam community has been the best, most welcoming community I've ever seen on the internet. And I've been a around for a while. I attribute this in part to their clear stance.
steve_adams_86 · 1h ago
I was welcomed too, and strongly encouraged to contribute. It was really nice. Though the signals might appear abrasive to some, it doesn't represent an abrasive group of people at all.
Alupis · 1h ago
Joining their Discord and getting greeted by the language creator himself within a few minutes was pretty cool. Most other languages, their creators/maintainers seem so unapproachable and distant. You can talk directly with the core team on there, ask questions, etc. Louis really has built a pretty fun community around Gleam.
batisteo · 9m ago
The good thing is, you don't have to be tolerant with the intolerant. And that's exactly what they are advertising. It let the nice people flow in, as you experienced.
tuttigachimuchi · 1h ago
Programming languages aren’t math—they are cultural products that have the right to express their values and objectives
lpil · 1h ago
> It shouldn't be that blatantly ideological from the get go. It's just another programming language, not a political platform.
It's first and foremost a community, and it's important for communities to have clear a code of conduct and moderation of that code.
There are lots of languages without community, Gleam is not one of those.
AnEro · 1h ago
> It's just another programming language, not a political platform
Politics is baked into everything we do, like the lack of any political messaging is still a political message. With this approach, it weeds out those that don't align with the core community which is ideal for an organization that only thrives with volunteer involvement.
ForceBru · 55m ago
> Shouldn't be that blatantly ideological, it's not a political platform
Yeah! This always stands out like a sore thumb on the website. Like _yeah_, all of it should go without saying! You're a freely available programming language, of course everyone can use it! Of course everyone is welcome! Does a hammer care about your gender or race? No, anyone can use it! It's also very weird and a little childish to specifically include "no nazi bullshit". Isn't it obvious that "nazi bullshit" isn't welcome? Like a no-brainer? Why does a programming language feel the need to say this? Are prominent nazis actively showing interest in Gleam and trying to promote their "bullshit" with it?
Also, the phrase "nazi bullshit" is severely downplaying the problem with the nazis. "Bullshit" is usually something mildly inconvenient, somewhat unfair, kinda infuriating, but it usually doesn't threaten anybody and doesn't fuel world wars.
atomfinger · 38m ago
> Isn't it obvious that "nazi bullshit" isn't welcome? Like a no-brainer?
Unfortunately, not in this day and age.
> Why does a programming language feel the need to say this?
It's less about "the language saying it" and more about the standards of the community that surrounds the language.
For a language to thrive, it needs a community of people contributing to it. If it doesn't, it'll eventually die unused. As such, there's more than "just the language"; it is also a community-building effort.
> Also, the phrase "nazi bullshit" is severely...
IMHO, you're reading too much into the word "bullshit".
akkad33 · 1h ago
But this is not very relevant to the release announcement?
turnsout · 1h ago
Being anti-nazi is not ideological.
ribelo · 1h ago
Of course it is. You can't be against anything without an idea, without it you wouldn't be opposed, you'd just not give a shit. Not caring isn't ideological just like not believing in god isn't, but being anti-god? That's pure ideology.
ModernMech · 57m ago
Trans people are over represented in compilers communities. You don’t get programming languages without the hard work of people in the trans community. In a world where they are constantly under attack, it’s important to make them feel safe and welcome. Trans people are welcome in our dev communities and that needs to be explicitly stated these days, because trans inclusion is not implied in our bigoted society.
I am not that online of a person. But I joined the discord to say hi and ask a few questions and I have to say the community really does have great vibes. If I were spending more time online, I would likely bias to spending it in the gleam community. They're a bunch of very friendly, and smart people working on a wide variety of interesting projects.
The best part of Gleam in my opinion is the language's design. It's just so elegant to read and write. Take this example code snippet from the release notes:
It's a trivial code snippet, but I'm finding this kind of "first class" pattern matching produces very readable, elegant-looking, well organized code.There was a discussion the other day about the pipe operator being added to PHP 8.x. Gleam was my first language which included a pipe operator. Now, having used it a bit, I feel every language should have something like it.
The pipe skips so much boilerplate and clearly communicates intent. Absolutely love it.[1] https://gleam.run/news/no-more-dependency-management-headach...
Interesting. I was just about to write the opposite. I tried Gleam to solve last year's Advent of Code, and it felt like a weird mix between Rust and Elixir. You can't write code as elegantly as you'd do in Elixir, which was somewhat disappointing. I switched back to Elixir after a couple of days. I think the biggest advantage of Gleam is static type system.
The two languages are almost the same at the value level, so code should translate across well.
Gleam seems to have a lot of obvious influences from Rust, and the creator is a rust dev.
While the Gleam ecosystem is vastly less mature than Elixir's or Rust's (because it's literally younger), the language itself, I've found, is vastly more pleasant to read/write. YMMV of course.
Hi! That's me!
Gleam the language doesn't have any Rust influence really. It's a happy accident that some of the syntax ended up looking the same, but that's likely due to both being inspired by similar languages such as OCaml and the C family. Most the syntax and the semantics predate Gleam's compiler being rewritten in Rust.
The build tool is a rip-off of Cargo for sure though.
Hey, great artists steal, as the saying goes...
It's all shaped up really nice. I'm a big fan of Gleam and your work in general.
I've exclusively used the BEAM/Erlang target so far - but the js community within Gleam seems quite interesting.
Pattern matching on Ok/Error is one of the best known error handling, while go error handling is one of the worst. They are about as far from each other as possible.
[1]: https://gleam.run/news/v0.25-introducing-use-expressions/
The beauty here is being compelled to handle both the happy and sad paths. You cannot just pretend the sad path doesn't exist.
https://youtu.be/vyEWc0-kbkw
> As a community, we want to be friendly too. People from around the world, of all backgrounds, genders, and experience levels are welcome and respected equally. See our community code of conduct for more. Black lives matter. Trans rights are human rights. No nazi bullsh*t.
On one hand I applaud that their community standards are inclusive, but on the other hand, it shouldn't be that blatantly ideological from the get go. It's just another programming language, not a political platform.
For guys like me, it seems like a needless distraction from what matters. Unless I consider living a life in which there are people who don't want me to exist, or something. Then yeah, I might throw up a few "please fuck off" signs, I don't know.
Don't make in groups and out groups. Just have a "be nice" rule and leave it at that.
It's first and foremost a community, and it's important for communities to have clear a code of conduct and moderation of that code.
There are lots of languages without community, Gleam is not one of those.
Politics is baked into everything we do, like the lack of any political messaging is still a political message. With this approach, it weeds out those that don't align with the core community which is ideal for an organization that only thrives with volunteer involvement.
Yeah! This always stands out like a sore thumb on the website. Like _yeah_, all of it should go without saying! You're a freely available programming language, of course everyone can use it! Of course everyone is welcome! Does a hammer care about your gender or race? No, anyone can use it! It's also very weird and a little childish to specifically include "no nazi bullshit". Isn't it obvious that "nazi bullshit" isn't welcome? Like a no-brainer? Why does a programming language feel the need to say this? Are prominent nazis actively showing interest in Gleam and trying to promote their "bullshit" with it?
Also, the phrase "nazi bullshit" is severely downplaying the problem with the nazis. "Bullshit" is usually something mildly inconvenient, somewhat unfair, kinda infuriating, but it usually doesn't threaten anybody and doesn't fuel world wars.
Unfortunately, not in this day and age.
> Why does a programming language feel the need to say this?
It's less about "the language saying it" and more about the standards of the community that surrounds the language.
For a language to thrive, it needs a community of people contributing to it. If it doesn't, it'll eventually die unused. As such, there's more than "just the language"; it is also a community-building effort.
> Also, the phrase "nazi bullshit" is severely...
IMHO, you're reading too much into the word "bullshit".