It's all ducks and sunshine until something starts barking.
I'll also add that complexity in programming is just like energy in physics: it cannot be created, nor destroyed, but only transformed. So, if a programming language is simple and can only express very simple concepts, the complexity is going to move from the language constructs to your source code and vice versa. One needs to find a balance here, it's a personal choice based on mindset and experience.
I don't fully agree. Inherent complexity can't be destroyed, but needless incidental complexity can definitely be created if you use the wrong abstractions.
Another goldie from that same video:
I let my threads panic, for fun
Regarding the creation of a self-referential type library:
I'm excited to see what soundness holes I created
By @radekvit on this fine forum.
A rustacean is a programmer that dislikes being told "yes" in situations where they'll regret it later.
by @obi1kenobi on Mastodon
From: Why does `ref` in a function parameter move out of the ownership of the argument? - #39 by CAD97
Place disjointedness analysis projecting through slice indexing truly is the gift that keeps on giving when it comes to weird code being accepted, isn't it.
What?
Yours truly on twitter:
Claiming Rust won't help you because you're doing so many unsafe things is like claiming protective gear won't help you because you're handling so many dangerous substances.
From this toot by Isaac Lyman:
JavaScript is garbage-collected but if you don't think about addresses, reference equality, memory leaks, etc., you write bugs that are hard to fix. You still have to think about memory, but it's invisible.
In Rust, those things are in your face all the time.
(The whole context delivers the point better, but I think it would be too big for a quote.)
From this toot by Jacob Lewallen:
Rust makes programming feel more like solving a puzzle than any other language I've used. I've never trusted a compiler more.
I just want to be convinced before adding a feature that it’s necessary
Herb Sutter in Keynote: The Evolution of C++ - A Typescript for C++ - CppNow 2023.
Even if this quote isn’t directly about Rust I find it a very useful general advice.
The context makes this much better:
In [other languages], I could end up chasing silly bugs and waste time debugging and tracing to find that I made a typo or ran into a language quirk that gave me an unexpected nil pointer. That situation is almost non-existent in Rust, it's just me and the problem. Rust is honest and upfront about its quirks and will yell at you about it before you have a hard to find bug in production.
(just so this post is self-contained: source)
Rusts standard library, and a lot of the popular crates, are like a museum. While it does change, as new exhibitions are added, it is mostly finished. Each painting has a detailed explanation in 7 different languages underneath. Descriptions below each excitation are written beautifully, with detailed drawings, showing how everything works. It is so easy to navigate, one glance at the map is enough to find exactly what you are looking for. It is so convenient, you almost don't notice that you are learning something.
Internals of
rustc
are like a build site of a sprawling factory. You can see the scaffolds everywhere, as more production lines come online, and everything gets faster, better, bigger. Workers move around, knowing the place like the back of their hands. They can glance at the signs on the walls, and instantly tell you: where you are, what this place does and what pitfalls you should avoid. And you are a new hire who has just came for his first day at the new job. You look at the sign, and after some thinking, you too are able to tell roughly in which building you are. The signs almost always tell you what you need, just in short, cryptic sentences. You always can tell what is going on, with some thinking, but it is not effortless. The signs on the walls are not bad, just not written for anyone to get right away.
Is it okay to submit year old quote?
We’re already seeing a shift from a focus on pure language semantics with syntax and editor tooling seen as side projects, to a focus on usability and tooling. Rust is semantically an OCaml with typeclasses, affine types, and unboxed types. What keeps Rust from being an Inria PhD student’s thesis that nobody uses is its focus on tooling, good compiler diagnostics, and ecosystem. I’d like to see some language implementors having that focus from the beginning
source: Tooling for Tooling - , emphasis mine