If you're like me and moved off from Ruby to Rust as your go-to-everything, try Loco which tries to be a faithful Rails on Rust (loco.rs). It has the magical scaffold, the smooth experience, and the features you'd expect from Rails including authentication built in (like Devise).
I just went over the Github and home page. This sounds like the sort of thing I'd be interested in, as my general go-to language is rust (For PC applications, embedded etc), but I still use python for web due to Django's comprehensive toolkit (Which Rails also has). I don't think I can stomach Async rust, which appears to be tightly integrated into Loco. (A side effect of Hyper and most of the rust web ecosystem being Async?)
We definitely try our best to match the Rails experience. Being that the experience is not something you can just have as a side effect.
We build stuff into Loco that Rails has, try it out, then decide if it's "Railsy" enough in the experience. If it's not, we delete it and try again.
I'm a Rails superfan personally, however as life turned out to me, I like Rust much more than I like Ruby. So the decision was to go "loco" and implement Rails for Rust.
We're looking for more feedback and people to try out Loco, please feel free to do so :-)
Great description of the problem. I enjoyed reading it, it’s almost like prose, great writing.
The solution I’m afraid is only one: solve smaller problems. There is no way a single person can solve a team’s problem as a side project. A small problem does not mean small codebase. It means small as in: focused, simple pain, simple solution, low amount of open questions.
Yes there is value to all of the other strategies mentioned. But if you want the root cause and the solution for this hydra effect it is the one I mentioned.
If you were born anywhere in the 80s, you might have spent the 90s and early 00s building side projects that you actually finished and felt no remorse over. That’s because scope was naturally small, problems were more focused, and there were multiple order of magnitude less options to choose from (in any domain: programming languages, libraries, interfaces, user flows, business workflows — everything was less)
> and there were multiple order of magnitude less options to choose from
So true. I remember downloading a bunch of stuff to do some Perl development on Windows 98. About 3MB of files IIRC that took forever to download on my dialup connection. Yet, it was so much easier to focus, basically because there weren't many other options and the .chm files that accompanied the interpreter could keep me busy for hours during the week.
Sometimes I try to reproduce that environment by limiting my own options in terms of technologies and learning resources. Probably not the most efficient way to get stuff done, but I find it more sustainable long-term.
Thanks!
We much prefer to have had Rails' activerecord, but activerecord has hundreds of person-years (maybe thousands?). So what we found was the best for the current lifespan of Rust and its ORM ecosystem
We're looking at Yew and Dioxus but kind of deciding to not decide yet. Frontend carries a lot of alternatives and generally brings in heavy discussions
Author here.
Thanks! I think Rails is still great these days. If someone can afford doing Ruby, they should definitely stick to Rails.
However if you're into Rust, this is the best I could do that is as similar to Rails but can preserve some of Rust's strictness
What I hate about this document is part of a bigger problem I see with the Python community.
It's written like a hate letter with a passive aggressive tone of finger pointing towards users of Python as the source of the never-ending Python 2-3 split. It says, between the lines: "YOU are part of the problem, stop using Python 2. We don't care about YOU anymore. Stop using Python 2".
I can think of ten other different ways to be more constructive and, generally, nice.
Whats the pythonic way to do dependencies? pip? pipenv? virtualenv? pyproject?
And how about Python 2 and 3?
</Sarcasm>
But seriously, I think there's no one way to do things anymore especially if it holds up productivity and effectiveness. Let the pattern matching begin.