Aaah, ces trolls C/C++/<insérer votre langage favori ici> m'ont toujours fait rire.
La plupart semble oublier une vérité simple : un outil aussi puissant soit-il ne fera d'un mauvais programmeur qu'un ... mauvais programmeur.
Un mauvais programmeur C++, te fera une application avec 30000 classes, allant jusqu'à modéliser "class Proton; class Neutron; class Electron;", te démontrant qu'il peut modéliser l'univers de la sorte, mais qu'avec la cascade d'allocation/traitement/initialisation chaque déclaration d'objet nécessite 512M de RAM et une quantité non négligeable de CPU pour tourner à une vitesse décente (C.f CImg library http://cimg.sourceforge.net(...) un cas d'école).
De l'autre coté tu as le programmeur C, formé à COBOL, qui te rajoute un #ifdef tous les 2 lignes de codes, des fonctions de 2578 lignes qui s'embourbent à réinventer la roue à chaque instruction, des variables globales à foison, des effets de bord à tous les étages, pas de commentaires et surtout pas de documentation (de toute façon qui y comprends encore quelque chose ?). C'est hélas le cas de beaucoup d'applis écrites en C et datant d'un certain âge (admirez par ailleurs ce programme : http://sourceforge.net/projects/afbackup/(...))
La faute au langage ? Ben voyons, il a bon dos ! Un problème d'interface chaise-clavier surtout.
Ce qui a d'intéressant en C++, c'est son concept objet. Mais franchement avec un peu d'imagination, il est possible de faire de même en C, sans que ce soit un calvaire pour y comprendre quelque chose ou pire, de redéfinir un langage par dessus le langage.
Ce que je demande à une API c'est d'être avant tout documentée et d'être efficace eu égart du traitement offert. Rien n'est pire que de devoir se taper les sources de quelqu'un d'autre pour comprendre comment ça fonctionne (c'est ce que je reproche à GTK, et à beaucoup d'autres aussi hélas).
Souvenez-vous de ce que disait Nicolas Boileau (17ème siècle quand même) :
"Ce qui se conçoit bien, s'énonce clairement
Et les mots pour le dire arrive aisément."
[^] # Re: Heu le C ?
Posté par tpierron . En réponse au message Bien s'entourer en c, et plus si affinités. Évalué à 7.
La plupart semble oublier une vérité simple : un outil aussi puissant soit-il ne fera d'un mauvais programmeur qu'un ... mauvais programmeur.
Un mauvais programmeur C++, te fera une application avec 30000 classes, allant jusqu'à modéliser "class Proton; class Neutron; class Electron;", te démontrant qu'il peut modéliser l'univers de la sorte, mais qu'avec la cascade d'allocation/traitement/initialisation chaque déclaration d'objet nécessite 512M de RAM et une quantité non négligeable de CPU pour tourner à une vitesse décente (C.f CImg library http://cimg.sourceforge.net(...) un cas d'école).
De l'autre coté tu as le programmeur C, formé à COBOL, qui te rajoute un #ifdef tous les 2 lignes de codes, des fonctions de 2578 lignes qui s'embourbent à réinventer la roue à chaque instruction, des variables globales à foison, des effets de bord à tous les étages, pas de commentaires et surtout pas de documentation (de toute façon qui y comprends encore quelque chose ?). C'est hélas le cas de beaucoup d'applis écrites en C et datant d'un certain âge (admirez par ailleurs ce programme : http://sourceforge.net/projects/afbackup/(...))
La faute au langage ? Ben voyons, il a bon dos ! Un problème d'interface chaise-clavier surtout.
Ce qui a d'intéressant en C++, c'est son concept objet. Mais franchement avec un peu d'imagination, il est possible de faire de même en C, sans que ce soit un calvaire pour y comprendre quelque chose ou pire, de redéfinir un langage par dessus le langage.
Ce que je demande à une API c'est d'être avant tout documentée et d'être efficace eu égart du traitement offert. Rien n'est pire que de devoir se taper les sources de quelqu'un d'autre pour comprendre comment ça fonctionne (c'est ce que je reproche à GTK, et à beaucoup d'autres aussi hélas).
Souvenez-vous de ce que disait Nicolas Boileau (17ème siècle quand même) :
"Ce qui se conçoit bien, s'énonce clairement
Et les mots pour le dire arrive aisément."
CQFD.