I love Rust... but
Hello Rustaceans
I have been learning Rust and coming from Java I have to say it has been very refreshing.
I just love the heavy use of sum types (enums) throughout the language, especially \Option\\ and \Result\\ that are far better than \null\\s and exceptions. I like matching, I like macro that can sometimes feel like magic and others compile time control, I like that everything is immutable by default. The borrow checker forces me to understand the memory well which gives me a lot more confidence when mutating something (in Java, you don't own the object, and you don't know if some other part of the program holds a reference to it, so you're not very sure what part of the program would be affected by the mutation)
However it seems to me that all the things that I love are the high level part of the language and the inspiration it took from functional programming.
Sure I appreciate the language is very fast and that the same language can be used on bare metal, but it is not very useful to me, it never was a grievance to Java for me after all. The borrow checker can sometimes be annoying and although a high level language, it sometimes forces me to have low level considerations.
The low level part although useful and interesting, is not very relevant to me, and I wonder what I could trade against this part of the language. In other words what could a high level only Rust look like? Could you make any suggestions of languages that can fit this description? I am thinking something with no nulls or exceptions, statically typed, with some emphasis on function purity, with algebraic data types and reasonably fast (something competitive to Java)
I am thinking something like gleam, haskell or elm maybe but I would like to hear your thoughts and if you would take the trade-off.
Thank you for reading me