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?
Odpowiedzi:
Uważam, że Martin bardzo dobrze wyjaśnia uzasadnienie w swoim poście:
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.
źródło