In alcune lingue, l'operatore di concatenazione è solo zucchero sintattico . Ad esempio, in C #:
var a = b + c;
e
var a = string.Concat(b, c);
sono compilati nello stesso codice della lingua intermedia se b
e c
sono stringhe: +
è qui solo per semplificare la vita degli sviluppatori.
Lo zucchero sintattico potrebbe essere bello, ma significa anche che l'azienda che sta sviluppando la lingua dovrebbe trascorrere del tempo:
-
Ridisegnare la lingua per includere la funzione specifica dello zucchero sintattico; solo questo è un compito estremamente complicato.
-
Modifica del compilatore in modo che possa gestire la nuova sintassi.
-
Documentare il nuovo comportamento, incluso il fatto che +
è ora commutativa in alcuni casi, ma non in altri e che traduce la documentazione in ogni lingua supportata.
-
Gestire tutti i casi limite; ad esempio, qual è il risultato di "123" + 4
e qual è il risultato di 1 + "234"
?
-
Modifica di tutti gli IDE per supportare la nuova sintassi.
-
Test accurato del compilatore e degli IDE.
L'aggiunta di questa funzionalità significa anche che ci sarebbero inevitabilmente tre tipi di sviluppatori:
-
Quelli che capiranno che l'operatore è zucchero sintattico e come è tradotto dal compilatore,
-
Quelli che non conoscono gli interni, ma sanno come usare l'operatore e cosa comporta,
-
Quelli che non conoscono gli interni e fanno domande come: "Credo che stringa addizione sia lenta, quindi dovrò riscrivere il mio intero codice base per usare string.Concat
invece . Sono sulla buona strada? "
Quindi, invece di rendere la vita di tutti più facile, stai spendendo decine di migliaia di dollari per sviluppare una funzione che offusca la lingua .
Questo è anche il motivo per cui le lingue tendono ad usare il minor numero possibile di parole chiave. Più parole chiave significa più opportunità per bug e situazioni poco chiare, e più difficile imparare la lingua con più regole.