The appeal of machine learning to me is how clean the actual structure of models can be once you split it up in the right layers.
A lot of "application" code is a tangled web of dependencies and small independent or coupled bits of state that you need to coordinate in bizarre ways to account for the difficulty of state management in distributed systems.
ML on the other hand needs maths knowledge but the blocks fit together in a nice clean linear way of input to output.