Я бы не назвал ASP.NET двумя языками. Вы не можете использовать C #, VB.Net или что-то еще для написания страниц ASP.NET.
PHP является языком сценариев, ориентированных на веб-страницы. Некоторые называют это языком шаблонов, потому что вы можете встраивать PHP в документы HTML. Есть много способов сделать PHP, но вы можете, если вы хотите использовать только PHP. Другие добавляют такие вещи, как конкретные фреймворки (например, Zend), движки шаблонов, такие как Smarty и т. Д., Но все это необязательно.
Ruby on Rails, с другой стороны, является тяжеловесным стеком разработки. Он не инкапсулирует шаблон персистентности (активную запись), но заходит настолько далеко, что включает библиотеку Javascript (Prototype) в стек. Это действительно комплексное решение, которое не имеет взаимозаменяемости с некоторыми легкими весовыми стеками.