Conoscete le caratteristiche del linguaggio di programmazione che aiutano a rilevare i bug nelle fasi iniziali del processo di sviluppo del software, idealmente in fase di compilazione o prima possibile in fase di esecuzione?
Esempi di funzionalità di riduzione dei bug ben note ed efficaci sono:
- Tipizzazione statica e tipi generici: gli errori di incompatibilità di tipo vengono rilevati dal compilatore
- Design by Contract (TM), chiamato anche Contract Programming: i valori non validi vengono rilevati rapidamente in fase di esecuzione (tramite precondizioni, postcondizioni e invarianti di classe)
- Test delle unità
Faccio questa domanda nel contesto del miglioramento di un linguaggio di programmazione orientato agli oggetti (chiamato Obix) che è stato progettato da zero per "rendere facile la scrittura rapida di codice affidabile". Oltre alle funzioni sopra menzionate, questa lingua incorpora anche altre funzionalità Fail-fast come:
- Gli oggetti sono immutabili per impostazione predefinita
- I valori Void (null) non sono consentiti per impostazione predefinita
L'obiettivo è aggiungere altri concetti Fail-fast alla lingua. Se conosci altre funzionalità che aiutano a scrivere meno codice soggetto a errori, ti preghiamo di farcelo sapere. Grazie.