Perché la programmazione Java è così difficile?
Continuo a dire a mio figlio che "la maggior parte delle cose nella vita che vale la pena fare sono di solito difficili". Allo stesso tempo gli dico cose come: "lavora in modo più intelligente, non più difficile", "pensa prima di agire", "pianifica in anticipo". Questi consigli apparentemente contraddittori si applicano tutti all'apprendimento di Java.
Ecco perché:
- Imparare qualsiasi cosa in generale è difficile. Java è un linguaggio maturo, quindi c'è molto da imparare. È stato difficile per tutti iniziare con il loro primo linguaggio, Java non è diverso.
- Java porta con sé caratteristiche che si sono evolute e creolizzate da molti altri linguaggi. Questo significa che ha il vantaggio di avere la maggior parte dei bordi grezzi che sono stati smussati.
- Java è relativamente potente (non proprio allo stesso modo di C, Fortran, o assembly...scelto perché ci sono molte librerie di basso livello scritte in essi) ma lo metto più o meno allo stesso livello. Posso assumere un programmatore Java ed essere relativamente sicuro che possa imparare il C++ in pochi mesi. Javascript non è uno di questi linguaggi... a meno che non sia combinato con un run-time che è attentamente scritto per permettere cose che le API di livello inferiore possono fare. (e no, non sto trollando..... vi prego di dimostrarmi che mi sbaglio se volete, le mie opinioni sono flessibili).
- I linguaggi staticamente digitati esistono da molto tempo. Altri (script Bash, Perl, Tcl, Python, ecc...) vanno e vengono. Alla fine sono tutti relegati a ruoli "simili allo scripting" (a meno che non siano accoppiati con analisi avanzate e run-times, che di solito sono scritti con linguaggi tipizzati staticamente). Imparare questi fondamenti vi ripagherà nel lungo periodo.
Ecco il mio consiglio. CONTINUATE A FARLO. Imparare i "dettagli" che la gente sostiene rendano Java difficile vi insegnerà più fondamenti di CS che un linguaggio come JS (in particolare, un'idea di cosa sia realmente un tipo). Questi fondamenti sono facilmente trasferibili a JS, C, C++, C#, e praticamente qualsiasi altro linguaggio staticamente tipizzato. Questo è il motivo per cui è stato il linguaggio scelto per l'insegnamento dell'introduzione ai corsi di CS per un po' più di un decennio.
Articoli simili
- Se conosco Java, e come creare applicazioni Android utilizzando Java, quali sono i passi per pubblicare una mia applicazione?
- What is the difference between Java 1.8 and Java 1.7?
- Cosa devo installare, Java 10 o Java 8? C'è una differenza?
- Fare un editor di testo in Java è un buon progetto per imparare Java?