fatal_error a écrit:donc déjà
1) non C++ n'est pas une extension du C. et d'ailleurs on récupère des codeurs C qui font n'importe quoi en C++...
2) non C c'est pas fait pour experts. C c'est fait pour des systèmes qui exigent de bonnes performances. ca veut pas dire que ya que des gurus qui peuvent faire du C (même si ya qu'un guru qui va exploiter pleinement les capacités du langage).
3) non faire beaucoup de fonctions imbriquées, c'est bad practice. pour raisons de mémoire, mais aussi pour raison de segmentation de code et tout simplement de tests.
4) http://stackoverflow.com/questions/4020419/why-arent-python-nested-functions-called-closures explique que les lectures de variable outer scope sont possibles, c'est lécriture sur variable qui n'est pas possible (la modification l'est)
5) le python n'exige pas une compilation de l'utilisateur*. (ca veut pas dire que rien n'est compilé (voir les .pyc qui sont générés)
6) pas mal de langages permettent la définition de variable à la volée. et ca marche pas mal quand on développe pas n'importe comment. C'est ptet pas génial pour quelqu'un qui débute, certes. Après c'est assez subjectif et dépendant des besoins.
7) quand à True + True, au delà de la stupidité d'écrire ca, les casts à la volée peuvent se révéler assez agréables... ou bien assez désastreux il s'agit juste de pas faire n'importe quoi..
- Le C... Rien que la notion de pointeur reste floue pour tellement de gens... Comment dire.
Quelle est la différence entre char a[][32], et char (*a)[32] ?
Comment déclarer un tableau de pointeurs vers des tableaux d'entiers ?
La confusion tableau/pointeur est elle aussi très difficile à appréhender.
Comment expliquer que a[12] = *(a+12) = 12[a]
pourquoi, si je déclare
int x[13];
int *y = x; /* quelle est la différence entre x et y ? Pourquoi n'ont-ils pas le même type ? */
int *a = &(x[7]);
int *b = x + 7; // b et a ont la même valeur
- Les procédures imbriquées déconseillées pour des raisons de mémoire ? En quoi une fonction imbriquée prends plus de mémoire qu'une fonction qui ne l'est pas ?
- les variables à la volée c'est une source d'erreur et un gros défaut de conception de python. Pourquoi ne pas déclarer ses variables ? Ca coute 3 francs 6 sous et ça permet de détecter un très grand nombre d'erreurs
- les casts à la volée c'est aussi un gros problème du C++. Je ne suis pas pour aller dans l'extrême comme ADA, mais c'est encore une fois une source d'erreur. Il est rare qu'un cast à la volée soit une volonté du programmeur. Et dans ce cas, pourquoi ne pas les expliciter, comme en C par exemple ?
