simop95 ha scritto:
Vedendo altri sviluppatori programmare in java, soprattutto app ad esempio, la sintassi è simile ma allo stesso tempo molto diversa da quella che sto imparando. Quindi una volta finito il libro e studiato bene il linguaggio, a seconda di ciò che andrò a sviluppare dovrò imparare le relative librerie e in caso di framework, essere pronto a stravolgere la sintassi anche se con gli stessi principi?
La sintassi di Java è quella .... non è che cambia. Intendo ora (per completezza) "tutto", cioè fino alla release attuale.
Quello che cambia da un ambito all'altro è sicuramente l'uso di determinate librerie/framework. Ma non è che devi cambiare sintassi. Semmai usare idiomi particolari o design differenti o più sofisticati.
Tipo: c'è gente (ne so qualcosa, anche per esperienza lavorativa ...) che ad esempio si ostina ad usare gli Stream (Java 8+) per qualunque stupidata .... (beh, così forse è un po' troppo ... )
simop95 ha scritto:
Poi vorrei chiedervi una definizione più semplificata di framework perché non sono sicuro di aver capito bene cosa siano, o meglio da cosa si differenziano rispetto alle librerie. Quest ultime sono package che contengono classi, come detto prima, per non reinventare la ruota, da istanziare ad oggetti e creare metodi di uso diffuso.
Una "libreria" in senso generale è un insieme di funzionalità facilmente riutilizzabili. In Java si tratta ovviamente di classi/metodi. Poi la libreria potrebbe anche sfruttare "design" complessi ma se è solo un insieme di funzionalità richiamabili quando si vuole, è e resta una "libreria".
Un "framework" invece è un livello differente, nel senso che un framework generalmente prende in carico, cioè in gestione, il ciclo di vita (tutto o comunque in gran parte) della applicazione fin dall'inizio.
Es.
Swing è un framework, Spring è un framework. Struts è un framework. Anche JUnit si può intendere come framework, ovviamente dedicato allo unit-testing.
log4j, Gson, Jackson, le Apache Commons Xyz, Guava, Mockito, sono librerie.