Прежде всего, имейте в виду, что автор вышеприведенного заявления говорит о разработке сайта. Поэтому он обеспокоен развитием презентации , и именно здесь он считает, что Scala не будет хорошим выбором ...
Сказав это, я имею хороший опыт веб-разработки. Я работал по крайней мере 8 лет исключительно с этим, 5 из которых в цифровых агентствах.
И, да, по моему опыту, статически типизированный, скомпилированный язык на уровне представления может быть большим препятствием. Содержание необходимо постоянно менять, гораздо чаще, чем бизнес-требования. И обычно это должно быть сделано отдельной командой ("front-end" разработчиками). Обычно они много знают о HTML, JavaScript, веб-стандартах, CSS, но не очень много знают о серверных языках, таких как Java и C #. Они также предполагают, что любые изменения в шаблоне доступны немедленно ; они не используются для компиляции и ввода ошибок. И они правы: статически типизированные языки очень хороши для сложных, сложных требований, таких как доступ к данным и бизнес-правила, но не так хороши для разработки интерфейса.
Фактически это одно из основных преимуществ использования специализированного и интерпретируемого языка шаблонов, такого как Velocity . Его простота в использовании, мощность и гибкость адекватны разработчикам уровня представления. И тогда ребята на стороне сервера могут свободно использовать серьезный, статически типизированный язык везде ...
Тем не менее, я также согласен, что Scala несколько отличается. В то же время, будучи гораздо менее многословным и гораздо более выразительным, чем Java, я считаю, что его можно использовать для разработки презентаций, поэтому, возможно, его можно успешно использовать в качестве языка шаблонов. И если он также может быть объединен с такой платформой, как Play (которая автоматически компилирует веб-сайт после каждого изменения), это может стать победителем IMHO. Тем не менее, даже Play выбрал Groovy-подобный (динамический) язык шаблонов, что не является хорошим знаком.
Подводя итог: проблема со Scala гораздо больше связана с тем, что она компилируется. Фактически, механизм определения типа заставляет вас почти забыть, что он также статически типизирован.
(И извините за мой английский. Дайте мне знать, если что-то не понятно, я постараюсь это исправить.)
Button
когдаWebControl
содержит всю информацию , вам нужно , и все элементы управления являются производными от него.