HTML, по моему мнению, заложник собственного успеха. Из простого языка разметки он превратился в нечто сложное и странное. В последнее время ситуация с версткой улучшилась, но все равно любая нетривиальная задача требует извращений и костылей.
А как обстоят дела с разработкой интерфейсов под современные мобильные платформы (iOS, Android, WP)? Хорошо ли продуманы средства создания нативных интерфейсов под эти ОС? Как часто приходится применять хаки, костыли и т.п.?
По моему во всех программных средах предоставляются возможности для создания решений определенных рамках.
И если ты хочешь сделать что то хитрожопо необычное — то придется создавать костыли.
Но как правило такие вещи приходится делать по ошибке. И надо просто уметь говорить заказчику — что такой то функционал не поддерживается данной платформой.
HTML как таковой используется для верстки веб страниц, для чего и преднозначен. У него есть определенные проблемы, которые решаются дополнительными уровнями астракции (с новыми языками) в рамках серверных и клиентских решений.
Как некий ассемблер для веба он вполне годится.
За WP могу сказать что нативные интерфейсы там писать нет смысла. Разработка ведется под виртуальную машину на нем — и предоставляемые механизмы для создания UI: XAML, Data Binding, Templating — возможно лучшие из всех. Но как и везде там лучше вести разработку в рамках общего стиля WP — которого хватит для всех задач. Возможности для кастомизации огромны, но конечно всегда можно придумать какую нибудь хитрость чтобы пришлось делать костыли. Особенно это касается сложных логических элементов в верстке.
Уверен что в iOS и Android схожие ситуации. Используйте те механизмы платформ, которые предоставляются.
Все зависит от задачи на самом деле. Костали имеют место быть везде и всюду, особенно в ситуациях с постоянно меняющимися требованиями. При желании и на HTML5 интерфейс можно сделать без особых кастылей.