Qual é o problema com os literais XML do Scala?

9

Em este post , Martin (chefão da linguagem) escreve:

[Literais XML] Parecia uma ótima idéia na época, agora se destaca como um polegar dolorido. Acredito que com o novo esquema de interpolação de cadeias poderemos colocar todo o processamento XML nas bibliotecas, o que deve ser uma grande vitória.

Por estar interessado no design da linguagem, estou me perguntando: por que ele escreve que foi um erro incorporar literais XML na linguagem? Qual é a controvérsia sobre esse recurso?

Carvalho
fonte
2
Talvez ele estava se referindo (no post é ligada) para ter um simples e núcleo consistente e se movendo mais recursos especializados para bibliotecas
Zavior

Respostas:

11

Acredito que Martin explica muito bem o raciocínio em seu post:

Sempre tentei fazer de Scala uma linguagem muito poderosa, mas ao mesmo tempo lindamente simples, tentando encontrar unificações de conceitos anteriormente díspares.

O problema que muitos idiomas enfrentam quando se tornam cada vez mais populares é que os recursos são desejados pela comunidade e adicionados no topo do idioma. Um exemplo disso, no pior dos casos (pelo menos no meu livro), é o C ++, onde você tem praticamente tudo, mas não de uma maneira bonita e unificada (veja, por exemplo, essa pergunta que surge disso).

A dificuldade, quando um idioma cresce devido a demandas / necessidades da comunidade, é adicionar os novos recursos de maneira consistente com o núcleo do idioma. E a esse respeito, o suporte a literais XML do Scala é um dedo dolorido, porque isso é uma coisa única. Não é realmente parte de um belo núcleo unificado, mas foi adicionado como uma solução única, enquanto a interpolação de cadeias de caracteres é um conceito central poderoso o suficiente para substituir o recurso único.

Frank
fonte
IMHO, em um mundo ideal, um idioma deve conter apenas os principais recursos que permitem à comunidade de desenvolvedores estendê-lo. As extensões não devem fazer parte da linguagem principal, mas devem ser fornecidas como bibliotecas. Portanto, eventualmente as revisões de idioma podem especificar novas bibliotecas padrão, mas nenhum novo recurso de idioma. É claro que definir uma linguagem central que seja suficientemente poderosa não é uma tarefa trivial, mas acho que algumas linguagens (por exemplo, Lisp) chegaram bem perto disso.
Giorgio
Fale sobre um monte de programadores chorões. Literais XMl no scala são extremamente úteis. Os fãs do JSON provavelmente pensam que estão desatualizados, mas esquecem que o XML é usado em outras tecnologias como SOAP.
annoying_squid