My first experience with Gleam Language(pliutau.com)
pliutau.com
My first experience with Gleam Language
https://pliutau.com/my-first-experience-with-gleam-lang/
45 comments
I have been slowly getting acquainted with the language over the last few months and I really love it. It combines great features from multiple languages into a single one that is perfect for building back-end web apps:
- It is strongly typed, and has sum types like Rust, with very similar syntax, nice error messages, full type inference and first-party LSP implementation for great IDE tooling;
- Unlike Rust, it is a high level language with garbage collection and a sane concurrency mechanism;
- It follows the same concurrency paradigm from Erlang, since it is compiled to it and runs in the BEAM. It is quite performant for I/O stuff, apparently in the same ballpark as Go;
- It can also be compiled to JS either to run either in the back-end or the front-end side, making it possible to build isomorphic web apps if that's your thing.
I’m most excited about the Rust-ish types in a garbage collected language. Aside from the lack of compiling to static binaries, this fills an empty void for me between Go and Rustz
There was an excellent talk on Gleam at the Carolina Code Conference last weekend. It should be available on YouTube in a week or so.
Gleam seems cool. In the Discord the lead guy bit off someone’s head in chat and I thumbs downed his comment, then he removed my thumbs down and messaged me to say that I was rude. Bit of a turn off tbh…
What did "someone" say? Key piece of info here.
This is just an anecdote and should be taken as such, but I don't know how relevant what was said is—removing an emoji reaction on one of your own posts is a pretty petty abuse of admin privileges regardless of the context.
I'm actually less concerned about the follow up message in private, it's the undoing of expressions of disapproval of the admin's behavior that is most concerning regardless of what was said by the original person. A good admin can cope with disagreement about their moderation practices without having to remove the evidence that someone disagreed.
I'm actually less concerned about the follow up message in private, it's the undoing of expressions of disapproval of the admin's behavior that is most concerning regardless of what was said by the original person. A good admin can cope with disagreement about their moderation practices without having to remove the evidence that someone disagreed.
Yeah I didn’t give his comment much thought other than the thumbs down, it was the follow up reprimand for even emoting and removing the emote. Just the whole exchange rubbed me the wrong way. Here are the receipts https://imgur.com/a/nsRpFGk
I don't think either of you come off either great or horribly here. That is kind of a rude action (esp I mean, were you just a lurker at this point?) but also he didn't handle it very tactfully.
But it does seem wild to bring it up as a top level comment on another forum now. What are you hoping for? People to not use the language? An apology?
But it does seem wild to bring it up as a top level comment on another forum now. What are you hoping for? People to not use the language? An apology?
Lead dev behavior is highly relevant to programming language discussions because the lead dev has a massive role in shaping everything about the ecosystem. This is just one anecdote, but it suggests that the lead dev is still pretty young and immature and has a fairly fragile ego, which could have a major impact on the development of the ecosystem.
I'd definitely be interested in other people's experiences with them to see if there are contradictory anecdotes, but I don't see it as irrelevant to bring up here.
(All that said, I concur that OP could have likely behaved differently as well. But again: handling disruptive behavior effectively is part of the job of a BDFL/lead dev, and this incident was not handled well.)
I'd definitely be interested in other people's experiences with them to see if there are contradictory anecdotes, but I don't see it as irrelevant to bring up here.
(All that said, I concur that OP could have likely behaved differently as well. But again: handling disruptive behavior effectively is part of the job of a BDFL/lead dev, and this incident was not handled well.)
I'm glad you think I'm young!
We take moderation very seriously in Gleam, and I assure you this poster has omitted much of the context here. If you have any concerns please do get in touch with the moderation team either on discord or via "hello at gleam.run". Thank you.
We take moderation very seriously in Gleam, and I assure you this poster has omitted much of the context here. If you have any concerns please do get in touch with the moderation team either on discord or via "hello at gleam.run". Thank you.
Hey, glad to see you here! I've been following Gleam from the sidelines for a while and I'm really excited to see where it ends up.
I can tell that you take moderation very seriously, and that's part of my concern—there's a trend among a certain newer crop of FOSS projects to moderate in a way that is opaque, passive-aggressive, and somewhat self-righteous. This is usually done in the name of creating safe spaces, where "safe" means "things that make anyone uncomfortable get erased".
It starts out fine with erasing hate speech and similar. But then you get in the habit of removing things and you start removing content that isn't hateful but is uncomfortable for some other reason. I've seen projects (Forgejo) remove evidence of reasonable dissent about the appointment of a moderator (going so far as to erase that dissent from the internet archive).
One anecdote isn't enough for me to believe that you've gone that far, but it's a trend that I've seen and your rhetoric falls into that concerning pattern. I'm not interested in having a private conversation (as I said, opaque moderation practices are part of the problem I'm identifying), but I would caution you against going too far down this safe spaces route. Keep out the hate speech, but be wary of deleting things that aren't.
I can tell that you take moderation very seriously, and that's part of my concern—there's a trend among a certain newer crop of FOSS projects to moderate in a way that is opaque, passive-aggressive, and somewhat self-righteous. This is usually done in the name of creating safe spaces, where "safe" means "things that make anyone uncomfortable get erased".
It starts out fine with erasing hate speech and similar. But then you get in the habit of removing things and you start removing content that isn't hateful but is uncomfortable for some other reason. I've seen projects (Forgejo) remove evidence of reasonable dissent about the appointment of a moderator (going so far as to erase that dissent from the internet archive).
One anecdote isn't enough for me to believe that you've gone that far, but it's a trend that I've seen and your rhetoric falls into that concerning pattern. I'm not interested in having a private conversation (as I said, opaque moderation practices are part of the problem I'm identifying), but I would caution you against going too far down this safe spaces route. Keep out the hate speech, but be wary of deleting things that aren't.
We go quite a bit further than keeping out hate speech. For example, we have a policy of "good vibes" in the chat so we don't permit bashing other languages and will publicly ask folks to take it elsewhere if they start.
It's been a few years of using these policies and it's going great! The community and discord server have been consistently praised as one of the highlights of Gleam.
The main drawback is that we tend to attract a lot of criticism from right-wing social media posters as a result, bizarrely including one brief smear campaign from one of the founders of Trump's Truth Social.
It's been a few years of using these policies and it's going great! The community and discord server have been consistently praised as one of the highlights of Gleam.
The main drawback is that we tend to attract a lot of criticism from right-wing social media posters as a result, bizarrely including one brief smear campaign from one of the founders of Trump's Truth Social.
Well, thanks for being up front about it I guess!
It's not just the far right that's uncomfortable with this kind of policy and rhetoric—I'm glad that the relatively small subset of the population that you're interested in supporting has enjoyed the environment you've created, but know that you're severely limiting the growth of your community and excluding people who could really contribute.
There are a lot of people from every part of political manifold that are uncomfortable with the growing tendency towards sheltering oneself and others from all emotional discomfort, and those people aren't interested in participating in a community where everything has to have "good vibes".
For myself, I love the quote in dang's profile:
> "Conflict is essential to human life, whether between different aspects of oneself, between oneself and the environment, between different individuals or between different groups. It follows that the aim of healthy living is not the direct elimination of conflict, which is possible only by forcible suppression of one or other of its antagonistic components, but the toleration of it—the capacity to bear the tensions of doubt and of unsatisfied need and the willingness to hold judgement in suspense until finer and finer solutions can be discovered which integrate more and more the claims of both sides. It is the psychologist's job to make possible the acceptance of such an idea so that the richness of the varieties of experience, whether within the unit of the single personality or in the wider unit of the group, can come to expression."
— Marion Milner, 'The Toleration of Conflict', Occupational Psychology, 17, 1, January 1943
It's not just the far right that's uncomfortable with this kind of policy and rhetoric—I'm glad that the relatively small subset of the population that you're interested in supporting has enjoyed the environment you've created, but know that you're severely limiting the growth of your community and excluding people who could really contribute.
There are a lot of people from every part of political manifold that are uncomfortable with the growing tendency towards sheltering oneself and others from all emotional discomfort, and those people aren't interested in participating in a community where everything has to have "good vibes".
For myself, I love the quote in dang's profile:
> "Conflict is essential to human life, whether between different aspects of oneself, between oneself and the environment, between different individuals or between different groups. It follows that the aim of healthy living is not the direct elimination of conflict, which is possible only by forcible suppression of one or other of its antagonistic components, but the toleration of it—the capacity to bear the tensions of doubt and of unsatisfied need and the willingness to hold judgement in suspense until finer and finer solutions can be discovered which integrate more and more the claims of both sides. It is the psychologist's job to make possible the acceptance of such an idea so that the richness of the varieties of experience, whether within the unit of the single personality or in the wider unit of the group, can come to expression."
— Marion Milner, 'The Toleration of Conflict', Occupational Psychology, 17, 1, January 1943
> but know that you're severely limiting the growth of your community and excluding people who could really contribute.
Quite the opposite. By not having the usual sources of annoyance and tedium Gleam's community has grown much faster and larger than similar technologies in the same space.
Being tolerant of abrasive behaviour has a cost to the technology project, and I'm not interested in paying it, especially not for ideological "everyone is welcome" reasons.
Quite the opposite. By not having the usual sources of annoyance and tedium Gleam's community has grown much faster and larger than similar technologies in the same space.
Being tolerant of abrasive behaviour has a cost to the technology project, and I'm not interested in paying it, especially not for ideological "everyone is welcome" reasons.
> Gleam's community has grown much faster and larger
I hope I’m the anecdotal exception then! I personally watched this exchange happen and left the community within 24 hours. I respect your right to run your community how you’d like, but I unfortunately didn’t experience any “good vibes” from how you handled this situation.
To me a good moderator handles situations without patronization or condescending, is respectful but clear, and doesn’t care how people feel about them.
Keep up the excellent work on Gleam.
I hope I’m the anecdotal exception then! I personally watched this exchange happen and left the community within 24 hours. I respect your right to run your community how you’d like, but I unfortunately didn’t experience any “good vibes” from how you handled this situation.
To me a good moderator handles situations without patronization or condescending, is respectful but clear, and doesn’t care how people feel about them.
Keep up the excellent work on Gleam.
You're occupying a very special niche (typed BEAM language), so if I were you I'd be wary of attributing your growth to your moderation practices. Correlation and causation and all that.
My prediction is that you grow rapidly because of natural interest in the niche you occupy. Your community will get larger and more diverse than you expect in spite of your efforts to keep people out. Then, when you run into your first major point of conflict about language development, the community will be divided on what to do and your efforts to moderate in this way will only fan the flames. Then Gleam will go the way of Elm—it will go back to being something that a very small niche group keeps using, but the bulk of the excitement will go back to Elixir as it slowly starts to occupy your technical niche.
A community with no mechanism for dealing with conflict cannot last long. If being an Elm sounds fine to you—it's not a bad fate after all—then that's fine! Just don't expect more unless you're willing to start developing conflict tolerance in the community.
My prediction is that you grow rapidly because of natural interest in the niche you occupy. Your community will get larger and more diverse than you expect in spite of your efforts to keep people out. Then, when you run into your first major point of conflict about language development, the community will be divided on what to do and your efforts to moderate in this way will only fan the flames. Then Gleam will go the way of Elm—it will go back to being something that a very small niche group keeps using, but the bulk of the excitement will go back to Elixir as it slowly starts to occupy your technical niche.
A community with no mechanism for dealing with conflict cannot last long. If being an Elm sounds fine to you—it's not a bad fate after all—then that's fine! Just don't expect more unless you're willing to start developing conflict tolerance in the community.
> It's not just the far right that's uncomfortable with this kind of policy and rhetoric
It really kinda is though. HN commenters generally lean a lot harder right than they are aware of and/or want to admit. This belief about a "growing tendency towards sheltering oneself and others from all emotional discomfort" is straightforwardly a right wing view.
It really kinda is though. HN commenters generally lean a lot harder right than they are aware of and/or want to admit. This belief about a "growing tendency towards sheltering oneself and others from all emotional discomfort" is straightforwardly a right wing view.
> HN commenters generally lean a lot harder right than they are aware of and/or want to admit.
That's a perception that is common among left-wing commenters who find themselves exposed here to right-wing ideas for the first time. As someone who actively seeks to represent whichever perspectives are underrepresented in a given context (down to specific threads), I can assure you that HN leans pretty firmly left. I very rarely need to take the left-wing perspective here when trying to provide balance.
(Obviously you only have my word for it, but my friends and family all think I'm a raging liberal because I represent the left to them.)
> This belief about a "growing tendency towards sheltering oneself and others from all emotional discomfort" is straightforwardly a right wing view.
If Jonathan Haidt is a right-wing activist from your perspective, then sure. I don't think most people see Haidt that way, and certainly don't think he sees himself that way.
That's a perception that is common among left-wing commenters who find themselves exposed here to right-wing ideas for the first time. As someone who actively seeks to represent whichever perspectives are underrepresented in a given context (down to specific threads), I can assure you that HN leans pretty firmly left. I very rarely need to take the left-wing perspective here when trying to provide balance.
(Obviously you only have my word for it, but my friends and family all think I'm a raging liberal because I represent the left to them.)
> This belief about a "growing tendency towards sheltering oneself and others from all emotional discomfort" is straightforwardly a right wing view.
If Jonathan Haidt is a right-wing activist from your perspective, then sure. I don't think most people see Haidt that way, and certainly don't think he sees himself that way.
Not looking for anything. This post was titled “My first experience with the Gleam language”, I also think the language was pretty great but I am sharing my poor first experience with the language and the community. I don’t even fault the guy for not wanting to answer questions, but it was in the #off-topic channel and the response was just abrasive.
I hope people use the language, I think it has huge potential and honestly it looks beautiful. I thought sharing ‘my first experience’ was pretty on topic.
They were asking Rust questions in one of the channels going back and forth and the mod out of the blue told him to stop asking Rust questions because he doesn’t give Rust advice for free. Which I understand, it just came off in a highly abrasive way so I thumbs-downed it.
I'd love something like Gleam, but it compiles to a single binary and isn't Rust. (I know that that binary would invariably be larger than something Rust might produce due to the need to include things like a GC or BEAM process manager.)
Check out Nim[0] - it's strongly typed, with good type inference, clean elegant syntax, memory management is automatic (optional gc, default is ARC + small footprint cycle collector), compiles to small single binaries (Hello World is less than 100 kb), has powerful metaprogramming and lsp support.
Nim compiles to C/C++ and then to native code, so performance is on the same level as Rust/C/C++. You can also compile Nim to js/wasm and run the same code in the web.
[0] - https://nim-lang.org
Nim compiles to C/C++ and then to native code, so performance is on the same level as Rust/C/C++. You can also compile Nim to js/wasm and run the same code in the web.
[0] - https://nim-lang.org
nim unfortunately took python's significant-indentation idea though
For what it's worth, Nim allows much more lexical flexibility than Python. You can very often use parens ()s and optional extra parens are not usually a problem either - the bracket is just not spelled {}. As another example, both code & documentation comments have "open-close" forms with #[ and ##[. Also, my hello world's are more like 16K on x64-Linux than 100K. There are also user-defined operators, lisp-like syntax macros but with static typing, etc., etc. Nim is Choice, but not everyone likes that.
Roc, Nim and Idris are currently compelling to me.
Roc and Idris mainly because I like pure functional languages along with some typing. But I like Nim a lot too.
I am on the lookout for a language that I can replace some overly complex Bash scripts with for commandline use.
Roc and Idris mainly because I like pure functional languages along with some typing. But I like Nim a lot too.
I am on the lookout for a language that I can replace some overly complex Bash scripts with for commandline use.
https://github.com/c-blake/cligen makes whipping up CLI utilities very easy in Nim with a pretty fancy CL-user experience (colorized, user-tunable --help, Zsh/bash completions, brief long options, spellcheck/autosuggest on typos, etc.). As examples, there are like 60+ such utilities over at https://github.com/c-blake/bu . Unsure all that adds up to "critical mass" for you, but it seemed worth noting.
That is definitely worth noting!!
I don’t suppose I could compile a binary that runs on both linux and macos (a la Cosmopolitan)?
I don’t suppose I could compile a binary that runs on both linux and macos (a la Cosmopolitan)?
I do not have any personal experience with it, but I have heard several success stories for Actually Portable Executables & Nim and there is this to try to ease the path for cosmopolitan libc fans: https://github.com/foxoman/cosmonim/blob/master/README.md
One of the best parts. Only it's getting worse with colon-itis.
The mix package manger for Elixir has a release option which compiles and bundles everything to a single binary. It appears possible to use Gleam libraries/code with mix, which should allow one to compile it all down to a single binary as well (though I haven't attempted this myself).
notably though, a release isn’t itself runnable in the same way a go binary artifact is, for example. there are a couple of projects like burrito that create runnable artifacts but in my (limited) experience with them they can be a little finicky.
I don't think that's true, or at least, I'd be surprised that I've never heard of it; it's my understanding that due to the multilayered nature of running Elixir, this is actually difficult to do. I know about Burrito, but that's not the same thing.
How about OCaml? https://ocaml.org/
It's not BEAM-based, though I don't know that any single-file deployment would be either.
I’ve definitely been curious about it! Must have a ton of tooling and libraries at this point.
Roc has some great new ideas while also being inspired by the good stuff out there. But it’s also incredibly new.
Roc has some great new ideas while also being inspired by the good stuff out there. But it’s also incredibly new.
There are a fair number of packages, there is a page on the recently-revised web site. I have started digging back into it myself, after tinkering on and off for some years. The new multicore functionality looks very cool, along with a bunch of the supporting work they've put into the compiler to support it all.
Fervicus(3)