Tell me, please, we want to build a CRM for hiring process optimization, the system has standard objects, functions and integrations. I would like to see a minimum working version in 4-5 months. Is it possible to build on Rust? Some developers say that it is better to choose a different stack. What are the pros and cons in a nutshell?
Thanks everyone for response
Disclaimer: this post is completely based on my own subjective experience with Rust and I don't claim that this post is of any objective value. This is just personal opinion. For context on why I think my opinion could be helpful: I've spent the last two years developing a b2b insurance sales platform with a microservice backend written in Rust. While not a CRM, I'd categorize both as enterprise software. Therefore I believe there are similarities when it comes to the technical difficulties.
There are two concerns I'd raise before considering any technology for a software project that starts from scratch:
- What's your expertise? Do your devs know Rust (maybe developed some side projects with it) or did they hear it's a cool new language and want to try it out (for the first time)?
- A language itself doesn't really make a stack in modern application development any more. What are the other technologies you want/have to use? Like databases, hosting, 3rd party systems, etc.
The questions I asked above basically lead to the two contras against using Rust for a medium-sized enterprise project like a small CRM:
- In case you have little or no prior experience with Rust: Rust has a steep learning curve. It simply takes time to get used to Rust's ownership model
- Rust is a relatively young language. The ecosystem is very good and very active, but you may encounter rough edges when it comes to integrating with other technologies that have better support in other languages. I'm thinking of clients for common enterprise software tools like databases, message queues, big data/data analytics tools, authentication servers, etc. I don't say it will be likely, but I had to build one or two workarounds in the past that I feel like I would have gotten from other languages (more common in enterprise software like .NET, Java, Python, Typescript, etc.) out of the box (simply because their ecosystem is older and more evolved)
Now to the part I really wanted to write. I find application development in Rust a pure and utter treat. In fact, Rust has spoiled me so rotten that I find it hard to use other languages theses days, simply because all I can see is how Rust is better suited to do the job (which is a really bad attitude to have as a young freelancer still scrambling to get paying gigs ). I can absolutely recommend giving Rust a fair shot.
In two years developing and running Rust-based services I never encountered an unexpected runtime error. I trust my code completely, something I really can't say about my previous endeavours developing backend stuff in JS/TS or Python. Also, I can rely heavily on Rust's type system, which makes life very easy for me. You can do CRUD stuff in very few lines of code and RESTful interfaces are created in a blaze. Also, I have surprisingly little business logic to write, because I can leverage the type system to do most of the work.
Also, I consider the tooling to be superb. Cargo, rust-analyzer, clippy, rustdoc, etc. are all very useful tools other languages don't necessarily have (to the same degree of usefulness). Whenever someone mentions GitHub copilot or ChatGPT and how this will change how we develop software, I roll my eyes. I already have a copilot and it's called rustc. The compiler tells you exactly what is going on and where you made a mistake. Many (most) errors are caught during compile time and that will make your life so much easier.
This topic was automatically closed 90 days after the last reply. We invite you to open a new topic if you have further questions or comments.