Un boulier compteur est plus « simple et cohérent » qu'une calculatrice électronique. Mais je préfère utiliser une calculatrice.
En fait il n'a quand même pas tort, la simplicité et l'élégance du C sont très appréciables (ce qui lui confèrent aussi des difficultés supplémentaires).
Tu peux voir à peu près l'ensemble des mécanisme du C en quelques mois d'apprentissage et maitriser le langage après quelques années de pratiques bien intensifs. Le C++ est tellement vaste qu'une vie entière rend ceci impossible (le concepteur du langage lui même le dit) et si tu ajoutes l'apprentissage des bibliothèques comme Boost ou Qt, tu es obligé de faire un choix dans le sous-ensemble que tu souhaites apprendre du C++.
La réalisation de compilateur complet pour le C est du coup aussi beaucoup plus simple ce qui l'a rendu très attractif pour les systèmes embarqués (le C++ y arrive de plus en plus mais souvent avec un support partiel uniquement).
C'est un autre sujet, mais, en fonction du type d'application, je conseil de ne pas geré de cas de out of memory, et de simplement laisser l'application segfaulter. (Mais que l'application soie conçue pour ne pas perdre des données en cas de crash, et d'avoir une restauration rapide)
Tu as raison en partie sur ce point.
Il est clair que si l'allocation d'un objet de quelques octets échoue, c'est que ta machine est à la ramasse partout car elle n'a de mémoire nulle part et doit swapper à mort depuis un moment. Que l'application crash à ce moment (sans destruction de données bien entendu) est un traitement d'erreur qu'on pourrait considérer comme acceptable car après tout à part quitter tu n'as pas grand chose à faire.
Si par contre l'objet est plus conséquent il peut être intéressant de fermer le tout proprement voire d'essayer de revenir à un état stable précédent. C'est par exemple ce que font les SGBD en général.
[^] # Re: Oublies le C.
Posté par Renault (site web personnel) . En réponse au journal C(++) ?. Évalué à 5.
En fait il n'a quand même pas tort, la simplicité et l'élégance du C sont très appréciables (ce qui lui confèrent aussi des difficultés supplémentaires).
Tu peux voir à peu près l'ensemble des mécanisme du C en quelques mois d'apprentissage et maitriser le langage après quelques années de pratiques bien intensifs. Le C++ est tellement vaste qu'une vie entière rend ceci impossible (le concepteur du langage lui même le dit) et si tu ajoutes l'apprentissage des bibliothèques comme Boost ou Qt, tu es obligé de faire un choix dans le sous-ensemble que tu souhaites apprendre du C++.
La réalisation de compilateur complet pour le C est du coup aussi beaucoup plus simple ce qui l'a rendu très attractif pour les systèmes embarqués (le C++ y arrive de plus en plus mais souvent avec un support partiel uniquement).
Tu as raison en partie sur ce point.
Il est clair que si l'allocation d'un objet de quelques octets échoue, c'est que ta machine est à la ramasse partout car elle n'a de mémoire nulle part et doit swapper à mort depuis un moment. Que l'application crash à ce moment (sans destruction de données bien entendu) est un traitement d'erreur qu'on pourrait considérer comme acceptable car après tout à part quitter tu n'as pas grand chose à faire.
Si par contre l'objet est plus conséquent il peut être intéressant de fermer le tout proprement voire d'essayer de revenir à un état stable précédent. C'est par exemple ce que font les SGBD en général.