«Обычные телефоны» используют Java (J2ME, MIDP2.0, если вам повезет) или HTML в браузере (браузеры становятся лучше). WAP все еще существует и поддерживается, но лучше его избегать, IMO.
Существуют и другие среды, такие как Flex, Silverlight, которые могут стать более распространенными, но сейчас их просто нет на большинстве телефонов, которые есть у людей, и их нельзя добавить позже.
Смартфоны (для меня определение смартфона - это приложение, которое запускает дополнительные приложения помимо J2ME-типа), но все же выполняет множество функций.
Существует также растущая тенденция использовать браузер (тем более что все более мощные из них поставляются с телефоном или могут быть установлены - например, Opera).
Родные приложения по-прежнему несопоставимы. Symbian (в основном Nokia) изначально является C ++, но существуют Python и другие (хотя и в довольно нишевых средах). Windows Mobile - это либо C ++, либо .NET (по моему опыту, в основном C #). Blackberry - это J2ME, хотя и более способный, чем для обычных телефонов.
Есть некоторые попытки реализовать .Net на Symbian (например, http://www.redfivelabs.com/), но я не вижу, чтобы они получили большую тягу.
Резюме: это все еще беспорядок. Если вы можете, выберите платформу и придерживайтесь ее. Если вам нужно все запустить, удачи, вам это понадобится