Primeiro, lembre-se de que o autor da declaração acima está falando sobre o desenvolvimento de sites. Então, ele está preocupado com o desenvolvimento da apresentação , e é aí que ele acha que Scala não seria uma boa escolha ...
Dito isto, eu tenho uma boa experiência com desenvolvimento web. Eu trabalhei por pelo menos 8 anos exclusivamente com ele, 5 dos quais em agências digitais.
E, sim, na minha experiência, uma linguagem compilada estaticamente na camada de apresentação pode ser um grande obstáculo. O conteúdo precisa ser alterado constantemente, com muito mais frequência do que os requisitos de negócios. E geralmente isso precisa ser feito por uma equipe distinta (os desenvolvedores "front-end"). Eles normalmente sabem muito sobre HTML, JavaScript, padrões da Web, CSS, mas não muito sobre linguagens do lado do servidor, como Java e C #. Eles também assumem que qualquer tipo de alteração em um modelo está disponível imediatamente ; eles não são usados para compilar e digitar erros. E eles estão certos: linguagens de tipo estaticamente são muito boas para requisitos complexos e difíceis, como acesso a dados e regras de negócios, mas não tão boas para o desenvolvimento de interfaces.
Esse é, de fato, um dos principais benefícios do uso de uma linguagem de modelo especializada e interpretada como o Velocity . Seu fácil de usar, poder e flexibilidade são adequados para os desenvolvedores da camada de apresentação. E então os funcionários do lado do servidor são livres para usar uma linguagem séria e tipicamente estática em qualquer outro lugar ...
No entanto, também concordo que Scala é um pouco diferente. Sendo ao mesmo tempo muito menos detalhado e muito mais expressivo que o Java, acredito que poderia ser usado para o desenvolvimento de apresentações - então talvez possa ser usado com sucesso como uma linguagem de modelo. E se também pudesse ser combinado a uma estrutura como o Play (que compila o site automaticamente após cada alteração), poderia ser um IMHO vencedor. Ainda assim, mesmo o Play optou por uma linguagem de modelo do tipo Groovy (dinâmica), o que não é um bom sinal.
Resumindo: o problema com o Scala está muito mais relacionado ao fato de ele ser compilado. De fato, seu mecanismo de inferência de tipo faz com que você quase esqueça que também é digitado estaticamente.
(E desculpe pelo meu inglês. Deixe-me saber se algo não estiver claro, vou tentar consertar.)
Button
quandoWebControl
contém todas as informações necessárias e todos os controles são derivados.