Sobre el debate de tipos no anulables

Sigo escuchando a la gente hablar sobre cómo los tipos de referencia no anulables resolverían tantos errores y facilitarían mucho la programación. Incluso el creador de null lo llama subillion dollar error yEspeculación ha introducido tipos no anulables para combatir este problema.

EDITAR Ignore mi comentario sobre Spec #. No entendí cómo funciona.

EDIT 2: Debo estar hablando con las personas equivocadas, realmente esperaba que alguien discutiera: -)

Así que supongo que, siendo minoría, me equivoco, pero no puedo entender por qué este debate tiene algún mérito. Veo nulo como una herramienta de búsqueda de errores. Considera lo siguiente

class Class { ... }

void main() {
    Class c = nullptr;
    // ... ... ... code ...
    for(int i = 0; i < c.count; ++i) { ... }
}

BAM! Infracción de acceso. Alguien olvidó inicializarc.

Ahora considere esto:

class Class { ... }

void main() {
    Class c = new Class(); // set to new Class() by default
    // ... ... ... code ...
    for(int i = 0; i < c.count; ++i) { ... }
}

Whoops. El bucle se omite en silencio. Podría llevar un tiempo localizar el problema.

Si su clase está vacía, el código fallará de todos modos. ¿Por qué no hacer que el sistema te lo diga (aunque sea un poco grosero) en lugar de tener que resolverlo tú mismo?

Respuestas a la pregunta(8)

Su respuesta a la pregunta