He basically just described the FCIS[0] architecture—the same one Gary Bernhart laid out thirteen years ago. We love reinventing the wheel. Chaplicki did it with ELM, Abramov with Redux, day8 did it with re-frame, and the beat goes on.
I’m still amazed it isn’t obvious: every piece of software should be a black box with a pin-hole for input and an even tinier pin-hole for output. The best code I’ve ever touched worked exactly like that and maintaining it was a pleasure, everything else was garbage. I push this rule in every project I touch.
"The Unaccountability Machine" does a great job summarizing the thought of Stafford Beer, who explained basically exactly what you said as the only viable strategy for designing and managing complex systems.
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.
Yeah, like not spending your every penny on poor is accepting a misery.
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.
> Sure but 'not giving a shit' means accepting Nazism.
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.
> It's impossible to prevent people who you disagree with from using a language
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.
I just want to point out, this conversation has been had over and over, on HN, in the Gleam Discord, and I'm sure in many other places as well - always spurred by the same statement on the Gleam website.
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.
I don't believe even a little bit the success of the community has anything to do with this sentence on the website. The success of the community belongs to the relentless hard work of Louis et al.
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.
Your metrics for community success might be misaligned with those of the community stewards.
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.
I think it's valuable for the leaders of a community to make it clear what kind of a community they're trying to build. If you think being anti-Nazi is like, "woke nonsense," then you know that the Gleam community is not going to be for you.
Does that prevent a Nazi from using Gleam? No. But the actual objective is to set the tone.
I think your parent comment is citing that as an example of why livebench is no longer a good benchmark. That said, the new Flash is very good for what it is, and IMO after the Pro 05-06 nerfs the two models are much closer in performance for many tasks than they really should be — Pro should be / was way better (RIP 03-25 release). That livebench result may be wrong about the specific ranking, but I think it's right that Flash is in the same class of coding strength as Sonnet 3.7.
> do you prefer to do everything via IM, or would you prefer a phone call?
It's hard for me to believe that there are psychopaths among us who prefer call on the phone, slack huddle or even organize meetings instead of just calmly writing messages on IM over coffee.
Go's approach to async programming is indeed simpler, but its FFI and handling of stateful coroutines can introduce complexity and overhead when bridging with external code. Using CGO is slow because it requires synchronization of the coroutine state between libc and Go. Everyone avoids CGO whenever possible, so it is not a solution.
Rust chose a different path that is not more complex, but the complexity lies elsewhere.
Just an extra bit of clarity: the relative slowness of CGo calls is a conscious trade-off that enables Go threads to be much lighter weight. It's not an inherent aspect of the design, but a trade-off you pay for wanting more lightweight green threads. Choosing to not follow the age old C ABI internally means you have to bridge that gap if and when you come to it.
Helix is a very good and well-managed project, but it's quite hostile towards its own community. There are no plugins, and they won't be in Wasm like users want, but in Scheme dialect named Steel, that nobody want... if at all. Missing features like copilot or file browser expected by the community are essentially never merged into the master. This might be a better path than total dispersion and destruction of what works, but my expectations do not align with what the creators offer, so I give them the freedom to choose. I keep my fingers crossed for its development, but I personally use something else.
Copilot has many fans, and for many, the ability to use Copilot is more important than all the other "batteries-included" features. It's not for me or anyone else to judge. Everyone should make their own choices.
Regarding plugins, I'm with Helix from the beginning, i have read everything, and I understand the motivation well and can accept it. Perhaps this is what the ideal editor looks like for creators, but it definitely doesn't look like the ideal editor for me. I respect their decision, but I'm sticking with Neovim and might switch to ZED when Linux support becomes available.
Why do you consider switching to ZED from Neovim? ZED is lightyears away from a good Neovim setup in terms of functionality and efficiency. The problem with Neovim is the setup and config to do all, but you already mastered it.
Generally agreed, but in the editor space that's where plugins come into play. The plugin story for Helix is a long one, but I think it's converging and bet it's coming within this year.