IMHO it also depends on size of the project you're involved in. For simple projects ( like those with small number of persistent types, without requirements to be highly distributed, without distributed caches requirements, simple concurrency models, and so on, but with rapid development needs )...