ReactiveUI is used successfully in real-world business applications around the world, including many large and mission critical systems. Here are some quotes from happy ReactiveUI users:
The effort to learn Rx and ReactiveUI is worth the trouble. My claim is based on this notion that ReactiveUI shines as complexity increases, but also on my belief that most people underestimate the complexity of their app. If you disagree that most of your code is reacting to something that changed, you might be underestimating the complexity of your app. - Creator of SQLitePCL.raw
It took me over 4 slow years to realize that the Reactive Extensions (RX) is a good idea. It’s never too late to start learning something new. Here’s a few reasons why I personally dived into RX. The influencers have double downed on the library, Google has moved to a RX mindset with their new Architecture Components and other languages/frameworks have implementations - Thus the knowledge is universal.
Reactive Extensions in Action
Reactive programming lets you focus on what you’re trying to achieve rather than on the technical details of making it work. This leads to simple and readable code and eliminates most boilerplate code (such as change tracking or state management) that distracts you from the intent of your code logic. When the code is short and focused, it’s less buggy and easier to grasp.
In my opinion (and it’s just that, my opinion) most commands don’t add any value to the main goals for using MVVM (maintainability, readability and testability). Typically they’re just an object that wraps a method, sometimes also a predicate for CanExecute but that’s it. What they mostly add is ceremony to the view model and not much more, you typically see this in commands named RelayCommand or DelegateCommand. Some commands are really useful however, ReactiveCommand in ReactiveUI adds a lot of value when building that style of application and I highly recommend them. - Maintainer of Caliburn.Micro
reactiveui-events removes crappy noise ceremonial; not only does the intent literally surface but it spares you from useless verbose protocol. There is no going back!