Contesto
Forse mi limito ad usare linguaggi in stile C-esque ma avere un sigillo davanti a una variabile (ad esempio $VAR
) mi sembra sempre strano.
Domanda
Perché alcuni linguaggi come Perl e lo script di shell hanno sigilli davanti ai nomi delle variabili?
Riesco a vedere che abbia senso per linguaggi più vecchi come Basic (anni '60) in cui l'interprete potrebbe non essere abbastanza intelligente da sapere a quale tipo di variabile ci riferiamo. Guardando a C negli anni '70, vediamo che tutto è finito. Negli anni '80 apparvero shell e Perl e usarono la sigla notazione ancora Tcl, Erlang e altri come C ++ no. Negli anni '90, vediamo Python e Ruby che non hanno affatto sigilli. Forse esistono, ma non ho visto un linguaggio di programmazione sviluppato di recente utilizzare sigilli. Tuttavia, ho visto il linguaggio fare altre cose come decoratori di python @staticmethod
che possono assomigliare a sigilli, ma sono usati in un contesto diverso.
Non codifico molto in Perl ma per bash, printf
è una funzione e racchiusa in una sostituzione di comando, $(printf ...)
crea sprintf da C. Con entrambe queste opzioni, non vedo guadagni di diciamo usando "This ${magic}String"
su printf "This %sString" "$magic"
specialmente quando le stringhe diventano veramente lunghe. Allo stesso modo, ${#STR}
è fonte di confusione, specialmente per i programmatori più recenti che non sanno cosa faccia quel pezzo di codice, mentre len str
è più facile da leggere. Forse sto solo prendendo a pugni qualcosa che non ha importanza e tutti accettano e passano.