Perché i generici in Scala hanno cancellato i tipi e non sono modificabili?

6

Perché i generici in Scala hanno tipi cancellati e non sono modificabili?

È dovuto alla mancanza di supporto da parte della JVM o alla compatibilità con le librerie Java? Quali sono i vantaggi in generale di avere generici come reifiable?

    
posta Jatin 21.11.2012 - 11:25
fonte

1 risposta

8

Questi due sono solo indirettamente correlati.

Scala ha scelto di girare sulla JVM per sfruttare la portabilità e la enorme quantità di librerie e framework che questo ti compra. Ciò gli diede un vantaggio su molti altri nuovi linguaggi alla moda, e potrebbe anche essere stata una mossa intelligente culturalmente: sebbene molte nuove forme di espressione siano possibili nella lingua, molti programmatori Java esistenti apprezzavano il fatto che il linguaggio fosse più potente, ma non del tutto a differenza di Java, e ha iniziato ad usare il linguaggio in anticipo.

Il prezzo da pagare per questo è che devi rispettare i limiti della VM sottostante, e sì, tra gli altri, significa che non ci sono tipi generici reificati. Il tempo dirà se il trade-off è valso la pena o se rompere con la tradizione più radicalmente sarebbe stato migliore nel lungo periodo. (Si noti che l'obiettivo di Java era "trascinare circa metà dei programmatori C ++ a metà strada rispetto a Common Lisp" ( Guy Steele ), il che significava che era necessario riutilizzare la vecchia sintassi di tipo C. La storia si sta ripetendo.)

    
risposta data 21.11.2012 - 13:31
fonte

Leggi altre domande sui tag