Rocket seems like a really impressive piece of work.
Yet, I decided against using it when I looked it a while ago due to all the rocketry references. The cognitive overhead of translating between punny rocketry names to their actual concepts just became too much, especially while trying to learn. You don’t “start” the “server”; you “launch” the “rocket”. You don’t have “middleware”; you have “fairings” (an analogy which I don’t really understand even with the knowledge of what a middleware is and what a fairing is). You end up with really weird nonsensical combinations of words, for example you have the “shield fairing” instead of the “security middleware”. Instead of your server being up and ready for incoming connections, your “rocket” is in “orbit”.
I assume Rocket is great for a lot of people. I may even come back to it at some point. But I don’t think it’s doing itself any favors in terms of learnability with these terms.
This pretty much made me never understand homebrew in depth. I’ll do it one day if I have to, but between kegs, bottles, tapping, … I lost interest in it apart from a being a tool I can’t avoid.
I 100% agree. I sometimes read “how to install X with Homebrew” guides, and I feel completely helpless when they ask me to pour a bottle, tap a keg and brew a cask or whatever. I usually prefer to actually understand the commands I’m running, but Homebrew reduces me to blindly copy/pasting into the terminal because I literally don’t even understand the words used by the commands.
It’s a bit similar with Python’s wheels and eggs, but at least pip uses normal verbs with weird nouns rather than punny themed verbs and nouns.
Happy macports user here, maybe give it a try
I find MacPorts is a lot more tasteful/better mouthfeel, but some of the packages aren’t as well maintained, unfortunately.
The things I depend on work pretty well, but I know what you mean. I have also contributed some patches and the process is okay, but the TCL based language is def. a strange thing to work with
I couldn’t agree more! I worked for a company that had an internal tool with names like that and it was obnoxious. I didn’t work on the tool, I just had to use it occasionally, and every time I did, I needed to re-learn which terms mapped to which concepts. Barf.
The problem with inside jokes is that they’re only funny to insiders. This is much the same.
If there are cargo and crates, why not rockets and fairings? I lost count to the number of times I mis-typed “crate” as “create”.
I always wonder if whoever came up with the cargo/crate terminology in retrospect think this probably caused more unnecessary confusion (and mis-typing) than it’s worth and more traditional terminology, such as package instead of crate and something like rustp (for Rust package manager, by analogy with rustc) instead of cargo, would have been a better (if boring) way to do it?
I get your point, but in using cargo the actual only thing I needed to remember was “crate is the word for module/package”. That’s hardly a fair comparison.
Thankfully it’s cargo run and not cargo load or anything like that.
Agreed. It’s cute, but painful. I do hope they rethink their terminology.
Rocket is definitely my favorite rust web framework. It’s super easy to get started with and I find that it’s a very productive environment for building APIs and web app backends. I love the batteries-included database support, their good support of types for routes, their middleware system (“fairings”), and pretty much everything else about the framework.
Its recent addition of support for async was the only thing missing for me to go back to using it as my first choice. A few things with that still feel a bit clunky like using a blocking database client from a non-blocking route, but that’s more a problem with the rust async/blocking clash and the fact that the database ORM I normally use (diesel) doesn’t support async.
I highly recommend Rocket to anyone looking to build APIs or web application backends in Rust.
I always read interesting articles to start my day. Today, I am very surprised that my name is on the article. 🤯
Thanks for the credit.
Rocket is impressive but it always feels a bit too heavyweight and opinionated to me. I tend to use warp, which isn’t perfect but fits better with how I like to structure web applications.
Well-written, informative article. Thanks.