Quel est le problème avec les littéraux XML de Scala?


9

Dans cet article , Martin (le chef de la langue honcho) écrit:

[Littéraux XML] Semblait une excellente idée à l'époque, maintenant elle ressort comme un pouce endolori. Je crois qu'avec le nouveau schéma d'interpolation de chaînes, nous pourrons mettre tout le traitement XML dans les bibliothèques, ce qui devrait être une grande victoire.

Étant moi-même intéressé par la conception du langage, je me demande: pourquoi écrit-il que c'était une erreur d'incorporer des littéraux XML dans le langage? Quelle est la controverse concernant cette fonctionnalité?


2
Peut-être faisait-il référence (dans le message que vous avez lié) à un noyau simple et cohérent et à la
migration de

Réponses:


11

Je crois que Martin explique très bien le raisonnement dans son article:

J'ai toujours essayé de faire de Scala un langage très puissant, mais à la fois admirablement simple, en essayant de trouver des unifications de concepts autrefois disparates.

Le problème auquel de nombreuses langues sont confrontées lorsqu'elles deviennent de plus en plus populaires est que les fonctionnalités sont recherchées par la communauté et ajoutées par-dessus la langue. Un pire exemple de cela (au moins dans mon livre) est le C ++, où vous avez à peu près tout, mais pas du tout d'une belle manière unifiée (voir par exemple cette question qui en découle).

La difficulté, lorsqu'une langue se développe en raison des demandes / besoins de la communauté, est d'ajouter les nouvelles fonctionnalités d'une manière cohérente avec le cœur de la langue. Et à cet égard, le support des littéraux XML de Scala est un pouce douloureux, car c'est une chose unique. Il ne fait pas vraiment partie d'un beau noyau unifié, mais a été ajouté comme solution unique, tandis que l'interpolation de chaînes est un concept de base suffisamment puissant pour remplacer la fonction unique.


À mon humble avis, dans un monde idéal, un langage ne devrait contenir que les fonctionnalités de base qui permettent à sa communauté de développeurs de l'étendre. Les extensions ne doivent pas faire partie du langage principal mais doivent être fournies sous forme de bibliothèques. Ainsi, les révisions linguistiques peuvent éventuellement spécifier de nouvelles bibliothèques standard, mais pas de nouvelles fonctionnalités linguistiques. Bien sûr, définir un langage de base suffisamment puissant n'est pas une tâche triviale, mais je pense que certaines langues (par exemple Lisp) s'en sont rapprochées.
Giorgio

Parlez d'un tas de programmeurs pleurnichards. Les littéraux XMl en scala sont extrêmement utiles. Les fans de JSON pensent probablement qu'ils sont dépassés mais oublient que XML est utilisé dans d'autres technologies comme SOAP.
annoying_squid
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.