Bien sûr que non. Avec un langage qui propose des assertions par contrat on peut éviter la plupart de ces call sur null.
Chez Eiffel Software, qui propose un compilateur Eiffel, donc avec la programmation par contrat (qu'on utilise en produisant des assertions), ils ont dû trouver, mais ils ne doivent pas avoir ton niveau, que celle-ci ne permet pas totalement d'éviter les void calls. C'est pourquoi, avec la dernière mouture du compilateur/environnement de développement, il y a un mécanisme spécifique pour résoudre le problème avant la compilation.
Alors, oui, éviter les void calls avant l'exécution, ça vaut le coup. Merci à l'équipe de Lisaac pour ça. Et non, le recours aux contrats et autres assertions ne peut pas les éviter totalement. C'est le totalement qui est important.
Incidemment, mettre les noms de classes et de types en majuscules ne me dérange pas, c'est déjà ce que je fais :) Je sais, je suis minoritaire...
[^] # Re: Surprise
Posté par Philip Marlowe . En réponse au journal Lisaac: sorti de la 0.39beta. Évalué à 2.
Chez Eiffel Software, qui propose un compilateur Eiffel, donc avec la programmation par contrat (qu'on utilise en produisant des assertions), ils ont dû trouver, mais ils ne doivent pas avoir ton niveau, que celle-ci ne permet pas totalement d'éviter les void calls. C'est pourquoi, avec la dernière mouture du compilateur/environnement de développement, il y a un mécanisme spécifique pour résoudre le problème avant la compilation.
Un peu de lecture :
http://qconlondon.com/london-2009/presentation/Null+Referenc(...)
http://www.ddj.com/architect/219500827?cid=RSSfeed_DDJ_All
Alors, oui, éviter les void calls avant l'exécution, ça vaut le coup. Merci à l'équipe de Lisaac pour ça. Et non, le recours aux contrats et autres assertions ne peut pas les éviter totalement. C'est le totalement qui est important.
Incidemment, mettre les noms de classes et de types en majuscules ne me dérange pas, c'est déjà ce que je fais :) Je sais, je suis minoritaire...