Rust in a web dev shop would be a huge premature optimzation smell for me.
Most public web apps are expected to be up pretty much all of the time, which today, means cloud hosting and horizontally scalable architecture. In such a setup, I don't see how squeezing every last drop of performance is worth it. When I can just change a number and get more instances, choosing the language with higher cognitive load is going reduce any cost savings due to lower resource usage.
Doing something as mundane as writing text to a socket just doesn't need to perform all that well. Developer effort costs more than the CPU/memory.
Performance isn't Rust's only feature. I would say it isn't even its most important one.
I've written websites with Rust simply because it's a sane modern language with few "gotchas" and a type system and borrowing system that allows you to eliminate huge classes of bugs (not just memory errors!)
That said I think the Rust web ecosystem is not super mature (especially client side) and most web frameworks use `async` which is one of the sketchiest parts of Rust IMO. So I don't think it would be entirely unreasonable to use something else. Especially Typescript, for the SSR/isomorphic apps.
Java's type safety is far far weaker than Rust's and it doesn't have the borrowing system, so you don't get the "if it compiles it works" experience you do in Rust and (so I'm told) Haskell.
It does have a very mature server side web ecosystem so it's a perfectly reasonable option. I've written Java web servers before and it was fine.
I wouldn't use it for client side though (a la GWT). Debugging nightmare.
I guess what's implicit in my attitude is that I think Rust introduces cognitive load that other (especially garbage-collected) languages do. There has to be enough of a win gotten to offset that. I used performance as the most likely reason I could think of.
I keep looking for something really special for writing web applications using rust. Is there something on the horizon? It seems like rust on the server side is an easy decision but I'm unclear if there is a way rust could replace nodejs as the isomorphic application language on both server and browser.
Clojure and ClojureScript was such an interesting way to bring lisp into the browser and seemed really revolutionary. And without really limitations on what you could build. Where is the rust version of that?
The bummer is that the main reasons I would want my company to adopt Rust are 1) the toolchain and 2) the type system (we're on Python, which has the worst story imaginable for both of these). But most of the pain in learning and using Rust comes from its performance characteristics, which we mostly don't need
It's definitely an upgrade over Python. I remember learning Go and saw "type Foo struct { ... }" and was sure this meant the language had algebraic data types and pattern matching and all that fun stuff. It didn't. It was fine.
Where Rust excels is in safety when using concurrency. Most web apps and APIs have a single thread used per request. I've also used async/futures that work fine without ownership modelling.
As for performance switching from Ruby/Python to Java/C#/Go will pay off not so much to then go to Rust unless it's a particularly high throughput or latency zensitive app in which case you'd already know it matters.
Most public web apps are expected to be up pretty much all of the time, which today, means cloud hosting and horizontally scalable architecture. In such a setup, I don't see how squeezing every last drop of performance is worth it. When I can just change a number and get more instances, choosing the language with higher cognitive load is going reduce any cost savings due to lower resource usage.
Doing something as mundane as writing text to a socket just doesn't need to perform all that well. Developer effort costs more than the CPU/memory.