Perché la lingua DART non usa un carattere speciale per identificare le variabili?

0

Provengo da uno sfondo PHP e ho preso in considerazione l'idea di esaminare DART in modo più dettagliato .

DART è una lingua, open source, front-end / back-end, per lo sviluppo web.

PHP ha uno speciale carattere $ (dollaro) per indicare le variabili:

$variable
CONSTANT
'string'
"etc"

Trovo che il simbolo del dollaro sia davvero utile per accelerare i processi di refactoring, specialmente se il codice PHP è mescolato con HTML o contenuto. Riduce il numero di falsi positivi quando, ad esempio, fa un trova e sostituisce .

Poiché DART è un linguaggio completamente nuovo (senza legacy) che può essere incorporato in HTML, mi sorprende vedere che non ha alcun identificatore speciale per indicare le variabili.

Qual è il motivo dietro questa decisione di progettazione?

    
posta JW01 24.01.2012 - 10:32
fonte

4 risposte

8

In realtà puoi usare $ come prefisso ai nomi delle variabili.

L'ho provato per te: link

Si noti cosa succede alla grande funzione di interpolazione delle stringhe. Fondamentalmente puoi accedere a vars in una stringa con $ {yourvar}. Se si assegna una variabile a $, allora sembra brutta: $ {$ yourvar}. Pertanto non consiglio lo stile $ prefisso.

Anch'io ho iniziato con PHP. Ma ho scoperto che non appena sono passato a Java, $ non è un usus molto comune. Qual è il senso dietro - lo sviluppatore PHP probabilmente direbbe, facile identificazione delle variabili. Lo sviluppatore Java avrebbe pianto di dolore.

Gli sviluppatori di Dart cercano di creare una lingua "non eccitante". Dovrebbe sembrare familiare a molti. Senza dubbio la sintassi Java è più diffusa della sintassi PHP. Forse questo è il motivo per cui gli sviluppatori di Dart hanno lasciato fuori il $.

D'altro canto, personalmente parlando, penso che non sia davvero necessario e dopo essermi abituato a Java, lo trovo brutto. Ruby non lo usa. JS non lo usa. E così via.

Comunque qui ci sono più risposte alla lingua: link

Se vuoi seguire i blog recenti su Dart ti consiglio di: link

    
risposta data 24.01.2012 - 12:01
fonte
2

La ragione per cui perché la maggior parte dei progettisti di linguaggi non amano i costrutti come l'avvio di variabili con caratteri speciali è che la maggior parte dei progettisti di linguaggio desidera minimizzare la quantità di "materiale" ripetitivo richiesto dal programmatore, quindi a lungo come il compilatore / interprete può capirlo. Quindi, per molti progettisti di linguaggi, il codice:

var x = new Something()

ha meno cruft di:

Something x = new Something(); 

("Perché ripetere la specifica del tipo? Il compilatore può dedurlo. Perché avere il punto e virgola? Il compilatore può capirlo.") che a sua volta ha meno cruft di:

Something $x = new Something(); 

("Perché ogni variabile inizia con un '$'? Il compilatore sa che il token in quella posizione deve essere un nome di variabile")

L'estetica del design è qualcosa che la maggior parte dei designer di linguaggio probabilmente concorda in linea di principio, ma naturalmente la bellezza è negli occhi di chi guarda. Il "punto e virgola dedotto" in JavaScript, ad esempio, può portare a comportamenti sorprendenti.

La tua opinione che il valore di identificare rapidamente le variabili in base al $ è perfettamente valido, ma un'altra persona potrebbe dire "Bene, l'unico vantaggio semantico reale è che puoi avere variabili denominate in modo simile alle parole chiave ( $if ) e questo è un dubbio beneficio. " Nel caso specifico del refactoring, in lingue con semantica di tipo più ristretto, molti refactoring possono essere fatti non solo in modo rapido, ma "garantito sicuro", dal momento che il refactoring non viene eseguito su "solo una stringa" ma su un molto elemento specifico nell'albero di analisi.

    
risposta data 31.01.2012 - 02:04
fonte
1

Dart non usa $ per indicare le variabili perché non è familiare agli sviluppatori JavaScript o Java. Uno degli obiettivi di progettazione di Dart è di essere familiare a una grande maggioranza di sviluppatori, motivo per cui sembra un po 'come C, Java e JavaScript.

    
risposta data 31.01.2012 - 01:26
fonte
1

Pochissime lingue usano caratteri speciali per indicare le variabili. Perl e PHP sono gli unici che sono usati comunemente; il valore che ne deriva è dubbio; nessuno si lamenta che Python, per esempio, è più opaco di PHP. Nota che molte lingue hanno soluzioni che consentono una facile sostituzione delle variabili nelle stringhe, che è l'unico posto in cui un indicatore variabile è davvero utile:

Python

example = "The capital of {0} is {1}.".format(state, capital)

Scala

val example = "The capital of %s is %s.".format(state, capital)
    
risposta data 31.01.2012 - 03:31
fonte

Leggi altre domande sui tag