[a] https://www.nobelprize.org/uploads/2024/11/advanced-physicsp...
[a] https://www.nobelprize.org/uploads/2024/11/advanced-physicsp...
For vector valued functions, the naive way you would learn in a vector calculus class corresponds to forward mode AD.
So... Automatic integration?
Proportional, integrative, derivative. A PID loop sure sounds like what they're talking about.
It has a lot more overhead than regular forwards mode autodiff because you need to cache values from running the function and refer back to them in reverse order, but the advantage is that for function with many many inputs and very few outputs (i.e. the classic example is calculating the gradient of a scalar function in a high dimensional space like for gradient descent), it is algorithmically more efficient and requires only one pass through the primal function.
On the other hand, traditional forwards mode derivatives are most efficient for functions with very few inputs, but many outputs. It's essentially a duality relationship.
I don't think that was ever the intent behind the borrow checker but it is definitely an outcome.
So yes, the borrow checker makes some code more awkward than it would be in GC languages, but the benefits are easily worth it and they stretch far beyond memory safety.
Without something like that, I think it just would have been impossible for Rust to gain enough momentum, and also attract the sort of people that made its culture what it is.
Otherwise, IMO Rust would have ended up just like D, a language that few people have ever used, but most people who have heard of it will say "apparently it's a better safer C++, but I'm not going to switch because I can technically do all that stuff in C++"
Order taking via drive through can be surprisingly hard.
* Often lots of background noise
* Sometimes multiple people try to order (often with one of those being way away from the mic)
* People don't always know exactly what they want or what it's called. Sometimes things have a regional or local name that's not on the board. Right now, I order a "$5 meal deal at McDonals". This is often not listed on the board and it's not called "$5 meal deal" - but literally every cashier knows exactly what I'm talking about. I doubt AI would figure this out.
* People often have custom requests that don't follow the "official menu".
* The actual food ticketing system that gets sent to the grill has significant limitations in resolution. If you're doing anything other than a basic deletion, it's likely just coming through to the grill as "ask me".
* It's extremely hard to handle edge cases like makeup meals, incorrect orders, coupons, etc. These generally require human judgement and a bit of contextual understanding. Generally, these are things you only understand by actually looking at the real world. For example, is there an unaccounted burger now sitting at the end of the grill line - looks like someone grabbed the wrong food.
* Human cashiers are really good at hearing someone shoutout something like "ice cream machine is down" or "hold on fries" or "we're out of chicken" or "no fire sauce" and understanding what the means in terms of orders. It's a pain to get an AI system to be able to understand all of this nuance.