¿Cuál es el problema con los literales XML de Scala?

9

En esta publicación , Martin (el jefe de la lengua) escribe:

[Literales XML] Parecía una gran idea en ese momento, ahora sobresale como un pulgar dolorido. Creo que con el nuevo esquema de interpolación de cadenas podremos colocar todo el procesamiento XML en las bibliotecas, lo que debería ser una gran victoria.

Al estar interesado en el diseño del lenguaje, me pregunto: ¿por qué escribe que fue un error incorporar literales XML al lenguaje? ¿Cuál es la controversia con respecto a esta característica?

Roble
fuente
2
Tal vez se estaba refiriendo (en la publicación que enlazó) a tener un núcleo simple y consistente y mover características más especializadas a las bibliotecas
Zavior

Respuestas:

11

Creo que Martin explica muy bien el razonamiento en su publicación:

Siempre he tratado de hacer de Scala un lenguaje muy poderoso pero al mismo tiempo maravillosamente simple, tratando de encontrar unificaciones de conceptos anteriormente dispares.

El problema al que se enfrentan muchos idiomas cuando se vuelven cada vez más populares es que la comunidad busca características que se agreguen por encima del idioma. El peor de los casos de esto (al menos en mi libro) es C ++, donde tienes casi todo, pero nada en una forma unificada hermosa (ver, por ejemplo, esta pregunta que surge de eso).

La dificultad, cuando un idioma crece debido a las demandas / necesidades de la comunidad, es agregar las nuevas características de manera coherente con el núcleo del idioma. Y a este respecto, el soporte de literales XML de Scala es un dolor de cabeza, porque esto es algo único. En realidad no es parte de un hermoso núcleo unificado, pero se ha agregado como una solución única, mientras que la interpolación de cadenas es un concepto central lo suficientemente potente como para reemplazar la función única.

Franco
fuente
En mi humilde opinión, en un mundo ideal, un lenguaje solo debe contener las características principales que permiten a su comunidad de desarrolladores ampliarlo. Las extensiones no deberían formar parte del lenguaje central, sino que deberían proporcionarse como bibliotecas. Por lo tanto, eventualmente las revisiones de idioma pueden especificar nuevas bibliotecas estándar pero no nuevas características de lenguaje. Por supuesto, definir un lenguaje central que sea lo suficientemente poderoso no es una tarea trivial, pero creo que algunos lenguajes (por ejemplo, Lisp) se acercaron bastante.
Giorgio
Habla sobre un montón de programadores quejumbrosos. Los literales XMl en scala son extremadamente útiles. Los fanáticos de JSON probablemente piensan que están desactualizados, pero olvidan que XML se usa en otras tecnologías como SOAP.
annoying_squid