IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

  1. #181
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 012
    Points : 23 145
    Points
    23 145
    Par défaut
    Ce n'est pas cohérent dans le sens où certaines fonctions auront des préconditions, et d'autres non, alors qu'elles font presque la même chose. De même, les préconditions ne seront pas les mêmes d'une fonction à l'autre, de quoi perdre l'utilisateur de l'API.

    De plus, les préconditions sont là pour vérifier que le domaine des paramètres est correct, or une liste vide fait parti du domaine auquel la fonction peut logiquement s'attendre.


    Citation Envoyé par Pyramidev Voir le message
    L'utilisateur n'a alors pas besoin de comprendre l'implémentation des fonctions.
    Pas en détail, mais il faut qu'il en ai un a priori pour comprendre la pré-condition.

    Citation Envoyé par Pyramidev Voir le message
    Je me rappelle de certains besoins clients tordus et compliqués pour lesquelles j'avais décomposé une fonction en plein de sous-fonctions pour éviter que la fonction ne fasse 2 kilomètres. Certaines sous-fonctions avaient plusieurs paramètres qui devaient respecter certaines préconditions. Il fallait lire ma documentation pour savoir quelles étaient ces préconditions, car il n'y avait pas la place dans le nom de ces fonctions pour les exprimer.
    Je ne dis pas que les pré-conditions sont "mauvaises" et qu'il ne faut pas les utiliser.
    Par exemple, si tu as un graphe, les préconditions peuvent être compliquées, mais tu t'attends à ce que ta fonction reçoive un graphe "valide". Dans ce cas tu peux proposer une fonction isValid(), si jamais l'utilisateur a besoin de se passer du try/catch.

    Pour le reste, tu peux retourner null, et c'est à l'utilisateur de vérifier la valeur de retour et de lancer une erreur. Sinon, tu vas te retrouver avec des :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    let x;
    try{ x = foo(); } catch(e) {}
    faa(x);
    Parce que les préconditions seront trop compliquées/enquiquinantes pour écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    let x = null;
    if(? y /* TODO */ )
         x = foo(y);
    faa(x);

    Citation Envoyé par Pyramidev Voir le message
    Le jour où le bogue est survenu en production, cela s'est manifesté par une violation de précondition.
    Je pense que le JavaScript est un langage de "prototypage", un peu comme python. Ce n'est pas fait pour cela.
    Si tu n'as pas de typage statique, cela devient enquiquinant de vérifier le type de chaque paramètre, et encore plus quand il s'agit de liste ou de listes de listes d'entiers, où il faut vérifier chaque éléments un à un.
    Alors si ta fonction a pour vocation d'être appelée dans un boucle assez grosse, et ta liste est assez grosse... cela peut devenir impossible à exécuter.

    Derrière, je ne peux pas décider de si je mets des préconditions en fonction du nombre de fois que ma fonction est appelée.

    Citation Envoyé par Pyramidev Voir le message
    En général, quand le nom de la fonction commence par find, elle retourne un résultat optionnel. Du coup, tu pourrais renommer ta fonction get_second_greater en find_second_greatest ou find_second_greatest_value, même si je préfère la nommer get_second_greatest_value_or_null.
    Ok pour find_*

  2. #182
    Expert éminent
    Avatar de Pyramidev
    Homme Profil pro
    Développeur
    Inscrit en
    Avril 2016
    Messages
    1 471
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Avril 2016
    Messages : 1 471
    Points : 6 110
    Points
    6 110
    Par défaut
    Citation Envoyé par Neckara Voir le message
    Ce n'est pas cohérent dans le sens où certaines fonctions auront des préconditions, et d'autres non, alors qu'elles font presque la même chose. De même, les préconditions ne seront pas les mêmes d'une fonction à l'autre, de quoi perdre l'utilisateur de l'API.

    De plus, les préconditions sont là pour vérifier que le domaine des paramètres est correct, or une liste vide fait parti du domaine auquel la fonction peut logiquement s'attendre.
    Si on adopte une règle du genre « chaque fois qu'une fonction n'arrive pas à extraire quelque chose d'une liste, alors elle retourne null » et qu'on l'applique à toutes les fonctions dont :
    • récupérer le premier ou le dernier élément,
    • récupérer la valeur maximale ou minimale et
    • calculer la moyenne / la médiane / autre chose.

    alors l'API sera sûrement facile à retenir, car tout sera homogène dans le sens où aucune précondition n'interdira une liste vide. Mais je penserais quand même qu'une telle API ne serait pas adaptée. De mon côté, dans tous les exemples ci-dessus, j'aurais interdit les listes vides en entrée, même si j'aurais autorisé les listes vides pour des opérations comme :
    • compter le nombre d'éléments qui vérifient un certain critère et
    • supprimer tous les doublons.


    La raison est que les humains ont tendance à oublier les cas limites et peuvent facilement oublier qu'une liste peut être vide. Par exemple, moi-même, quand j'avais lu en vitesse ta fonction unique_sort, le passage let result = [list[0]]; qui oubliait le cas de la liste vide ne m'avait pas sauté aux yeux. J'aurais eu besoin de l'analyser plus longtemps pour trouver l'erreur.

    Pour plein d'autres opérations sur les listes, c'est pareil. Quand quelqu'un appelle une fonction qui retourne le maximum ou la moyenne d'une liste d'entiers, il se peut qu'il oublie que la liste est peut-être vide et qu'il croit que la fonction va vraiment lui retourner un entier, pas null. Alors, la suite de son code partira du principe que ce que la fonction a retourné est bien un entier. Face à ce genre d'oubli, il est utile d'avoir des préconditions avec des contrôles actifs pour savoir facilement d'où viennent certains bogues.

    Les préconditions de l'API seront plus compliquée à retenir, mais ce sera mieux que de toujours accepter les listes vides.

    Citation Envoyé par Neckara Voir le message
    Pour le reste, tu peux retourner null, et c'est à l'utilisateur de vérifier la valeur de retour et de lancer une erreur. Sinon, tu vas te retrouver avec des :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    let x;
    try{ x = foo(); } catch(e) {}
    faa(x);
    Parce que les préconditions seront trop compliquées/enquiquinantes pour écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    let x = null;
    if(? y /* TODO */ )
         x = foo(y);
    faa(x);
    En cas de besoin, on peut créer une fonction qui renvoie un booléen qui dit si la précondition est vérifiée, par exemple matchesUserCodeFormat(inputString). En plus de raccourcir le code, cela permet d'avoir une certaine cohérence. Donc, dans ton exemple théorique, le if(? y /* TODO */ ) ne serait pas compliqué à écrire.

    À part ça, dans le cas de la programmation par contrats, l'utilisateur n'a pas le droit de violer intentionnellement les préconditions, même s'il le fait dans un bloc try et si l'implémentation actuelle décide de lancer une exception en cas de violation de précondition.
    S'il a le droit, alors ce ne ne sont plus des préconditions : ce sont seulement des conditions dans lesquelles on garantie que l'on lance une exception qui ne signale pas une erreur de programmation.

    Citation Envoyé par Neckara Voir le message
    Citation Envoyé par Pyramidev Voir le message
    Le jour où le bogue est survenu en production, cela s'est manifesté par une violation de précondition.
    Je pense que le JavaScript est un langage de "prototypage", un peu comme python. Ce n'est pas fait pour cela.
    Si tu n'as pas de typage statique, cela devient enquiquinant de vérifier le type de chaque paramètre, et encore plus quand il s'agit de liste ou de listes de listes d'entiers, où il faut vérifier chaque éléments un à un.
    Alors si ta fonction a pour vocation d'être appelée dans un boucle assez grosse, et ta liste est assez grosse... cela peut devenir impossible à exécuter.
    J'avais oublié de préciser que le bogue en production dont je parlais venait d'un programme C++.

    Dans le cas des langages qui n'ont pas de typage statique, j'avoue ne pas vérifier les types de chaque paramètre à l'exécution, car c'est trop lourd.

    Le jour où j'étudierai le JavaScript, j'étudierai probablement aussi TypeScript, sauf peut-être si, d'ici là, le JavaScript se sera enrichi d'un typage statique optionnel.

    Pour info, Python 3 possède déjà un typage statique optionnel, grâce aux annotations de types. Pour vérifier le typage, il faut alors utiliser un outil d'analyse statique de code comme mypy.
    Par exemple, voici un code en Python 3.6 qui s'exécute, mais qui est rejeté par mypy (copié-collé depuis un de mes anciens messages) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    import abc, os
    
    class A(metaclass=abc.ABCMeta):
    	@abc.abstractmethod
    	def foo(self, x: int) -> None: pass
    
    # Définition d'une classe B qui dérive de A :
    class B(A):
    	def foo(self, x : int) -> None:
    		print(2*x)
    	def bar(self, x : int) -> None:
    		print(5*x)
    
    if __name__ == '__main__':
    	obj : A = B()          # obj est de type A et pointe vers une instance de B.
    	obj.foo('test')        # Erreur selon mypy, car 'test' n'est pas un entier.
    	obj.foo(10)            # OK
    	obj.bar(10)            # Erreur selon mypy, car bar n'est pas une méthode de A.
    	if isinstance(obj, B):
    		obj.bar(10)        # OK : dans ce if, obj est de type B.
    	os.system('pause')

  3. #183
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 012
    Points : 23 145
    Points
    23 145
    Par défaut
    Citation Envoyé par Pyramidev Voir le message
    La raison est que les humains ont tendance à oublier les cas limites et peuvent facilement oublier qu'une liste peut être vide.
    Justement, tu n'as pas à t'occuper des cas limites, juste à savoir que la fonction peut retourner null. Ce qui n'est pas le cas avec les pré-conditions, où tu dois avoir conscience de tous les cas limites, et les tester avant d'appeler la fonction.

    Citation Envoyé par Pyramidev Voir le message
    En cas de besoin, on peut créer une fonction qui renvoie un booléen qui dit si la précondition est vérifiée, par exemple matchesUserCodeFormat(inputString). En plus de raccourcir le code, cela permet d'avoir une certaine cohérence. Donc, dans ton exemple théorique, le if(? y /* TODO */ ) ne serait pas compliqué à écrire.
    Sauf que tu peux avoir plusieurs préconditions, et que cela revient à comprendre comment l'algorithme fonctionne en interne, afin de comprendre quelles préconditions tester. Ce qui ne devrait pas être le cas, ce n'est pas à l'utilisateur de l'API de s'en préoccuper, tant qu'il transmet des types "valides".

    Or une liste d'entier, même vide, reste une liste d'entier valide.

    Citation Envoyé par Pyramidev Voir le message
    À part ça, dans le cas de la programmation par contrats, l'utilisateur n'a pas le droit de violer intentionnellement les préconditions, même s'il le fait dans un bloc try et si l'implémentation actuelle décide de lancer une exception en cas de violation de précondition.
    S'il a le droit, alors ce ne ne sont plus des préconditions : ce sont seulement des conditions dans lesquelles on garantie que l'on lance une exception qui ne signale pas une erreur de programmation.
    Ce qui pose problème lorsque cela fait parti du comportement attendu.

  4. #184
    Expert éminent
    Avatar de Pyramidev
    Homme Profil pro
    Développeur
    Inscrit en
    Avril 2016
    Messages
    1 471
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Avril 2016
    Messages : 1 471
    Points : 6 110
    Points
    6 110
    Par défaut
    Citation Envoyé par Neckara Voir le message
    Citation Envoyé par Pyramidev Voir le message
    La raison est que les humains ont tendance à oublier les cas limites et peuvent facilement oublier qu'une liste peut être vide.
    Justement, tu n'as pas à t'occuper des cas limites, juste à savoir que la fonction peut retourner null. Ce qui n'est pas le cas avec les pré-conditions, où tu dois avoir conscience de tous les cas limites, et les tester avant d'appeler la fonction.
    Citation Envoyé par Neckara Voir le message
    Sauf que tu peux avoir plusieurs préconditions, et que cela revient à comprendre comment l'algorithme fonctionne en interne, afin de comprendre quelles préconditions tester. Ce qui ne devrait pas être le cas, ce n'est pas à l'utilisateur de l'API de s'en préoccuper, tant qu'il transmet des types "valides".

    Or une liste d'entier, même vide, reste une liste d'entier valide.
    Concrètement, à quoi ressemble ton code pour les contrôles d'erreur ? Par exemple, si tu appelles une fonction get_maximum qui récupère le maximum d'une liste d'entiers, avant de manipuler la valeur retournée par la fonction, vérifies-tu systématiquement (sauf oubli) que cette valeur n'est pas null avant de t'en servir comme un entier ? Même dans une portion du code où tu sais que la liste n'est pas vide ? Considères-tu que l'utilisateur doit coder comme si il savait que get_maximum pouvait retourner null, mais sans savoir que cela n'arrive que quand la liste d'entiers en entrée est vide ?

    Ça me semblerait étrange, car le code deviendrait très verbeux : tu écrirais des if(variable == null) partout. D'ailleurs, en général, que fais-tu à l'intérieur de ce if(variable == null) ? Lances-tu une exception, par exemple avec un message du genre "La liste machin n'a pas de maximum." au lieu de "La liste machin est vide." ?

    De mon côté, si j'appelle une fonction get_maximum dans une portion de code où je sais que la liste d'entiers est non vide, je considère que la fonction me retourne un entier. Par contre, j'ai quand même envie qu'elle vérifie que la liste est non vide et me signale une erreur si elle est vide. Comme ça, le jour où il y aura un réusinage de code maladroit après lequel l'appel de get_maximum se retrouvera dans une portion de code où la liste en entrée pourra être vide, le contrôle dans get_maximum sera utile.

    Citation Envoyé par Neckara Voir le message
    Ce qui pose problème lorsque cela fait parti du comportement attendu.
    Les exceptions qui signalent explicitement des erreurs de programmation doivent avoir un type différent des autres. Par exemple, en C++, c'est std::logic_error (et ses classes dérivées).

  5. #185
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 012
    Points : 23 145
    Points
    23 145
    Par défaut
    Ok, à la limite, je veux bien faire la distinction entre liste vide et liste non-vide.
    Après tout en JS, une liste vide s'évalue à false, et une une liste non-vide à true.

    En revanche, je reste sur mes positions en disant que "une liste avec au moins deux éléments" est trop spécifique. D'autant plus que, comment fais-tu pour la fonction "retourner la deuxième plus grande valeur" ?

    Citation Envoyé par Pyramidev Voir le message
    Ça me semblerait étrange, car le code deviendrait très verbeux : tu écrirais des if(variable == null) partout. D'ailleurs, en général, que fais-tu à l'intérieur de ce if(variable == null) ? Lances-tu une exception, par exemple avec un message du genre "La liste machin n'a pas de maximum." au lieu de "La liste machin est vide." ?
    Cela dépend du code.

    C'est un petit peu la même chose que lorsque find retourne null, il n'y a pas grande différence. Cela peut être arrêter une boucle, retourner une certaine valeur, lancer une exception avec plus de précisions quant au contexte appelant, un if pour gérer un cas particulier, voire rien du tout si cette valeur est déjà acceptée par le reste du code.

    Citation Envoyé par Pyramidev Voir le message
    Comme ça, le jour où il y aura un réusinage de code maladroit après lequel l'appel de get_maximum se retrouvera dans une portion de code où la liste en entrée pourra être vide, le contrôle dans get_maximum sera utile.
    Sauf qu'à avoir une API "compliquée", tu vas augmenter le risque d'erreur du développeur, qui pourrait oublier de tester une précondition (ou mal la tester), ce qui dans un cas particulier va faire planter l'application.

    De même si dans le cas d'un réusinage la fonction se retrouve dans un bout de code où la précondition n'est pas testée. Voire, pire, si la pré-condition change, il faudra aller modifier potentiellement toutes les fonctions appelantes.

  6. #186
    Expert éminent
    Avatar de Pyramidev
    Homme Profil pro
    Développeur
    Inscrit en
    Avril 2016
    Messages
    1 471
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Avril 2016
    Messages : 1 471
    Points : 6 110
    Points
    6 110
    Par défaut
    Citation Envoyé par Neckara Voir le message
    comment fais-tu pour la fonction "retourner la deuxième plus grande valeur" ?
    Soient les 4 fonctions suivantes :
    • get_second_greatest_element_or_null (sans précondition) : si on lui donne la liste [3, 4, 5, 5, 5], cette fonction retourne 5. Si la liste a 0 ou 1 élément, cette fonction retourne null.
    • get_second_greatest_element : idem mais avec une précondition : la liste en entrée doit avoir au moins deux éléments.
    • get_second_greatest_value_or_null (sans précondition) : si on lui donne la liste [3, 4, 5, 5, 5], cette fonction retourne 4. Si tous les éléments de la liste ont la même valeur, cette fonction retourne null.
    • get_second_greatest_value : idem mais avec une précondition : la liste en entrée doit avoir au moins deux valeurs distinctes.


    Si j'ai bien compris ta position, tu aurais gardé get_second_greatest_element_or_null et get_second_greatest_value_or_null mais avec des noms différents, peut-être find_second_greatest_element et find_second_greatest_value. Comme ça, les deux fonctions sont cohérentes et n'ont pas de précondition compliquée.

    Une autre position aurait été de garder get_second_greatest_element et get_second_greatest_value. Comme ça, les deux fonctions sont cohérentes et on peut profiter des contrôles de la programmation par contrat (quand ils sont actifs). Dans un de mes messages, j'avais rejeté get_second_greatest_value à cause de la précondition qui risque d'être coûteuse à vérifier dans le code appelant pour certaines listes. Mais, après réflexion, ce n'est vraiment gênant que quand on a besoin de maximiser les performances. Donc il faudrait voir en fonction du contexte.

    Dans un de mes précédents messages, ma position était de garder get_second_greatest_element et get_second_greatest_value_or_null. Le suffixe _or_null de la deuxième fonction est alors indispensable pour souligner la différence d'utilisation de ces deux fonctions.

    Après réflexion, je me demande si le plus simple ne serait pas de garder les 4.

    Citation Envoyé par Neckara Voir le message
    Sauf qu'à avoir une API "compliquée", tu vas augmenter le risque d'erreur du développeur, qui pourrait oublier de tester une précondition (ou mal la tester), ce qui dans un cas particulier va faire planter l'application.
    Il faudrait peut-être une convention de nommage qui nomme d'une manière particulière les fonctions qui ont une précondition. Je creuserai ce point. Ça me fait penser à un fil sur le langage Pony. En Pony, les fonctions ayant des préconditions doivent se terminer par un point d'interrogation.

    Citation Envoyé par Neckara Voir le message
    De même si dans le cas d'un réusinage la fonction se retrouve dans un bout de code où la précondition n'est pas testée.
    C'est dans un cas comme celui-là je que je suis content de faire de la programmation par contrat :
    Citation Envoyé par Pyramidev Voir le message
    De mon côté, si j'appelle une fonction get_maximum dans une portion de code où je sais que la liste d'entiers est non vide, je considère que la fonction me retourne un entier. Par contre, j'ai quand même envie qu'elle vérifie que la liste est non vide et me signale une erreur si elle est vide. Comme ça, le jour où il y aura un réusinage de code maladroit après lequel l'appel de get_maximum se retrouvera dans une portion de code où la liste en entrée pourra être vide, le contrôle dans get_maximum sera utile.
    Citation Envoyé par Neckara Voir le message
    Voire, pire, si la pré-condition change, il faudra aller modifier potentiellement toutes les fonctions appelantes.
    Pour les préconditions les plus verbeuses ou qui ont le plus de chances de changer, je passe par une fonction, par exemple : matchesUserCodeFormat(inputString). Alors, le jour où la précondition change, à part cette fonction, je n'ai pas grand chose à changer.

  7. #187
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 012
    Points : 23 145
    Points
    23 145
    Par défaut
    Citation Envoyé par Pyramidev Voir le message
    Après réflexion, je me demande si le plus simple ne serait pas de garder les 4.
    Dans ce cas, je ne peux être que d'accord.

    Sachant qu'une alternative est aussi d'utiliser un paramètre facultatif pour donner le comportement en cas d'élément non-trouvé.

    Citation Envoyé par Pyramidev Voir le message
    Ça me fait penser à un fil sur le langage Pony.
    Rhôoo sur le coup, je pensais que tu parlais du FiM++, je suis déçu.

  8. #188
    Expert éminent sénior
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    6 803
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Décembre 2007
    Messages : 6 803
    Points : 32 058
    Points
    32 058
    Par défaut
    Citation Envoyé par ddoumeche Voir le message
    Ce n'est pas traître mais le reflet de la multiplicité des règles propres à chaque métier. Savoir bien lire une spécification et lever les ambiguïtés, sous entendus et non dits est aussi important voir plus important que de savoir coder.
    Le nombre de plantages de projets à cause d'incompréhensions est incalculable(.../...)
    Voilà. Merci d'avoir dit ce que je voulais dire mieux que ce que je n'aurais pu le dire. Un mec moins bon, mais qui fait gaffe, sera largement préférable à un talent superdoué mais qui croit avoir compris, et qui en cas de doute, se dit, "ça doit être ça".

    Merci à tous les autres d'être entrés sur un débat fort intéressant, la gestion d'erreurs. Qui explique aussi pourquoi je laisse deux heures : il faut faire un code propre, pas seulement un code qui marche. D'ailleurs, vous vous battez pour savoir quel est le code le plus propre, et c'est tout à vôtre honneur. Je veux des gens qui se battent pour ça.
    Les 4 règles d'airain du développement informatique sont, d'après Michael C. Kasten :
    1)on ne peut pas établir un chiffrage tant qu'on a pas finalisé la conception
    2)on ne peut pas finaliser la conception tant qu'on a pas complètement compris toutes les exigences
    3)le temps de comprendre toutes les exigences, le projet est terminé
    4)le temps de terminer le projet, les exigences ont changé
    Et le serment de non-allégiance :
    Je promets de n’exclure aucune idée sur la base de sa source mais de donner toute la considération nécessaire aux idées de toutes les écoles ou lignes de pensées afin de trouver celle qui est la mieux adaptée à une situation donnée.

  9. #189
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 012
    Points : 23 145
    Points
    23 145
    Par défaut
    Citation Envoyé par el_slapper Voir le message
    D'ailleurs, vous vous battez pour savoir quel est le code le plus propre, et c'est tout à vôtre honneur. Je veux des gens qui se battent pour ça.
    Bravo, maintenant je m'imagine avec des candidats en train de physiquement s'étriper pendant les recrutements.
    10 candidats rentrent... un seul ressort.

    Avec le recruteur, drapé, surplombant la scène, levant ou abaissant son pouce.
    Ajoutant à son désir du python, du PHP (éléphant), ou du Linux (manchot), pour pimenter le tout.


    Maintenant que j'ai l'image en tête, je peux plus penser à autre chose.

  10. #190
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Avril 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2012
    Messages : 4
    Points : 5
    Points
    5
    Par défaut sang impur
    C'est haineux directement, un moment ça dit "Qu'un sang impur abreuve nos sillons".
    "Sang impur" c'est haineux, en plus ça ne correspond pas à la façon de penser française...
    En France il n'y a pas de notion de "sang pur" ou de "race". (on est pas allemand ^^)
    Pour éviter de collecter des points Godwin, faut avoir un minimum de culture historique: le "sang pur" est celui des nobles et par opposition le "sang impur" est celui du "peuple", donc rien de raciste dans cette histoire, à part considérer le peuple comme un race à part des nobles, mais justement c'est la revendication fondamentale des acteurs de la révolution française que d'avoir mit fin à la notion de différence "d'état" (noblesse, clergé, tiers état) entre les citoyens français (mais pas encore à l'époque des autres "races").
    Et les "sillons" ne sont pas des labours, mais ce qu'on appelle actuellement les tranchées.
    Le sens de la phrase est donc un appel au peuple à verser son propre sang dans les tranchées pour défendre la patrie attaquée par les "tyrans".
    C'est sûr que l'analyse hors contexte historique est délicate: je n'ose imaginer comment serait considéré l'ironie utilisée par Montesquieu dans son livre "De l’esclavage des Nègres".

  11. #191
    Membre extrêmement actif Avatar de ddoumeche
    Homme Profil pro
    Ingénieur recherche et développement
    Inscrit en
    Octobre 2007
    Messages
    1 676
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Singapour

    Informations professionnelles :
    Activité : Ingénieur recherche et développement

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 676
    Points : 2 009
    Points
    2 009
    Par défaut
    Citation Envoyé par namby91 Voir le message
    Pour éviter de collecter des points Godwin, faut avoir un minimum de culture historique: le "sang pur" est celui des nobles et par opposition le "sang impur" est celui du "peuple", donc rien de raciste dans cette histoire, à part considérer le peuple comme un race à part des nobles, mais justement c'est la revendication fondamentale des acteurs de la révolution française que d'avoir mit fin à la notion de différence "d'état" (noblesse, clergé, tiers état) entre les citoyens français (mais pas encore à l'époque des autres "races").
    Et les "sillons" ne sont pas des labours, mais ce qu'on appelle actuellement les tranchées.
    Le sens de la phrase est donc un appel au peuple à verser son propre sang dans les tranchées pour défendre la patrie attaquée par les "tyrans".
    C'est sûr que l'analyse hors contexte historique est délicate: je n'ose imaginer comment serait considéré l'ironie utilisée par Montesquieu dans son livre "De l’esclavage des Nègres".
    C'est une interprétation politiquement correcte, mais totalement fausse. La marseillaise a été composée en 1792 pour l'armée du rhin, et le sang impur est bien sur celui du soldat autrichien. Un chant patriotique n'est pas là pour faire du sentiment mais pour encourager à faucher l'ennemi, le féroce soldat, par la mitraille. Et le canon
    La joie de l'âme est dans la planification -- Louis Hubert Liautey

  12. #192
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 012
    Points : 23 145
    Points
    23 145
    Par défaut
    Citation Envoyé par ddoumeche Voir le message
    Un chant patriotique n'est pas là pour faire du sentiment
    Faire du sentiment, c'est pourtant tout le but d'une chanson patriotique.

    Ce n'est pas avec la logique que tu convaincras un soldat d'aller se faire massacrer.


    Citation Envoyé par ddoumeche Voir le message
    C'est une interprétation politiquement correcte, mais totalement fausse. La marseillaise a été composée en 1792 pour l'armée du rhin, et le sang impur est bien sur celui du soldat autrichien.
    Sur quoi t'appuies-tu pour affirmer cela ?


    Personnellement, je connais quelques chansons qui pourrait parfaitement entrer dans la catégorie "chant patriotique", qui parlent de verser son sang:









    Plus classique le chant des partisans :


    La blanche hermine est un peu moins explicite :


    La Strasbourgeoise n'est pas très gaie non plus :



    Il ne faut pas oublier qu'il y a des notions d'honneurs/bravoure, le sacrifice de soit pour une noble cause. Mourir sur le champ de combat après avoir bien combattu, encore plus lorsque c'était pour une cause religieuse/patriotique, ce n'était pas rien.
    Il n'y a qu'à se rappeler les vikings qui souhaitaient mourir au combat pour entrer dans le Valhalla, ce qu'on retrouve aussi dans la culture islamique.

    Derrière, il y a aussi les acculés, "la liberté ou la mort", "la victoire ou la mort", préférant la mort à une vie d'esclavage.


    Les batailles n'ont pas que pour but de tuer l'opposant, mais aussi de sauver les civils (cf batailles de Berlin, et de Vienne).

  13. #193
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Neckara Voir le message
    Sur quoi t'appuies-tu pour affirmer cela ?
    Avant de s'appeler La Marseillaise, c'était le Chant de Guerre pour l'Armée du Rhin et c'est le maire de Strasbourg qui avait demandé à Rouget de Lisle de la composer pour remonter le moral des troupes qui se battaient contre les autrichiens... Des marseillais s'étaient battus aux côtés de l'Armée du Rhin et ils se sont accaparé le chant qu'ils ont rebaptisé à leur gloire lorsqu'ils sont rentrés au bercail

    -VX

  14. #194
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 012
    Points : 23 145
    Points
    23 145
    Par défaut
    Citation Envoyé par vxlan.is.top Voir le message
    Avant de s'appeler La Marseillaise, c'était le Chant de Guerre pour l'Armée du Rhin et c'est le maire de Strasbourg qui avait demandé à Rouget de Lisle de la composer pour remonter le moral des troupes qui se battaient contre les autrichiens... Des marseillais s'étaient battus aux côtés de l'Armée du Rhin et ils se sont accaparé le chant qu'ils ont rebaptisé à leur gloire lorsqu'ils sont rentrés au bercail
    Oui, c'est bien, mais cela ne me dit rien quant à l'interprétation du "sang impur".

  15. #195
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Neckara Voir le message
    Oui, c'est bien, mais cela ne me dit rien quant à l'interprétation du "sang impur".
    Ah oui. Le sang impur, c'est celui du peuple français qui se battait pour la France.

    Par opposition au sang pur, celui des nobles qui se destinaient aux "fonctions sociales" élevées (officiers et politiciens). Parce que lors du conflit avec les autrichiens, bcp de nobles s'étaient enfui

    Restait donc plus que le sang impur pour défendre la France.

    D'ailleurs, à y réfléchir, ce serait pas logique d'abreuver nos sillons (nourrir notre terre) avec le sang des ennemis

    -VX

  16. #196
    Membre extrêmement actif Avatar de ddoumeche
    Homme Profil pro
    Ingénieur recherche et développement
    Inscrit en
    Octobre 2007
    Messages
    1 676
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Singapour

    Informations professionnelles :
    Activité : Ingénieur recherche et développement

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 676
    Points : 2 009
    Points
    2 009
    Par défaut
    Citation Envoyé par Neckara Voir le message
    Faire du sentiment, c'est pourtant tout le but d'une chanson patriotique.
    Ce n'est pas avec la logique que tu convaincras un soldat d'aller se faire massacrer.
    Je disais faire du sentiment dans le sens de faire du romantisme. Le but du chant patriotique est de réveiller les instincts primaires, souder l'esprit de corps, désensibiliser le soldat pour éviter qu'il ne panique donc rompe la ligne ... bref le préparer a affronter la mort, même si l'homme du XVIIIème sait bien de quoi la mort retourne.

    D'ailleurs le calme dans l'adversité et la férocité se rangent-ils dans la catégorie des sentiments et de l’émotionnel ? pas forcément selon la roue des émotions de Robert Plutchik, mais je pinaille.
    Nom : 2018_08_09_18_49_29_Plutchik_wheel_fr_Émotion_Wikipédia_Chromium.png
Affichages : 222
Taille : 110,2 Ko


    Citation Envoyé par Neckara Voir le message
    Sur quoi t'appuies-tu pour affirmer cela ?
    Sur le premier couplet tout simplement, qui parle du féroce soldat autrichien venant égorger la veuve et l'orphelin. Le sang impur dont il est question dans le refrain ne peut donc que faire référence au sien.

    Effectivement, les chants patriotiques français sont tragiques... une constante du XXème siècle, doit-on y voir là la source de notre légendaire pessimisme ?

    Le Sviachtchennaïa Voïna est aussi fort tragique, pas très poétique mais plus vaillant :


    Et Dixie Land nettement plus romantique pour les confédérés :



    Citation Envoyé par Neckara Voir le message
    Il ne faut pas oublier qu'il y a des notions d'honneurs/bravoure, le sacrifice de soit pour une noble cause. Mourir sur le champ de combat après avoir bien combattu, encore plus lorsque c'était pour une cause religieuse/patriotique, ce n'était pas rien.
    Il n'y a qu'à se rappeler les vikings qui souhaitaient mourir au combat pour entrer dans le Valhalla, ce qu'on retrouve aussi dans la culture islamique.
    Il est certain que si je commet quelques atrocités et rapines pour reprendre le Maine aux anglois, ou plus prêt de nous Le Mans aux chouans, et qu'en plus j'ai la bénédiction de Dieu lui même ou de la Nation (alors que le droit est sensé émaner du peuple selon l'idéologie de l'époque, mais passons), mon âme en sera transportée et je ne ressentirais ni remord ni culpabilité. Alors que si c'est pour un roi ou même un pape, les choses sont différentes, le roi peut se tromper ou avoir des motivations douteuses etc...

    Citation Envoyé par Neckara Voir le message
    Derrière, il y a aussi les acculés, "la liberté ou la mort", "la victoire ou la mort", préférant la mort à une vie d'esclavage.
    Ou la "La garde se meurt mais ne se rend pas.", que l'on peut voir dans le chef d'oeuvre de Sergueï Bondartchouk, Waterloo. Ceci dit, la Marseillaise parle dans son 2ème couplet de mis en esclavage mais je doute que l'Autriche ait eu de telles ambitions, d'autant que l'ancien régime a déjà supprimé le servage.

    Citation Envoyé par Neckara Voir le message
    Les batailles n'ont pas que pour but de tuer l'opposant, mais aussi de sauver les civils (cf batailles de Berlin, et de Vienne).
    Si tu parles de la bataille de Berlin d'avril 1945, je ne vois pas trop en quoi il s'agissait de sauver les civils, d'autant que les pertes civiles furent remarquablement faibles.
    La joie de l'âme est dans la planification -- Louis Hubert Liautey

  17. #197
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 012
    Points : 23 145
    Points
    23 145
    Par défaut
    Citation Envoyé par ddoumeche Voir le message
    Sur le premier couplet tout simplement, qui parle du féroce soldat autrichien venant égorger la veuve et l'orphelin. Le sang impur dont il est question dans le refrain ne peut donc que faire référence au sien.
    Je ne suis pas d'accord avec ton raisonnement que je pense être un non-consequitur.


    Citation Envoyé par ddoumeche Voir le message
    Alors que si c'est pour un roi ou même un pape, les choses sont différentes, le roi peut se tromper ou avoir des motivations douteuses etc...
    Ils restent de "droit divin", et représentent la parole de "Dieu" sur Terre.

    Pour le cas qui nous intéresse, l'honneur est presque un dieu en lui-même, une fin en soit. Nous n'avons plus cela en France à notre époque, mais il faut s'imaginer ce que cela représentait il y a plus de 200 ans.

    Citation Envoyé par ddoumeche Voir le message
    Ceci dit, la Marseillaise parle dans son 2ème couplet de mis en esclavage mais je doute que l'Autriche ait eu de telles ambitions, d'autant que l'ancien régime a déjà supprimé le servage.
    Ils estimaient juste que le rétablissement de la monarchie était une forme d'esclavage, avec l'impossibilité d'auto-déterminer le destin du pays, avec des droits qui disparaîtraient.

    Sachant qu'il s'agissait pour l’Autriche de "rétablir l'ordre", autant dire que cela risquait d'être très autoritaire.


    Si tu parles de la bataille de Berlin d'avril 1945, je ne vois pas trop en quoi il s'agissait de sauver les civils, d'autant que les pertes civiles furent remarquablement faibles.
    Les chansons de Sabaton sont géniales pour apprendre certains détails historiques.

    Parfois dur de tout retrouver sur Wikipédia. En gros La 9ème et la 12ème armée allemande ont désobéis à leurs ordres, et ont ouvert un corridor pour se rendre auprès des américains. Sauvant ~200 000 réfugiés.

    Pour les pertes civiles, il ne faut pas oublier ce que les soviets ont fait à leurs propres "alliés" polonais. Attendre à l'entrée de la ville que les résistants polonais se fassent massacrer par les nazis, entrer dans la ville, puis finir le boulot des nazis. Dans une autre ville, ils ont même été jusqu'à organiser une fête de libération de la ville, ont invités les résistants polonais… et les ont massacrés.

    Bon, sans oublier qu'ils interdisaient certains passages aériens aux alliés, et allaient même jusqu'à les abattre pour empêcher toute aide aux résistants polonais. Une des raisons, je pense pour laquelle les alliés ont refusés l'opération de libérations d’Auschwitz de Witold. Je vous laisse imaginer le nombre de morts qui auraient pu être évités.


    The song is about the efforts of the German 9th and 12th Armies under Generals Theodor Busse and Walther Wenck (told from Wenck's perspective) to open an escape corridor to American lines during the Battle of Halbe , saving tens of thousands of lives in contravention of their orders to resist the Soviet advance into Berlin at all costs. The German line "Nicht ein Schlacht, ein Rettungsaktion" means "it's not a battle, it's a rescue operation".
    http://lyrics.wikia.com/wiki/Sabaton:Hearts_Of_Iron

    La 9e armée, dans le cadre plus large de la bataille de Berlin, est prise au piège dans une grande poche dans la région de la Spreewald au sud-est de Berlin. Elle tente de progresser vers l'ouest à travers le village de Halbe et les forêts environnantes, afin de rejoindre la 12e armée allemande commandée par le général Walther Wenck. L'intention est de se diriger vers l'ouest et de se rendre aux Alliés occidentaux
    https://fr.wikipedia.org/wiki/Bataille_de_Halbe

    https://en.wikipedia.org/wiki/Battle_of_Berlin

    The most astonishing part of the story is not the numbers who died or were forced to surrender but the 25,000 soldiers and several thousand civilians who succeeded in getting through three lines of Soviet troops.
    https://en.wikipedia.org/wiki/Battle_of_Halbe#Aftermath

    Les pertes civiles n'ont pas été aussi faibles que cela (plus de 200 000 civils, et nous n'avons pas tous les chiffres) :



    Le population de Berlin était ~3 millions en 1945.
    fr.wikipedia.org/wiki/D%C3%A9mographie_de_Berlin#Grand_Berlin_(1919-1945)

  18. #198
    Membre extrêmement actif Avatar de ddoumeche
    Homme Profil pro
    Ingénieur recherche et développement
    Inscrit en
    Octobre 2007
    Messages
    1 676
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Singapour

    Informations professionnelles :
    Activité : Ingénieur recherche et développement

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 676
    Points : 2 009
    Points
    2 009
    Par défaut
    Citation Envoyé par Neckara Voir le message
    Je ne suis pas d'accord avec ton raisonnement que je pense être un non-consequitur.
    Oui j'ai bien remarqué que tu ne croyais plus dans le principe de causalité aristotélicien et était post-moderne .

    Citation Envoyé par Neckara Voir le message
    Ils restent de "droit divin", et représentent la parole de "Dieu" sur Terre.
    Pour le cas qui nous intéresse, l'honneur est presque un dieu en lui-même, une fin en soit. Nous n'avons plus cela en France à notre époque, mais il faut s'imaginer ce que cela représentait il y a plus de 200 ans.
    Pas besoin de mettre des guillemets pour Dieu.
    Oui mais les gens ne sont pas naïfs, on a bien jugé et condamnés des papes, excommuniés des rois, dont la moitié des rois de France.
    L'honneur et la gloire sont réservés à l'aristocratie ou à la caste guerrière de l'époque, qui a déjà tout : terres, liberté, titres. La notion d'honneur est encore bien présente chez les officiers militaires de carrière, en tout cas ces certains. Mais c'est un luxe réservé à une élite.

    Citation Envoyé par Neckara Voir le message
    Ils estimaient juste que le rétablissement de la monarchie était une forme d'esclavage, avec l'impossibilité d'auto-déterminer le destin du pays, avec des droits qui disparaîtraient.
    Sachant qu'il s'agissait pour l’Autriche de "rétablir l'ordre", autant dire que cela risquait d'être très autoritaire.
    Le nouveau régime était tout autant autoritaire, surtout sous la terreur, règne de la justice populaire. Donc évidement une partie des républicains auraient été nettoyés.

    Citation Envoyé par Neckara Voir le message
    Les chansons de Sabaton sont géniales pour apprendre certains détails historiques.
    N'ont-ils pas une certaine nostalgie pour l'Allemagne de grand papa ? A ce propos, je suis en train de lire les mémoires de guerre de De Gaulle, déniché dans une bouquinerie, un énorme pavé. Si cela ne m'endort pas, j'enchainerais avec les mémoires du maréchal Georgi Zhukov, qui sont certainement plus instructives.

    Citation Envoyé par Neckara Voir le message
    Parfois dur de tout retrouver sur Wikipédia. En gros La 9ème et la 12ème armée allemande ont désobéis à leurs ordres, et ont ouvert un corridor pour se rendre auprès des américains. Sauvant ~200 000 réfugiés.
    Le régime nazi a gardé 2.8 millions de civils à Berlin sachant que la ville serait bombardée, sur lesquels 22000 ont périt, ce qui est un nombre remarquablement faible (s'il est exact). En comparaison, la prise de Caen a fait 3000 morts civiles sur un total de 100 000 habitants, soit 3%.
    Alors que ce régime aurait pu capituler bien avant, sauvant sans doute 500,000 hommes. Tout cela pour donner quelques semaines de survie à Adolf et ses sbires, qui ne voulaient pas finir comme Mussolini.

    Citation Envoyé par Neckara Voir le message
    Pour les pertes civiles, il ne faut pas oublier ce que les soviets ont fait à leurs propres "alliés" polonais. Attendre à l'entrée de la ville que les résistants polonais se fassent massacrer par les nazis, entrer dans la ville, puis finir le boulot des nazis. Dans une autre ville, ils ont même été jusqu'à organiser une fête de libération de la ville, ont invités les résistants polonais… et les ont massacrés.
    Bon, sans oublier qu'ils interdisaient certains passages aériens aux alliés, et allaient même jusqu'à les abattre pour empêcher toute aide aux résistants polonais. Une des raisons, je pense pour laquelle les alliés ont refusés l'opération de libérations d’Auschwitz de Witold. Je vous laisse imaginer le nombre de morts qui auraient pu être évités.
    Je vois souvent sortir cette polémique, mais les plans du commandement militaire soviétique de juillet 44 n'ont jamais été de prendre Varsovie directement mais d'encercler la ville. D'ailleurs le général polonais de l'armée de l'est (80,000 polonais forment une armée au sein du 1er front biléorusse de l'armée rouge), Władysław Anders a déconseillé l'insurrection. La résistance polonaise n'en a pas tenu compte et s'est lancé dans un soulèvement armé en août, voulant libérer la ville par elle même. Pour des raisons politiques et avec le "soutien" de l'ouest, et plus particulièrement de Churchill. Alors que les allemands ont massé 4 divisions dans la ville, que l'armée rouge n'arrive sur la Vistule qu'en septembre juste après l'opération Badgradion, et que la logistique ne suit pas (même problème que lors de l'invasion de l'URSS, les largeurs de rails ne sont pas les mêmes).
    Je doute que l'aviation russe ait descendu des avions alliés au dessus de Varsovie, je crois surtout que les alliés et l'armée rouge ont vu que la positions des insurgés était suicidaire et ne s'en sont pas trop préoccupés, à part quelques parachutages symboliques.

    Oui on peut faire le procès à Staline de ne pas avoir soutenu les insurgés, mais pourquoi aurait-il soutenu une insurrection qui allait à l'encontre de ses plans d'après guerre et faites par des gens qui ne savent pas écouter ? ces polonais ont commis là une erreur politique, en plus d'avoir été mal conseillés.

    Les gens ont tendance à oublier que les camps de concentration n'ont pas été libérés par les alliés.
    La joie de l'âme est dans la planification -- Louis Hubert Liautey

  19. #199
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 012
    Points : 23 145
    Points
    23 145
    Par défaut
    Citation Envoyé par ddoumeche Voir le message
    Oui j'ai bien remarqué que tu ne croyais plus dans le principe de causalité aristotélicien et était post-moderne .
    ?

    Citation Envoyé par ddoumeche Voir le message
    Mais [l'honneur] c'est un luxe réservé à une élite.
    Je ne suis pas d'accord.
    Les honneurs n'étaient certes pas les mêmes entre un simple soldat et un général, mais l'honneur était bien là de retour dans son pays.

    Servir sous les ordres d'un général d'un grand honneur est aussi une source de fierté des troupes, ce qu'on pourrait nommer un "honneur d'appartenance". Tu pouvais aussi espérer te distinguer, même si ce n'est plus un espoir qu'autre chose.

    Citation Envoyé par ddoumeche Voir le message
    Le nouveau régime était tout autant autoritaire, surtout sous la terreur, règne de la justice populaire.
    Oui, mais là n'est pas vraiment le sujet.

    Citation Envoyé par ddoumeche Voir le message
    N'ont-ils pas une certaine nostalgie pour l'Allemagne de grand papa ?
    Proférer de telles accusations sans même connaitre les personnes en question est inacceptable, et je vous demanderais de les retirer.

    Sabaton est un groupe suédois, dont les chansons se basent sur les guerres.

    Parmi celles-ci, on peut nommer :
    • Inmate 4859 : un résistant polonais (Witold) qui est entré volontairement à Auschwitz (en prisonnier) pour servir de taupe.
    • The price of a mile : dénonce le fait d'utiliser les soldats comme de la chair à canon ;
    • Cliff of Gallipoli : idem ;
    • A life time of war : dénonce les guerres ;
    • The ballad of bull : un austalien qui a sauvé 12 hommes en les portant un à un ;
    • Resist and bite : des soldats défendant les frontières face à l'invasion nazi ;
    • 40 to 1 : la résistance héroïque des soldats polonais qui ont réussi l'exploit d'arrêter les nazi pendant 3 jours ;
    • Uprising : dénonce le comportement des alliés face à la résistance polonaise, et rend hommage à la résistance polonaise ;
    • Night witches : des filles pilotes qui bombardaient les installations des nazis ;
    • To hell and back : un soldat américain revenu de la WW2 avec des PTSD ;
    • lost battalion : un groupe de soldats américains encerclés par les allemands lors de la première guerre mondiale ;
    • last battle : l'assaut du château contenant les derniers nazis (avec l'aide de l'armée allemande);
    • primo victoria : le débarquement.
    • the final solution : la découverte des camps nazis ;
    • Winged hussard : les polonais fonçant secourir Vienne au 17ème siècle ;
    • Blood of Bannockburn : la révolution écossaise.


    Il est ridicule de les accuser de "nostalgie pour l'Allemagne de grand papa".


    Citation Envoyé par ddoumeche Voir le message
    Alors que ce régime aurait pu capituler bien avant, sauvant sans doute 500,000 hommes. Tout cela pour donner quelques semaines de survie à Adolf et ses sbires, qui ne voulaient pas finir comme Mussolini.
    Quel rapport ?
    Je te parle de 2 armées qui ont désobéïes à leurs ordres pour sauver des civils !

    Citation Envoyé par ddoumeche Voir le message
    D'ailleurs le général polonais de l'armée de l'est (80,000 polonais forment une armée au sein du 1er front biléorusse de l'armée rouge), Władysław Anders a déconseillé l'insurrection. La résistance polonaise n'en a pas tenu compte et s'est lancé dans un soulèvement armé en août, voulant libérer la ville par elle même.
    Oui, parce qu'ils ont vu ce qu'il s'était passé à la dernière ville "libérée" par les soviets où les résistants polonais ont été massacrés alors qu'ils étaient invités à une "fête". Ils voulaient aussi, comme la France, conserver leur souveraineté et ne pas attérir sous le contrôle russe, qui, je le rappelle, étaient les alliés des nazis au début de la guerre et qui ont pris la moitié de la pologne.

    Que dire des différents massacres commis (ou déclanchés) par les russes dès 1940 ?
    https://fr.wikipedia.org/wiki/Massacre_de_Katy%C5%84
    https://fr.wikipedia.org/wiki/Massac...is_en_Volhynie


    Même avant cela, les polonais ont résistés attendant depuis 1939 l'aide des alliés qui ne sont jamais venus. À la fin de la guerre :
    « Voilà la sombre vérité — nous avons été traités pire que les satellites de Hitler, pire que l’Italie, pire que la Roumanie, pire que la Finlande… »
    https://fr.wikipedia.org/wiki/Insurrection_de_Varsovie

    Citation Envoyé par ddoumeche Voir le message
    Alors que les allemands ont massé 4 divisions dans la ville, que l'armée rouge n'arrive sur la Vistule qu'en septembre juste après l'opération Badgradion, et que la logistique ne suit pas (même problème que lors de l'invasion de l'URSS, les largeurs de rails ne sont pas les mêmes).
    Que d'excuses pour attendre que des femmes et des enfants se fassent massacrer sous leurs yeux, sans bouger.

    Les combattants de l’Armia Krajowa ne sont pas secourus par les Soviétiques qui prétextent d'être épuisés11 par une avancée spectaculaire en Biélorussie et en Pologne orientale8 et d'être sonnés par la défaite infligée par Model aux unités blindés soviétiques à proximité des faubourgs orientaux de la ville12. En réalité, Staline veut laisser écraser une insurrection qu'il ne contrôle pas et qui pourrait contrarier l'installation d'un gouvernement communiste allié de Moscou après la guerre13 : plus l'élite de la résistance se saignerait au combat, plus il serait facile d'imposer le communisme en Pologne. L'Armée rouge s'arrêta donc aux portes de Varsovie, alors que Radio-Moscou avait appelé le peuple à se soulever fin juillet14.
    https://fr.wikipedia.org/wiki/Insurrection_de_Varsovie

    Citation Envoyé par ddoumeche Voir le message
    Je doute que l'aviation russe ait descendu des avions alliés au dessus de Varsovie, je crois surtout que les alliés et l'armée rouge ont vu que la positions des insurgés était suicidaire et ne s'en sont pas trop préoccupés, à part quelques parachutages symboliques.
    The Soviet Union did not allow the Western Allies to use its airports for the airdrops[7] for several weeks,[105] so the planes had to use bases in the United Kingdom and Italy which reduced their carrying weight and number of sorties. The Allies' specific request for the use of landing strips made on 20 August was denied by Stalin on 22 August.[101] Stalin referred to the Polish resistance as "a handful of criminals"[106] and stated that the Uprising was inspired by "enemies of the Soviet Union".[107] Thus, by denying landing rights to Allied aircraft on Soviet-controlled territory the Soviets vastly limited effectiveness of Allied assistance to the Uprising, and even fired at Allied airplanes which carried supplies from Italy and strayed into Soviet-controlled airspace.[101]
    https://en.wikipedia.org/wiki/Warsaw...utside_support

    Citation Envoyé par ddoumeche Voir le message
    Oui on peut faire le procès à Staline de ne pas avoir soutenu les insurgés, mais pourquoi aurait-il soutenu une insurrection qui allait à l'encontre de ses plans d'après guerre et faites par des gens qui ne savent pas écouter ? ces polonais ont commis là une erreur politique, en plus d'avoir été mal conseillés.
    Oui, c'est de la faute des polonais…
    Ce qu'il ne faut pas lire.
    Et les juifs, c'est de leur faute pour ne pas avoir écouté Hitler ?

    Citation Envoyé par ddoumeche Voir le message
    Les gens ont tendance à oublier que les camps de concentration n'ont pas été libérés par les alliés.
    Et les gens ne savent pas que Auschwits a été connue dès 1940 grâce à Witold ?
    Camp qui aurait pu être libéré dès 1941 ?
    https://fr.wikipedia.org/wiki/Witold_Pilecki

    Ce héro, torturé et tué par les siens en 1948 sous les ordres de l'URSS.
    During Pilecki's last conversation with his wife he told her: "I cannot live. They killed me. Because Oświęcim [Auschwitz] compared with them was just a trifle."
    https://en.wikipedia.org/wiki/Witold..._and_execution

  20. #200
    Inactif  


    Homme Profil pro
    Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Inscrit en
    Décembre 2011
    Messages
    9 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Doctorant sécurité informatique — Diplômé master Droit/Économie/Gestion
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2011
    Messages : 9 012
    Points : 23 145
    Points
    23 145
    Par défaut
    Concernant la libération des camps:

    L'évacuation des camps par les SS à cause de l'avance des armées alliées s'étale sur une période d'un an avec l'accord des Gauleiter et des Höhere SS- und Polizeiführer (HSSPf). Dès juillet 1944, les troupes soviétiques découvrent et libèrent les premiers camps, sans forcément prendre conscience de l’ampleur du phénomène ; le 27 janvier 1945, Auschwitz, le dernier camp d'extermination encore en activité, est à son tour libéré par les Soviétiques. La majorité des camps sont libérés par les troupes alliées au fur et à mesure de leur progression: les Soviétiques libèrent notamment Sachsenhausen le 22 avril, et Ravensbrück le 30 ; les Britanniques Bergen-Belsen le 14 avril, les Américains Flossenburg le 23 avril, Dachau le 29, Neuengamme le 4, et finalement Mauthausen le 5 mai. Quant au camp de Buchenwald, une partie des déportés en prennent le contrôle le 11 avril 1945, quelques heures avant l'arrivée des Américains.
    https://fr.wikipedia.org/wiki/Camps_...tion_des_camps


    Il serait donc plus juste de dire : "Les gens ont tendance à oublier que les camps de concentration n'ont pas été libérés que par les alliés.".


    EDIT
    : Et ne pas oublier que les russes avaient des Goulags.

Discussions similaires

  1. la différence entre les algorithmes d'approximation et les algorithmes d'opptimisatio
    Par ch_hanen dans le forum Algorithmes et structures de données
    Réponses: 1
    Dernier message: 29/06/2007, 10h52
  2. comment lister les tables et leur identifiants
    Par jclyon dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 25/07/2006, 22h03
  3. Un Pseudo-langage pour les algorithmes
    Par Terminator dans le forum Algorithmes et structures de données
    Réponses: 19
    Dernier message: 24/02/2006, 10h28
  4. Les algorithmes génétiques
    Par fred9510 dans le forum Intelligence artificielle
    Réponses: 3
    Dernier message: 27/01/2005, 10h27
  5. recherches des cours ou des explications sur les algorithmes
    Par Marcus2211 dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 19/05/2002, 22h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo