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
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…
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.
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?
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.)
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.
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 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.
> 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.
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.
I think you're misunderstanding here. We have very robust mechanisms for dealing with conflict and we have been successfully employing them for years. We have also consulted with moderators of much larger communities and very confident with how it is going.
Not sure what you mean about the Elm remark. They took the approach you're advocating for and have seen less success than we have financially and in terms of community growth metrics.
You must have missed when Elm was you [0]. They had far more excitement than you currently do and it lasted a few years.
And they didn't take the approach I'm advocating for (though they didn't take yours either). Their conflict management approach was "we do what Evan says". I'm not saying you're making their mistakes, I'm offering them as a cautionary tale—language success can be fleeting.
> We have very robust mechanisms for dealing with conflict and we have been successfully employing them for years.
If I'm understanding the approach correctly it's basically "we delete it". Feel free to elaborate if that's not what you meant.
> have seen less success than we have financially and in terms of community growth metrics.
You're barely starting to pick up speed, and there are so many ways left for you to fail. Much of your recent growth is due to Elixir starting to implement types but not having really arrived yet—sparking interest in the competitor who already has them. How long do you think you can ride that wave?
You've come off in this thread as rather arrogant and self assured, which are good traits for a lone wolf but dangerous traits for a community leader. I've been on the fence on whether to adopt Gleam, but I've honestly seen enough here to know that it's not worth investing the time right now. You may course correct and save the project, but the way you talk about your success as though it's something you achieved in the past through your own efforts doesn't make me think it's likely.
You've also likely seen enough of me to know that I'm not someone you'd want in your community, so I'm content at this point to part paths amicably.
I'm sorry but I don't think you're right here, I've not detected any increase in any Gleam growth metrics when Elixir type related things happen.
If anything we see Elixir have a bump when big things happen in the Gleam world, such as their GitHub start count increasing when Gleam v1 went viral.
I do agree though that we're only just picking up speed! Watch this space!
> 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.
> 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.
The guy whose writings the american right loves and quotes constantly? IDK how he views himself. But his argument is a modern variant on "the weakness/degeneracy of contemporary youth" which has an inherently reactionary heart.
Your way of thinking is so... polar. Does everyone need to be sorted into progressive or reactionary? Could concern for the state of youth be simply a humane reaction to the doubling of teen suicide rates [0]?
Are you really going to ignore the calls of 'fire' just because some reactionaries cried 'fire' in the past?
I think the political right likes to quote Haidt slightly more than the left because the right is slightly less prone to blindness about this issue than the left—their priors line up. But that doesn't exclude willful blindness on the part of the left—sometimes the youth really are in crisis, and there's a lot of evidence that our natural antifragility is the problem.
FWIW I don't even neatly fit into progressive or reactionary: I'm deeply religious and it's not one of the accommodating ones. So I'm sympathetic to the right wing view on this, holding it to a significant extent myself.
I'm not dismissing this position because of similarity to other reactionary movements in the past, I'm rejecting it because of how this reactionary movement is using it to mobilize a revanchist assault on the rights of minorities, women, queer people. An issue that "rational centrists" like Haidt and the general consensus of HN commenters certainly seem blind to and sanguine about their part in.
We can't just abandon teens to suicide because right-wing revanchists use the same data to attack other teens. That's exactly the kind of dodging of uncomfortable truths that I'm concerned about—we plug our ears and pretend it isn't happening so as not to hurt one group of people. Because we can't deal with the dissonance everyone gets hurt.
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.
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.
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.
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
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.
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.
It's a shame that we can't have a reasonable conversation about gender and mental health anymore without it offending someone or other.
"Trans rights are human rights" is a perfectly reasonable statement if what is meant is that trans people are entitled to every human right. It's a dangerous call for groupthink if what is meant is "the right to gender-affirming care is a human right".
One can be both a deeply caring person who views trans people as people who deserve love and respect and also be wary of running headlong after politically-driven healthcare practices that, when looked at critically, seem to do more harm than good. But even saying that immediately makes me a far-right neonazi as far as many in communities like Gleam's are concerned, and that's where I share OP's discomfort with the language.
It's unhelpful to ostracize large numbers of good, generous people from your community because they have science-based reservations about how to best help certain members of our society.
Edit: As expected, immediately flagged. The groupthink is real and it's dangerous. People are already getting hurt, and silencing calls for moderation is not helping, it's making things worse.
Agreed, though I think when people advocate for "trans rights are human rights" it's almost always also about the "right" to access spaces that were intended for the sole use of the opposite sex - which isn't a human right either.