The only reason to do this is if you're directly integrated Rust into an existing build system (e.g. Bazel). It's not going to help with this problem at all.
Yeah it's clearly more than just experience. It's at least experience + actually learning + actually caring. I wouldn't rule out natural talent either, though I have seen plenty of smart people with poor programming taste.
For example I worked on a C++ SDK where the guy that wrote it was clearly very smart... But he had also written an enormous god object using CRTP to inherit about 20 classes. The aim was to make it somehow modular, but it absolutely wasn't. Clearly poor taste.
Maybe it's like religion. There are plenty of very smart people that believe in an imaginary friend. It's almost orthogonal to "smartness". Maybe taste is the same.
I mean, sure... But for most users of GitHub actions "it's easy and free" is a huge benefit, easily outweighing any technical advantages Buildkite might have.
I would teach Typescript. Being able to write the types down and hover things to see what types they are will definitely help them.
I think C would put them off. I also wouldn't go with Python, in case they want to do things like write games or make websites, which are common tasks you can do with Typescript but not very well with Python.
ORMs are a pain and so is hand rolling SQL queries and doing the mapping manually.
I definitely think there's scope for NoSQL databases where the database "shape" matches the normal struct style of programming languages. Kind of like how JSON does and XML doesn't.
But it seems like all we got was MongoDB and Firebase which are both shit.
Are there any good NoSQL databases? MongoDB and Firebase don't even have schemas.
I always like "by example"s for learning languages - here's Rust's.
I'd probably make a project with it. Maybe a CLI tool using clap_derive and some crate that does something neat that you want to do. Depends what you're interested in I guess.
I wouldn't recommend trying to do leetcode problems with Rust because they are obsessed with linked lists and linked lists are awkward in Rust.
Also I wouldn't recommend making a game or GUI app with Rust yet since the ecosystems there are immature.
A microcontroller project using Embassy is probably a fun way to learn too but I haven't actually tried it yet.
Well they're open source so we're not losing them yet. Especially with uv, it's pretty clear that it is such a vast improvement over the clusterfuck of pip that a community fork is virtually guaranteed if it is ever necessary.
Yeah I think the reputation was probably deserved early in Rust's life, but as time has gone on it has gotten a lot easier to write, especially with the non-lexical lifetimes update 3 years ago.
It's better than nothing but it really only drags Bash from "your code is definitely horribly broken" to "your code is probably broken". Nothing like Rust!
Yeah I know, but if you really mean that analogy then the conclusion is that the normal thing for 99% of programmers to do should be to use AI. In the same way that 99% of people do not get around by running.
I don't agree with that yet - so far I've found AI to be a very fast but mediocre programmer. Kind of like giving a beginner access to all the documentation and a time machine. Sometimes that's exactly what you want. But definitely not most of the time.
But I do feel like the analogies aren't that great. Coding in notepad instead of an IDE is dumb because IDEs work and don't really have any downsides. AI mostly seems to produce slop that barely works without a ton of cajoling.
modern C++ facilities do make a difference to prevalence of bugs.
This is true, but just saying "write modern C++!" doesn't actually work in practice. First, there are a ton of footguns that even best-practice C++ doesn't avoid. Using std::shared_ptr? Great, you're probably going to avoid memory leaks. Null pointer dereference? Not so much. What's the modern C++ way to avoid integer overflow?
Second, it's pretty much impossible to completely avoid raw pointers etc. even if you're trying, and good luck getting your colleagues to actually try. I can't even get mine to write proper commit messages. You need a machine forcing them to do it properly. Something they can't opt out of (or at least where opting out isn't the easy lazy option).
So yeah it's better to use modern C++ and it is an improvement, but not enough the change the conclusion that you should just use Rust instead.
The only reason to do this is if you're directly integrated Rust into an existing build system (e.g. Bazel). It's not going to help with this problem at all.