Think about what features are important to you in a PaaS. You mention multiple language support, but what else. Be clear about what you like about dotCloud in order to help focus in on the right product.
Some of the key features that I recommend you focus on are portability, open stack, high-availability, elasticity, control and monitoring.
To prevent lock-in, you want to choose a PaaS that makes portability between clouds easy. Understand how each product facilitates the ability to change cloud provides as your needs or the environment evolves.
Many PaaS offerings dictate the stack that is available for your application, and this may significantly reduce your architecture options. You want the ability to choose languages, databases, middleware components, product versions, etc. that meet your needs. A PaaS that limits your options to a narrow menu of components is not so useful for real-world deployments.
If continuous uptime is important, then how does the PaaS monitor application health and recover from failures. Can it recover automatically. Can it dynamically scale your application based on load, provisioning new resources during peak demand and release those VMs when no longer needed.
Your application may have dependences between services which complicates deployment. Can the PaaS orchestrate and automatically manage your deployments regardless of the dependencies and complexities of your architecture. You want a PaaS that is flexible, open and extendible to be able to handle whatever your deployment requirements may be.
Finally, you want transparent monitoring at the application level. It should be easy to view the health of your application and how it is performing over time. There should be dashboards and logs available that simplify troubleshooting at the application level.
Here’s a great summary of the current landscape:
http://natishalom.typepad.com/nati_shaloms_blog/2012/05/mapping-the-cloudpaas-stack.html
Norm