Haven't written for a long time here, sorry if I will write some history, I would like to explain the problem as best as possible.
In the past, when I got frustrated about other languages, mainly GC pauses, but also null reference exceptions, data races etc., I decided to give rust a try.
I purchased the rust book, read it twice, than downloaded the book from RIP tutorials to get some idea of what crates are being used, than I started to work.
I've written 3 projects in rust, namely Am1, sesman, and fscomm (whatever), all of them shared the success story of 2 weeks development, going into production immediately, running for weeks without downtime, and low memory usage.
These 8 weeks (3*2=8==maybe, unfortunately history repeats) were stressful, but the management was happy with the results.
But due to the common denominator of these programs, maintaining a central state (which is not of static size), with network sockets, child processes etc. and having some control from the outside, like listening on http, logging via UDP, raising events.
These issues were very hard to solve using rusts strictness to reference types, sync and send, and globals, this caused a very hard time with adding new features without restructuring the program, and to my pain, sesman went back to the old nodejs/gc version, fscomm went to go language (causing mysterious bugs from time to time, but faster due to green threads), and Am1 is also about to get outdated due to feature backlog.
Looking back, trying to rescue Am1, I understand how CLI applications could be streamlined in rust, I understand how stateless web services could be developed, on the other hand, how would such an application be developed in rust.
For example how would one implement Microsoft word/excel in rust?, how are the structs that automatically synchronize their field access called.
I must be missing some terminology, or paradigm here, otherwise would Pres. Biden mention it as the 1st choice replacement for C/C++.
My impression about rust was, the kind people who created rust, have also thought about the issues it makes, and created solutions (Arc, mpsc, Traits), so how is called the solution for these kinds of issues.
I would like to restructure these programs in a way that I should have the option to use any type in any component, pull back all 3 programs to their rust versions, and prove rust as an pro for maintainability.
Thanks