Thread with 61 posts

jump to expanded post
mcc , @mcc@mastodon.social
(open profile)

@hikari The "if Rust does it a certain way, it must be right" attitude is infuriating and never more so than when you're actually trying to write Rust. It leads to really shallow thinking about the language.

What's really weird is I've stumbled into interacting with the actual Rust core devs and/or inventors a few times and they're all really nice, humble people who *don't act like this*. You ask about an odd decision & they either talk about complex tradeoffs or are like "oh that was an error"

Open remote post (opens in a new window)
mcc , @mcc@mastodon.social
(open profile)

@hikari Like, I want to be writing Rust, but there are a lot of things in it that come down to "this is a bad thing that was situationally necessary in order to achieve some other goal" and you want to figure out ways to cope with the bad thing and someone's coming along trying to convince you that the bad thing is Good Actually and it's just exhausting and unhelpful.

The only positive thing I can say on this front is I've also interacted with the Go community and they're even worse about this.

Open remote post (opens in a new window)
kulupu jyn , @jyn@tech.lgbt
(open profile)

@hikari @whitequark @mcc i want to write a blog post about this at some point, there's no way to ensure work gets done other than blocking stabilization, so stuff either ends up unstable for years or just never implemented because it looks like too much work github.com/rust-lang/rust/pull

also the rust culture is one of burnout, whole teams are burned out, and so the RFC process is where ideas go to die and you can't get anything done without knowing people personally and spending absurd amounts of time pushing for it yourself

Open remote post (opens in a new window)
mcc , @mcc@mastodon.social
(open profile)

@rf @whitequark @hikari Maybe, but also what I think about a lot is that one of the biggest barriers to making a new language is building a library ecosystem. Like the libraries are at least half of why I want to use Rust or TypeScript.

If I ever do a language project enough it's likely to be built on top of Rust in some way that reuses the ABI just so I don't ever have to learn or expect anyone else to learn a new library ecosystem again.

Open remote post (opens in a new window)
auramarua , @auramarua@mastodon.xyz
(open profile)

@erincandescent @rf @mcc @whitequark @hikari COM's focus on header files and RPC means it has no meaningful notion of in-register ABI, also known as "calling convention". This omission means that where relevant, it simply canonizes C or C++ ABIs.

Decoupling has not been achieved if it does not allow recompiling the same C source to be incompatible with itself without reference to bespoke compiler flags, beyond those in the decoupling mechanism itself.

Open remote post (opens in a new window)
mcc , @mcc@mastodon.social
(open profile)

@hikari @rf @whitequark so like in the case of Rust the language is very tightly coupled to the "ABI" and if you generalized the ABI it would no longer capture what is useful about the language. Part of what's captured in a Rust function call is who is responsible for freeing any given piece of memory. How many languages even have a concept of someone being responsible for freeing memory, much less designating who it is?

Open remote post (opens in a new window)
soc , @soc@chaos.social
(open profile)

@hikari @mcc @rf @whitequark You hit the nail on its head.

I have spent a lot of time thinking about this, and the current approach where every language puts its ABI into their own little defined-by-code silo is a dead end.

There are various existing ideas to look at, though my personal approach is basically saying "ok, what's going to happen if I write my own PT_INTERP?".

Open remote post (opens in a new window)
Andrew Lilley Brinker , @alilleybrinker@hachyderm.io
(open profile)

@whitequark @mcc @hikari Yes!

Also, I think in general we (programmers, culturally) want to believe the technological outcomes are due to *logic* and that the winning things are the best technically.

Surprise, the winning things often win because of outside reasons, and even within them many decisions exist for reasons besides technical ones!

Open remote post (opens in a new window)
soc , @soc@chaos.social
(open profile)

@mcc @hikari I have been doing language design for 15 years, and I still love talking about literally every aspect involved in it.

But I literally never want to deal with Rust people ever again.
Seemingly their only motivation in language design discussions is to defend Rust and to assume that anyone not cloning Rust's approach 100% verbatim just means he/she haven't been crabsplained enough.

#LanguageDesign #rust

Open remote post (opens in a new window)

@mcc i think that attitude might come from the fact that newcomers often recoil at discovering this language is significantly different from ones they're familiar with, and saying something like “no really, this thing is good, please spend a while longer with it, you'll get it eventually” is important for them. but then this mantra gets repeated also at people who've gotten enough experience to really see where things fail. the eternally troublesome context problem

Open thread at this post
mcc , @mcc@mastodon.social
(open profile)

@hikari In my case, one thing that helped me get over that same hump without having to develop cult behaviors was I had spent time around compilers and taken basic steps toward writing my own compiler, so for a number of the early "wtf?" moments in Rust a compiler person went "consider how much easier this makes to write the compiler, and how much harder the compiler would be without it" and I immediately went oh no. oh no. oh noooo I see it now you'll never be able to fix this one :(

Open remote post (opens in a new window)
mcc , @mcc@mastodon.social
(open profile)

@Crell @hikari Although it's true C# *started out* as an exercise in replicating Java with the serial numbers filed off, over time it branched into… replicating *every other* language that was starting to gain traction at any one time. This did end up resulting in the nice property of a language lots of different types of people can feel comfy in, but it's also at times like stumbling around a vast mansion where every room is dark except your own

Open remote post (opens in a new window)