[Python] un bel dilemma

enrico franchi enrico.franchi a gmail.com
Mer 29 Lug 2015 12:50:25 CEST


2015-07-28 18:41 GMT+01:00 Manlio Perillo <manlio.perillo a gmail.com>:

> Come elimineresti null in un linguaggio che supporta i puntatori come tipi
> primitivi ed in cui ogni variabile è inizializzata al suo valore di default?
>

Ma infatti io parlavo di Java, non di C. Non e' esattamente facile togliere
il concetto di NULL da C o da C++.
Se *oggi* si riscrivesse "Java-like", sarebbe possibile, se non eliminare,
ridurre tantissimo lo scope di uso di null. Per esempio, si potrebbe avere
roba final di default (che ti costringe ad inizializzare le cose a qualcosa
di sensato, perche' poi non lo cambi piu'). Per molti altri casi, Optional.
Certo, come dicevo, all'epoca non lo si poteva fare per vari motivi.

Detto questo, se hai un linguaggio che ha i puntatori, diventa molto
complicato non avere il null pointer. Pero' se riesci a fare in modo che i
casi in cui ti servono veramente i puntatori sia ristretto (per esempio
perche' e' piu' comodo usare "reference" well behaved) stai riducendo molto
l'area in cui puoi avere bachi.

Siccome in Java essenzialmente tutte le variabili che non sono tipi
primitivi (quindi una fetta bella grossa di quello che scrivi) sono
potenzialmente null, hai un problema di una certa larghezza. Gia' se
dovessi dichiarare esplicitamente il fatto che qualcosa e' nullable, stai
riducendo molto lo scope del problema pratico da risolvere.


-- 
.
..: -enrico-
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20150729/8f747622/attachment.html>


Maggiori informazioni sulla lista Python