In computer science, functional programming is a programming paradigm that treats computation as the evaluation of mathematical functions and avoids state and mutable data. It emphasizes the application of functions, in contrast to the imperative programming style, which emphasizes changes in state. .. source - Wikipedia
One of the suggested reasons for ascendancy of functional programming is the upcoming multicore challenge.
It is also suggested that programs are much easier to write and maintain using functional programming techniques.
This is now the dominant style of architecting applications on the internet
REST and WS-* will compete inside the enterprise
While WS-* focuses on leveraging typical application design semantics including RPC, REST eschews complexity and focuses on simple document / resource access semantics
It is possible to talk at length on how REST leverages the very aspects that made other aspects of internet such as WWW successful.
But many coming from a more conventional distributed architecture background may find REST a little hard to find comfort with. Especially its lack of registries, no predefined metadata using IDL etc.
I find the arguments not too dissimilar from static vs. dynamically typed languages
REST makes it really easy for clients to leverage exposed API
Also Hypermedia as the engine of application state can actually help reduce many application state errors.