Dovrei imparare Java o Kotlin per sviluppare applicazioni Android?
Vi darò la solita risposta del Product Manager a una domanda "vorresti questo o quello", "sì". In altre parole, dovresti imparare entrambi.
Sarò onesto, non mi piace Java. È un linguaggio goffo, pesante e pedante, costruito su alcune idee che da allora sono cadute in disgrazia, come l'orientamento a oggetti che è l'unico paradigma di programmazione di cui si ha bisogno, e che si dovrebbe vendere la propria nonna per un po' di sicurezza di tipo extra in fase di compilazione. Java 8 migliora le cose ma ha ancora un sacco di problemi.
Kotlin sembra essere un miglioramento significativo, fondamentalmente lo stesso approccio di Java ma prendendo a bordo 20 anni di lezioni apprese dalla scrittura di software in Java nel mondo reale, un po' come immagino che Java 10 sarebbe se Oracle abbandonasse l'impegno di mantenere la retrocompatibilità. Come tale, io imparerei Kotlin come linguaggio di scelta per i nuovi progetti Android, dovrebbe migliorare significativamente la vostra produttività.
Tuttavia, dovrete imparare Java, non c'è modo di uscirne. Android esiste da più di 10 anni ormai, e in questo periodo, la stragrande maggioranza del codice scritto per esso è in Java (il resto è C++ usando l'NDK). Questo significa:
- Tutti i progetti esistenti che sarete chiamati a mantenere saranno scritti in Java. Non li convertirete tutti in Kotlin perché non sarà un investimento di tempo utile se funzionano bene in Java, e anche se fate il porting, dovete capire il codice Java che state portando!
- Tutte le librerie open source di terze parti che usate saranno quasi tutte scritte in Java, se le tirate giù da GitHub, state prendendo il codice Java, se ci mettete piede nel debugger, state mettendo piede nel codice Java.
- Il livello JVM del sistema operativo Android sarà ancora scritto in Java, quindi se si entra in quello, si entrerà in Java
- Tutta la documentazione, gli esempi di codice, i tutorial, le risposte di stack overflow ecc. scritti fino a questo punto che riguardano Android e le API costruite per Android saranno scritti in Java.
Inoltre, se sei uno sviluppatore professionista, è probabile che svilupperai su piattaforme diverse da Android, e Java è ovunque, quindi è probabile che ad un certo punto sarai chiamato a lavorare con codice Java non Android. Java è così onnipresente che è utile per qualsiasi sviluppatore avere una certa familiarità con esso.
Vorrei davvero raccomandare di imparare entrambi, ma se siete decisi a impararne solo uno, deve essere Java. Per lo sviluppo Android, conoscere Kotlin è consigliabile, conoscere Java è essenziale.
La buona notizia è che, poiché Kotlin è più una progressione da Java, piuttosto che una partenza radicale, non sono un milione di miglia lontani l'uno dall'altro quando si tratta di fondamenti, quindi uno sviluppatore Java esperto prenderà Kotlin abbastanza rapidamente e viceversa, imparare entrambi certamente non richiederà il doppio del tempo per imparare uno.
La principale curva di apprendimento con Android non è comunque il linguaggio di programmazione, è imparare le API, come funziona lo stack UI, come il sistema operativo gestisce la vostra applicazione e le sue risorse, ecc.
Articoli simili
- Dovrei imparare Kotlin o Java per sviluppare applicazioni Android nel 2021?
- Quale lingua è meglio imparare nel 2020, Kotlin o Java?
- Quanto java è necessario per sviluppare applicazioni per Android? Da dove comincio a sviluppare se ho un'idea in mente?
- Se conosco Java, e come creare applicazioni Android utilizzando Java, quali sono i passi per pubblicare una mia applicazione?