Jaki jest problem z literałami XML Scali?

9

W tym poście Martin (honcho języka) pisze:

[Literały XML] Wtedy wydawało się świetnym pomysłem, teraz wystaje jak obolały kciuk. Wierzę, że dzięki nowemu schematowi interpolacji ciągów będziemy mogli umieścić wszystkie biblioteki XML w bibliotekach, co powinno być dużą wygraną.

Interesując się projektowaniem języka, zastanawiam się: dlaczego pisze, że błędem było włączenie literałów XML do języka? Jakie są kontrowersje dotyczące tej funkcji?

Dąb
źródło
2
Być może miał na myśli (w poście, który podlinkowałeś), aby mieć prosty i spójny rdzeń i przenieść bardziej wyspecjalizowane funkcje do bibliotek
Zavior

Odpowiedzi:

11

Uważam, że Martin bardzo dobrze wyjaśnia uzasadnienie w swoim poście:

Zawsze starałem się, aby Scala był bardzo potężnym, ale jednocześnie pięknie prostym językiem, próbując znaleźć unifikacje wcześniej odmiennych pojęć.

Problemem wielu języków, gdy stają się one coraz bardziej popularne, jest to, że funkcje są poszukiwane przez społeczność i dodawane do języka. Najgorszym przykładem tego (przynajmniej w mojej książce) jest C ++, w którym masz prawie wszystko, ale wcale nie w piękny zunifikowany sposób (patrz na przykład wynikające z tego pytanie ).

Trudność, gdy język rośnie z powodu wymagań / potrzeb społeczności, polega na dodawaniu nowych funkcji w sposób zgodny z jego rdzeniem. I pod tym względem obsługa literałów XML w Scali jest bolesnym kciukiem, ponieważ jest to wyjątkowa rzecz. Nie jest to tak naprawdę część pięknego zunifikowanego rdzenia, ale został dodany jako rozwiązanie jednorazowe, podczas gdy interpolacja łańcuchów jest podstawową koncepcją wystarczająco mocną, aby zastąpić funkcję jednorazowego użytku.

Szczery
źródło
IMHO, w idealnym świecie, język powinien zawierać tylko podstawowe funkcje, które pozwalają społeczności deweloperów na jego rozszerzenie. Rozszerzenia nie powinny być częścią podstawowego języka, ale powinny być dostarczane jako biblioteki. Ostatecznie wersje językowe mogą określać nowe biblioteki standardowe, ale nie mogą zawierać nowych funkcji językowych. Oczywiście zdefiniowanie takiego podstawowego języka, który jest wystarczająco silny, nie jest trywialnym zadaniem, ale myślę, że niektóre języki (np. Lisp) były do ​​niego bardzo podobne.
Giorgio
Porozmawiaj o grono drobnych programistów. Literały XMl w scali są niezwykle przydatne. Fanatycy JSON prawdopodobnie myślą, że są przestarzali, ale zapominają, że XML jest używany w innych technologiach, takich jak SOAP.
annoying_squid