Le domaine de l'embarqué est certainement un de ceux où le C est encore nécessaire.
Je fais une nuance entre "connaître assez de C pour comprendre et utiliser une interface écrite en C" et "être capable de développer en C". Autant le premier point me semble nécessaire dans tous les cas, autant le second me semble inutile dans un grand nombre de contextes (en tout cas, en 12 de boulot en C++, je n'en n'ai jamais eu besoin).
Pour ce qui est des API d'OS en C, déjà, ce n'est pas forcément vrai (Next, Windows qui a des API en COM, et commence à proposer des API .NET par endroit), en plus, je suis loin d'être certain que ça n'ait jamais tué personne, par les bugs que ça a pu introduire, mais je n'ai pas d'exemple concret
Mais surtout, c'est une chose très lourde qui rend l'utilisation de ces API lourde, peu intuitive et risquée.
La preuve, c'est le nombre de gens qui prennent une bibliothèque portable en C++ wrappant une partie de l'OS alors même qu'ils savent bien que la portabilité ne sera jamais utilisée, simplement parce qu'elle offre une API plus agréable d'emploi (par exemple boost::thread, boost::filesystem) ou qui développent eux même un wrapper par dessus l'OS, dès qu'il s'agit d'appeler la fonction plus d'une fois (exemple : J'ai écrit une série de fonction
pour wrapper les fonctions de conversions de types de caractères de windows, pour accéder à la registry, je me suis fait ma classe qui gère les libérations de ressources...).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 template<class DestStringType, class SourceStringType> DestString string_cast<DestStringType>(SourceStringType const &str)
Partager