I tried Elm in ~2018 and it was delightful. Ended up checking it out bc it was mentioned as 'prior art' in Redux's website. Didn't end up adopting bc everyone around me thought I was crazy to use something so niche.
It's the kind of thing that even if you don't end up using, you come out with lessons that make you a better programmer. Some that I remember:
- The compiler was fast, it made me aware that you could have an iterative workflow like most dynamic languages but driven by types
- The language/framework constructs (views, updates, etc) made it clear what kind of functionality had to live where so it makes me aware to define roles/arch in React apps that are 'just components'
- Error messages are just awesome, it was the clearest I had seen at that point and made me realize other languages just haven't paid enough attention to make them more usable
It's the kind of thing that even if you don't end up using, you come out with lessons that make you a better programmer. Some that I remember:
- The compiler was fast, it made me aware that you could have an iterative workflow like most dynamic languages but driven by types
- The language/framework constructs (views, updates, etc) made it clear what kind of functionality had to live where so it makes me aware to define roles/arch in React apps that are 'just components'
- Error messages are just awesome, it was the clearest I had seen at that point and made me realize other languages just haven't paid enough attention to make them more usable