Rust as high level language such as java/kotlin
Hi rust community!
I'm here because I'm looking for a new language to learn. But I'm unsure if rust language fits usecases i daily try to solve.
Now i'm a little Kotlin developer. Mainly i develop tested microservice with Spingboot and RabbitMQ.
I'm pretty read about Rust, if i miss understood something, please correct me:
- Rust is a language with the main purpose to write high performance and safe software thanks to amazing static verifications at compile time;
- Borrow checker, ownership, and life time concepts permits to Rust to be a no garbage collected language and safe to write concurrent programs;
- Parts of the language design is inspired by the most pragmatic parts of functional programming that promote code reuse, immutability, avoid global states and side effects;
- The tooling like Cargo is modern, up and running, simply works without crazy configurations;
- Rust is a compiled language and binary standalone programs are easy to deploy.
And now my questions:
Can Rust be used with the intent to write software that not have hard performance constraint?
Is Rust suitable if your daily needs are just write, well tested, clean, readable and maintainable code?
What involve using rust only for high level development?
What are advantages and disadvantages of this?
Do you have experience putting in production an only business logic focused program written in rust?
In this context, what characteristics does Rust have that a static typed language as Kotlin does not have? What can i learn from Rust?
In your vision, in the future of software development, is it a valuable skill for a product-oriented developer to know low-level details? Do you recommend Rust as the right compromise to improve in both things? or would you recommend in something more widely used and high level like Python?
Example of cons:
Does involve risks to have more verbose and boilerplate code?
Does involve risks to remain lot of time stucked in low level details?
Example of pros:
Does it implies having more control of concurrent code thanks to concurrent facilities and compile time validations?
if you have good material, please link it in this discourse.
Thanks for your time.