Why Did you use Rust? Why not writing the entire thing in Flutter? #783
Replies: 7 comments 8 replies
-
I only just came across AppFlowy myself, so I'm not really versed enough to answer this question, but I came across this blog article that talks about the tech stack, which says that "To make the infrastructure layer more portable, we decided to use Rust to implement this layer, not to mention its high performance and memory safety." You can read more here, in what appears to be AppFlowy's official blog: https://blog-appflowy.ghost.io/tech-design-flutter-rust/ Maybe this will help answer your question? |
Beta Was this translation helpful? Give feedback.
-
I don't know about that, thanks for sharing the article, but it's definitely not true, high performance and memory safety aren't a concern for a note-taking app. And flutter is definitely more portable than Rust ever hopes to be in any scenario. Since the core team downvoted my question instead of answering it, it seems that the decision has been made to use Rust and flutter simply because they're the "cool new technologies" out there. Then they wrote an article trying to justify their design decision by writing whatever. |
Beta Was this translation helpful? Give feedback.
-
I agree that "high performance and memory safety" probably wouldn't usually be a big concern for a note taking app frontend, unless... maybe that frontend was doing something like:
For a note taking app backend, where it could eventually be hosted in the cloud with many people accessing it, maybe the high performance aspect would come into need here too? Maybe the thought of eventually moving into those areas could make it worthwhile? |
Beta Was this translation helpful? Give feedback.
-
I'd like to share some relevant information on this thread. |
Beta Was this translation helpful? Give feedback.
-
I have hit significant performance blocks in my experience with Notion. If AppFlowy can surpass those performance bottlenecks of Notion, than I'm super excited about that. |
Beta Was this translation helpful? Give feedback.
-
I think that you must first learn about rust, learn about the real Road-Map of AppFlowy and later give the real opinion about the tech selected. If you can't compile your app to android (from 2017 https://mozilla.github.io/firefox-browser-architecture/experiments/2017-09-21-rust-on-android.html) or use firebase (https://github.com/emreyalvac/firebase-rs) don't blame the development team's decisions, since their approach is not the same as the one you want the app for. |
Beta Was this translation helpful? Give feedback.
-
I see this is an old thread, I'm going to close it with a couple of comments. AppFlowy requires a backend, it cannot be completely developed with Flutter, it's simply not possible. The limitations of such a tech-stack would impose major limitations on AppFlowy. I understand why it would "seem" easier for individuals and smaller teams to rely solely on a backend-as-a-service provider such as Firebase, but it is highly unreasonable to expect an application with a large roadmap and complex features, to rely on such a provider. We always support healthy discussions, and of course we cannot cater to every developers preference, especially when it comes to complexity of our tech-stack and implementations, otherwise it would have a huge impact on AppFlowy, and not a positive one. If there are still any doubts about our tech-stack, and our choices, feel free to open a new discussion, or reach out to us on Discord. |
Beta Was this translation helpful? Give feedback.
-
If you hadn't used rust, I could have built the app for my android device, I could have made it a mobile app very easily.
Also, I could have connected it to firestore and I could have the data there, cross-platform.
But you used Rust, I can't make any of that, and I don't understand why you needed rust in the first place, for a note-taking app. The performance improvements that you gain by using Rust aren't justified for such an app, it's not a business-critical app with multiple concurrent users.
There's no point in using flutter now, the whole selling point about flutter is it is cross-platform, but you use Rust, which means that every time you package it, you have to make platform-specific changes.
The way I see it: you're not gaining anything by using flutter, nor rust, it's not a cross-platform app nor a performance-critical app.
Also whoever wants to contribute by creating new features has to know Rust and flutter to be able to work on the project. Flutter devs can't understand and work on the backend and Rust devs can't understand or work on the frontend.
Since there are very few people who know both languages, there will be fewer people contributing to the project.
You created a technical debt and technology fragmentation for no reason.
Beta Was this translation helpful? Give feedback.
All reactions