why reactive programming is bad