Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Java has servlets and Spring. Go has net/http. Ruby has Rails. Python has Django and Flask. C++ has ASIO and gRPC.

Rust belongs with the above but it has...checks notes...actix-web which was run by one guy who ragequit and apparently no one else is capable of taking the reins.



Servlets are not in standard library (and it's not even library, it's a specification). Standard Java has HTTPURLConnection which is sometimes used and com.sun.net.httpserver which is not used by anyone. Spring is not in standard library either.

Also you forgot netty which is best Java networking library nowadays.

Java is a good example why batteries-included standard library is a bad idea. The fact that Java keeps reinventing things (Old I/O -> New I/O, Newer I/O; java.util.Date -> java.time.*; File -> Path are just a few examples) also proves that point.

Standard library must contain fundamental interfaces which are required by most libraries to interoperate with user code and with other libraries. String type is used everywhere, so standard library must contain String type, otherwise people will invent QString, CString, Glib::ustring and billion other string which do not interoperate with each other, so instead of writing useful code you'll convert one string to another. Array, Set, Map are used everywhere as well, so standard library should provide those interfaces. Filesystem paths, streams are useful. And similar things. But not big libraries like HTTP library. They should be implemented as independent projects, so the best one wins.


> Servlets are not in standard library (and it's not even library, it's a specification). Standard Java has HTTPURLConnection which is sometimes used and com.sun.net.httpserver which is not used by anyone. Spring is not in standard library either.

You're arguing against a strawman. These things are not in the standard library, but the ecosystem builds around them, and there are published JSRs that define the interfaces for foundational libraries (including both servlets and DI - of which Spring is just one of many compatible implementations).

No-one's arguing that Rust should have a web framework in the language standard library (I hope). But there should be one or more established options that the rest of the ecosystem knows about and interoperates with.


When people make example of Go, they certainly want web framework in the language standard library.


Not true, he passed the reins: https://github.com/actix/actix-web/issues/1289


Warp, Hyper, Rocket... Actix isn't the only game in town, or even the most popular one.


Popularity among whom? The hobbyists? I program professionally with Rust and that entails a lot of web development. Actix-web remains the most comprehensive, vetted solution.

You can't compare a general use networking server such as hyper with actix-web. Hyper is used for a much broader range of scenarios than just web development.

I truly hope that programmers continue to broaden the ecosystem, but progress has been slow.


Rust has Hyper, and Rocket (https://rocket.rs/). Async version that runs on stable rust coming soon.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: