> 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.
This is some "critical theory" nonsense. The real world isn't divided into two camps, "those actively for" and "those actively against". You can, and should, just go about your life.
You'll live a happier, more mentally-healthy life by just ignoring the noise and not getting pulled into some sort of "if you're not with us, you're against us" thing.
Gleam is a language, and just like all languages - be it English, Spanish, C++, Python, musical notes, and more - both agreeable and disagreeable people will use it. It's impossible to prevent people who you disagree with from using a language. There's no point in even trying - all you succeed in doing is giving yourself mental grief, anxiety and hardship.
Just do your thing...
Does that prevent a Nazi from using Gleam? No. But the actual objective is to set the tone.
True, but the message on the website starts with "As a community...", and speaks to participation in the Gleam community, not the usage of Gleam as a language. And participation within a community _can_ be prevented by its stewards.
So instead of discussing one of the most beautiful programming languages ever created, we're discussing politics, virtues, and wannabe Nazis. Because of a single sentence on the website...
I don't care either way, but it is notable how distracting that seemingly innocuous statement has become.
Could the community goals not be accomplished in a possibly less divisive way? The first part of the community statement seems entirely sufficient to me.
So, while I don't care and will continue to use Gleam regardless, it does seem to me that greeting curious potential new users with any particular brand of politics (righteous or not) is possibly antithetical to the goals of the language.
> greeting curious potential new users with any particular brand of politics (righteous or not) is possibly antithetical to the goals of the language
But it might be an important goal for the community.
The sentence is a source of continuous friction between the language, community, and public. It just seems so... unnecessary.
Half of this thread was consumed with people discussing politics and virtues instead of the v1.12 release - that is a pretty large problem for the language, objectively.
When people google Gleam, they'll find pages/discussions like this instead of people discussing the merits of certain syntax or libraries, new features and the like.
There's a reason most businesses/organizations don't engage in politics... even if the founders have very strong political views.
There's more room for interpretation in "all backgrounds, genders, and experience levels are welcome and respected equally" than with the explicit stated support for BLM, trans rights, and anti-nazi ideologies. Room for interpretation on codes of conduct make for more moderation work, allowing more undesirable behaviours to crop up.
> There's a reason most businesses/organizations don't engage in politics... even if the founders have very strong political views
Yes, but that might not be the goals of the Gleam stewards. Maybe they would rather take a moral stance even if it hurts Gleam's reach.
In The Good Place, a brilliant show, there’s a great scene where we find out why people stopped getting into the "Good Place" after they died. Life used to be simple before: if you bought your wife a flower, it was a straightforward good deed. Now every action is tainted, because the CEO of the flower company employs child labor, cheats on his wife, and murders bees with pesticides. Ah, and he is an nazi.
No, that’s not how it is at all. Nobody is obligated to give a damn. Not fighting isn’t the same as supporting, and that’s the biggest lie that has thoroughly fucked this world. It’s the exact opposite: only not giving a shit can still save it.
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".
Isn't there something more interesting we can talk about?
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.
[1] https://gleam.run/frequently-asked-questions/#will-gleam-hav...
Golang for the longest time had no generics. Now it doesn’t have sum types.
When you try to build something truly complex like a compiler, you’ll see the abstractions start to screw up because can’t use interfaces in gleam.
Alupis•6mo ago
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...
steve_adams_86•6mo ago
Alupis•6mo ago
I've exclusively used the BEAM/Erlang target so far - but the js community within Gleam seems quite interesting.
steve_adams_86•6mo ago
giraffe_lady•6mo ago
anon3459•6mo ago
giraffe_lady•6mo ago
fpauser•6mo ago
giacomocava•6mo ago
ZpJuUuNaQ5•6mo ago
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.
lpil•6mo ago
The two languages are almost the same at the value level, so code should translate across well.
Alupis•6mo ago
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•6mo ago
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•6mo ago
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.
lpil•6mo ago
zem•6mo ago
innocentoldguy•6mo ago
chamomeal•6mo ago
Alupis•6mo ago
Gleam also has an OTP implementation[1] available, which includes Actors and the like. My understanding is that every BEAM language must implement OTP themselves, so there's nothing unusual here.
[1] https://hexdocs.pm/gleam_otp/
innocentoldguy•5mo ago
innocentoldguy•5mo ago
• Lacks support for named processes.
• Has limited actor abstractions.
• Doesn't support OTP system messages.
• Has implemented supervisors in a way that can lead to improper shutdowns, data loss, and deviations from the expected BEAM behavior.
• Doesn't support pattern matching directly in function definitions. Instead, it requires you to use case statements.
• Doesn't support global mutable variables because it has no way to track variable types and state changes when BEAM modifies these variables, which is one of the hallmark features of BEAM.
• Doesn't support hot code reloading.
All of these features, which are readily available in Erlang and Elixir, are far more important to me than static typing. I've used statically typed languages like C, C++, C#, and Java, and dynamically typed languages like Python, Ruby, and Elixir throughout my 30+ years career. I've never once lamented not having static types, nor have I ever jumped for joy when I do. For me, static vs. dynamic typing is largely irrelevant and doesn't affect my work one way or the other.
thijsvandien•6mo ago
Alupis•6mo ago
The beauty here is being compelled to handle both the happy and sad paths. You cannot just pretend the sad path doesn't exist.
samdoesnothing•6mo ago
wavemode•6mo ago
samdoesnothing•6mo ago
debugnik•6mo ago
[1]: https://gleam.run/news/v0.25-introducing-use-expressions/
bmacho•6mo ago
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.
smithcoin•6mo ago
no_wizard•6mo ago
Perhaps its because I deal in TypeScript all day, every day, but it never stuck with me.
That said, small price to pay for a very nice runtime!
Alupis•6mo ago
Switching to snake_case was challenging at first - I kept writing things in camelCase. Now, I've become pretty fond of snake_case and have a tough time going back into environments that require camelCase - funny thing, that is.
Thankfully Gleam's build tool/language server has a fairly strongly opinionated formatter built in, so it will let you know pretty quickly and help you fix it.
zelphirkalt•6mo ago
__jonas•6mo ago
https://github.com/sveltejs/svelte/issues/3479#issuecomment-...
plainOldText•6mo ago
Your brain can instantly tell what entity you’re dealing with.