arewewebyet icon indicating copy to clipboard operation
arewewebyet copied to clipboard

Better representing the Rust web ecosystem

Open chris-morgan opened this issue 4 years ago • 4 comments

This has been the widespread feedback when arewewebyet.org has recently landed on /r/rust a couple of times.

The changes made a couple of months ago are extremely misleading, with a few objectively false claims (probably the most significant is that there are multiple mature and production-ready frameworks—actix-web is the closest to mature and production-ready, and it’s an HTTP server library, not a web framework; none of the rest are mature or production-ready). It needs to be rewritten to be far more tentative. The previous text was possibly a little too tentative and modest, but the current text is very seriously overstating the overall ecosystem’s state as any outsider will perceive it. If you’re used to the Ruby, Python or Node.js web ecosystems, you will be sorely disappointed when you come to Rust about how web it is, even if what there is is fast.

Relevant reading with feedback from a number of people:

  • https://old.reddit.com/r/rust/comments/j76xgg/woohoo_milestones_being_made_updated_2_days_ago/
  • https://old.reddit.com/r/rust/comments/jkv7ah/is_rust_web_yet_yes_and_its_freaking_fast/
  • https://blog.0xfa.be/building-a-backend-app-in-rust/ and https://old.reddit.com/r/rust/comments/khhi47/problems_with_building_a_backend_app_in_rust_in/

chris-morgan avatar Dec 21 '20 19:12 chris-morgan

probably the most significant is that there are multiple mature and production-ready frameworks—actix-web is the closest to mature and production-ready, and it’s an HTTP server library, not a web framework;

actix-web is a web framework, not a server library; actix-http is the server library. What makes you think that it is not a framework?

one of the rest are mature or production-ready

Rocket is production ready.

ibraheemdev avatar Dec 21 '20 19:12 ibraheemdev

I or anyone else is not qualified to speak on behalf of the entire ecosystem. This is a pretty important issue, so I think we should get some thoughts from others involved in this space.

ping @SergioBenitez @robjtede @seanmonstar @yoshuawuyts

ibraheemdev avatar Dec 21 '20 20:12 ibraheemdev

actix-web is the closest to mature and production-ready, and it’s an HTTP server library, not a web framework

We consider it a web framework and not a library for good reason. actix-http is the library part in the same way hyper is the library part of the rocket framework.

I think people coming from Node.js (which was my background before Rust) would not be expecting some dominant "application framework" since the big players there (Express, Koa, etc) are on the same level as Actix Web or Warp. My experience with Sails.js (as the name suggests, an attempt at a Ruby-on-Rails-like experience) was dissapointing and I found myself reverting to Koa and the package ecosystem for DB connectors and templating.

In my opinion, creating a framework similar to Rails or Django, with a built in HTML templating, ORM, DB migration system, task scheduler, front-end build tools, admin panels and other such stuff is out of scope for the current "web frameworks" in Rust-land. Folks coming from that ecosystem should learn to embrace using and combining crates. The better comparison would be against Sinatra (Ruby) or Flask (Python).

I don't think we're anywhere close to a useable "application framework" such as Rails (which is how I would classify it). I conjecture that, at present, such an attempt would struggle to keep pace with teams focussed on the individual parts of what will become solutions for real tasks.

Maybe then, there should be some clarity on the scope of what the library and frameworks are trying to achieve, what is in scope for parts of the current ecosystem, and less of an empasis on the overarching "yes" answer presented at the top with more focus on the maturity of components that create developer's apps.

robjtede avatar Dec 21 '20 21:12 robjtede

I think most of the concern was caused by the reference to Rails and Django which I removed. @robjtede 's point can probably be incorporated into the paragraph "While development might not be as smooth as something like Rails or Django...". The headline should also be changed, because assessing an ecosystem based on speed doesn't really make much sense, especially since no benchmarks were referenced.

ibraheemdev avatar Dec 23 '20 16:12 ibraheemdev