Posso dire che mi piace molto Scala ma ora mi piacerebbe conoscere le funzionalità che non puoi vivere senza lavorare con Scala? Che ne pensi di Scala 2.8?Quali sono le migliori caratteristiche di Scala?
risposta
Se dovessi tornare a Java ecco cosa mi mancherebbe di più: chiusure, funzioni di ordine superiore, abbinamento di modelli, classi di casi e enfasi sull'immutabilità.
Sono stato su 2.8 per un po '. Se dovessi tornare a 2.7, la cosa principale che mi mancherebbe è la coerenza, la pulizia e la ricchezza dell'API delle raccolte 2.8. È waaaaaay meglio le cose 2.7. Ma mi mancheranno anche gli argomenti di nome e di default.
+1. Proprio l'altro giorno stavo rivedendo le collezioni Java, ed ero sopraffatto dalla sensazione che fosse intenzionalmente progettato per essere la peggiore API di sempre. –
Daniel, penso che devi dare un'occhiata alle classi di raccolta di MFC;). Penso che le collezioni Java non siano poi così male considerando che non ci sono funzioni anonime in Java. – Alexey
L'inferenza di tipo consente di risparmiare una digitazione inutile. map
e foreach
e simili sulle raccolte sono fantastici, specialmente in combinazione con iteratori di default-pigro e sintassi di funzione davvero semplice.
Ma, come qualcuno che fa un sacco di calcolo scientifico, quello che mi mancherebbe di più è essere in grado di scrivere codice ad alte prestazioni, avvolgerlo in classi efficienti e quindi utilizzare mappe e operatori matematici (+, *, qualunque cosa sia) per manipolare quei costrutti di alto livello nel modo in cui effettivamente penso a loro.
Per quanto riguarda 2,8 vs 2,7 - il miglioramento è piuttosto incrementale dal mio punto di vista. È un po 'meglio in molte aree; c'è poco da dire e dire "Oh wow, quello!". Mi aspetto che la nuova annotazione specializzata mi aiuterà molto, ma non l'ho ancora visto completamente in azione in biblioteca, quindi sto trattenendo il giudizio.
Penso che non sia una caratteristica ma la concisione che Scala realizza è ciò che mi piace di più.
Questo è ovviamente possibile solo a causa dell'inferenza di tipo, delle chiusure, di un sistema di tipo eccezionale ecc. Non penso proprio di poterlo suddividere in una o due funzioni. Lavorano insieme e il risultato, codice conciso, è quello che definirei la caratteristica killer.
Mi piace scrivere in Scala. Questa è la funzione # 1 nel mio libro :)
posso solo andare avanti con quello che voglio invece di ballare attraverso i cerchi di Java:
- val/var significa che non devo scrivere il tipo di due volte
- Chiusure significa che non devo scrivere un sacco di interfacce anonimi e può riutilizzare molto altro codice
- parametri Named significa che io non devo ricordare la posizione di ciascun argomento - grande sia per la lettura e la scrittura
- Le classi di casi significano che ottengo toString e equivale gratis ... rende il debug molto più facile!
- Un'API decente per le collezioni (per esempio carta, piegare) significa che posso dire quello che voglio fare, invece di ballare la danza di iterazione
Quanto a 2.8 vs 2.7 ... Ho sempre e solo veramente trascorso tempo di qualità con 2.8 ;-)
dovrebbe essere wiki della comunità. – missingfaktor
Ci scusiamo per questo. Ho cambiato questo per essere wiki della comunità! –