• [^] # Re: Les développeurs Java

    Posté par . En réponse à la dépêche Naissance d'un géant : Java. Évalué à 5.

    Dans le cas d'un débordement d'indices de tableaux, une ArrayIndexOutOfBoundException (ou n'importe quelle autre exception) ne permet pas d'écriture arbitraire en mémoire alors que C/C++ ne garantit pas d'avoir une segfault. De même, un déréferencement de pointeur non-initialisé ne va pas forcément se traduire par une segfault (si tu n'as pas de chance et qu'en fait ton pointeur pointe sur quelque chose d'atteignable).

    Après, bien sûr que si on code de manière potable en C++ en s'interdisant les trucs vraiment dégeu, en évitant l'arithmétique de pointeurs et en utilisant une macro CHECK pour spécifier des contrats sur les méthodes et en lançant régulièrement valgrind et de l'analyse statique de code, on arrive à avoir quelque chose de sécurisé.

    C'est juste que Java est plus sécurisé par défaut que C++. De toute manière, même en ASM ou en brainfuck tu peux faire un programme sans failles, la question intéressante c'est que certains langages ont choisit d'imposer plus de sécurité par défaut. Ca a évidemment un coût et j'imagine que c'est la raison pour laquelle développer un kernel en Java n'a pas tellement de sens.