Gli errori di chi si avvicina a Java

Print

Quando ci si avvicina a un nuovo linguaggio come Java, è normale commettere errori. Tuttavia, secondo David Reilly, autore dell'articolo "Top Ten Errors Java Programmers Make", ci sono errori più comuni che tendenzialmente vengono ripetuti nel tempo. Della stessa opinione anche Neal Ziring, come emerge dal suo articolo "Novice Java Programmers' Favourite Mistakes".

Da queste due fonti, a cui potrei aggiungere anche "Common Java Coding Errors", ritroviamo elementi realmente comuni. Potrebbe essere che tutti gli autori hanno poca fantasia, o che in realtà l'ideatore sia solo uno e gli altri hanno preso spunto; tuttavia sembra più plausibile pensare che i novizi si dimenticano sul serio che Java è zero-indexed e che l'operatore di uguaglianza è == e non =.

Non posso però biasimare chi commette "infrazioni" come la denominazione del file in modo differente rispetto al nome della classe (se pubblica): chi viene da altri linguaggi sottovaluta certe piccolezze, soprattutto se non ne comprende il senso. Distrazioni come un "tentato overriding" con nome del metodo da sovrascrivere sbagliato possono essere passate, ma non lo possono essere noncuranze come la scrittura di gestori di eccezioni vuoti tipiche dei "furbetti in erba".

Per altre questioni forse la causa sta nella superficialità di insegnamento; ad esempio il concetto banale di passaggio di valore e passaggio di riferimento può essere tanto semplice da indurre il "maestro" ad assumere un atteggiamento sbrigativo senza porre la giusta enfasi. Si può notare anche come certi errori derivino da una incompleta o comunque insufficiente conoscenza (pragmatica) della programmazione orientata agli oggetti; per fare un esempio, l'accesso a membri d'istanza in contesti statici non ha molto senso.

A mio parere è ora di aggiornare la lista, oggigiorno non c'è più un passaggio da linguaggi come Pascal o C a Java, per cui forse (spero) c'è un aggiustamento di rotta su più fronti. In ogni caso la lista è interessante o quantomeno simpatica.

This website uses cookies to ensure you get the best experience on our website.