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

Débats sur le développement - Le Best Of Discussion :

Trolldi : sauver la princesse avec différents langages de programmation


Sujet :

Débats sur le développement - Le Best Of

  1. #1
    Chroniqueur Actualités
    Avatar de Michael Guilloux
    Homme Profil pro
    Data Consultant
    Inscrit en
    Juillet 2013
    Messages
    2 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Data Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2013
    Messages : 2 875
    Points : 86 930
    Points
    86 930
    Billets dans le blog
    2
    Par défaut Trolldi : sauver la princesse avec différents langages de programmation
    Trolldi : sauver la princesse avec différents langages de programmation
    là où Pascal, PHP, Java, JavaScript, C et C# ont échoué

    Humour informatique : Le royaume des langages de programmation a récemment été victime d’une invasion militaire de la part d’un redoutable ennemi. Après avoir tout saccagé, l’ennemi emporte avec lui la très chère princesse qui fait la joie du roi. Le grand roi décide donc d’aller délivrer sa princesse, mais pas de lui-même, il décide de confier cette lourde mission à des soldats (des programmeurs), tous armés d’un langage particulier, leur langage de prédilection. Il faut avant tout noter que la princesse est tenue prisonnière dans une forteresse qui ne peut être débloquée qu’avec un programme efficace. La mission consiste donc à mettre en place un tel programme qui va permettre de sauver la princesse.

    L’armée du royaume des langages de programmation est constituée de plusieurs centaines de soldats, chacun avec une arme (un langage) qui lui est propre, et de nouveaux soldats sont enregistrés presque chaque année. Certains sont très populaires et d’autres non. Certains soldats se distinguent par leur spécialisation dans un domaine précis, alors que d’autres se vantent de pouvoir combattre sur tous les fronts possibles. Pour délivrer la princesse et la ramener auprès du roi, six soldats ont été choisis, chacun de son côté devant mettre en place le programme qui lui permettra de délivrer la princesse.

    Le premier soldat possède le JavaScript comme arme fatale pour délivrer la princesse. Il passe des heures à ramasser les bibliothèques, installer Node et construire un nouveau framework, spécialement pour la forteresse, estimant que les frameworks existants ne sont pas performants. Lorsqu’il finit de construire le framework, il s’aperçoit que la forteresse a été abandonnée et la princesse déplacée dans une autre forteresse.


    C’est en étant armé du langage C que le deuxième soldat a mis en place son programme. Il a une bibliothèque pour la forteresse et une bibliothèque pour la princesse. Il mène l'assaut et réussit à sauver la princesse, son chien, toute sa garde-robe et tout ce qu’il trouve avec elle. Mais il n’arrive pas à la ramener chez le roi, car son char s’effondre. Il se demande alors s'il n'aurait pas oublié un caractère Null quelque part.


    Avec C#, un autre soldat tente également de sauver la princesse. Il passe des heures à essayer d'exprimer l'ensemble du plan de sauvetage dans une seule requête LINQ. Ensuite, il abandonne et va sur les forums developpez.net pour demander de l’aide, dans l'espoir qu'un membre du club sauve la princesse pour lui.


    Un autre soldat armé du langage Java prépare également son assaut. Vite ! Pas de temps à perdre. Il déploie rapidement le sauvetage en production. Mais plus loin, il découvre qu’il a chargé deux versions de la forteresse, mais pas la princesse.


    Armé du langage Pascal, devinez déjà qui vient : un vieux soldat avec un équipement apparemment caduc, sans armure et sur un âne plutôt qu'un cheval de guerre. Il déclare la princesse, il déclare la forteresse et il déclare le plan de sauvetage. Ensuite, il va prendre un verre et oublie l’implémentation du plan de sauvetage.


    Et avec PHP ? : « Dois-je sauver la princesse… en PHP… ? », s’interroge le soldat muni de ce langage, convaincu que c’est une mission impossible. Sans cheval et sans armure, avant même d’atteindre la forteresse, il estime préférable de se donner la mort par pendaison.


    Source : Inspiré de Toogl

    Et vous ?

    Qu’en pensez-vous ?
    Si c’était vous, comment décririez-vous ces différents langages ainsi que ceux qui ne sont pas cités ici ?
    Contribuez au club : Corrections, suggestions, critiques, ... : Contactez le service news et Rédigez des actualités

  2. #2
    Membre du Club
    Inscrit en
    Novembre 2010
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Novembre 2010
    Messages : 27
    Points : 56
    Points
    56
    Par défaut
    "StackOverflow" traduit en "les forums developpez.net" j'ai vu mieux

  3. #3
    Inactif  

    Homme Profil pro
    NR
    Inscrit en
    Juin 2013
    Messages
    3 715
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : NR
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2013
    Messages : 3 715
    Points : 1 184
    Points
    1 184
    Billets dans le blog
    9
    Par défaut
    En python, j’exécuterais pleins de simulations en parallèles, pour voyager vite je ferais un serveur web et des sockets réseau, et enfin je recréerais ce monde avec le moteur panda3D.

    Mais surtout, Python n'est pas prétentieux et est très ouvert, par conséquent il ne rencontre aucune difficulté à exploiter nativement certains logiciels comme blender, ou de s'installer dans les distrib Linux. Si la princesse est dans une grotte, nul doute que la grotte soit compatible avec python.

    Donc voila je choisit python n'ont pas pour combattre sur tous les front mais pour s'adapter à tous les fronts.
    Et contrairement à Java il supporte l'héritage multiple et sa, sa change tous. Et on risque pas un procès du méchant empire Oracle.

    PHP c'est un langage conçue uniquement pour faire des sites web, c'est ce qui fait sa force mais aussi sa faiblesse.
    Quand au C, c'est trop vieux, pas de POO, pas de boolean natif, pas de structures complexe (listes...etc) natif aussi, on est très vite limité si on souhaite faire un gros projet. Pour de petites lib par contre oui.
    C++ lui commence à devenir trop compliqué.

  4. #4
    Membre émérite
    Avatar de Voyvode
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    476
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 476
    Points : 2 678
    Points
    2 678
    Par défaut
    Citation Envoyé par Hyome
    "StackOverflow" traduit en "les forums developpez.net" j'ai vu mieux
    C’est trolldi, tout est permis !

    Citation Envoyé par sazearte
    Si la princesse est dans une grotte, nul doute que la grotte soit compatible avec python.
    J’aime bien l’image du python et de la grotte.


    Allez, je vais essayer d’en remettre une couche :
    You have Lisp, you have expressive functions, but they are too lazy to save the princess…
    EDIT : Grillé par le post original.

  5. #5
    Membre expérimenté Avatar de nchal
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    512
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2012
    Messages : 512
    Points : 1 654
    Points
    1 654
    Par défaut
    Citation Envoyé par Voïvode Voir le message
    C’est trolldi, tout est permis !


    C’était voulu. Forcément.

    Allez, je vais essayer d’en remettre une couche :
    Il y a Lisp dans le post original
    https://imgur.com/HKge28R
    Si la réponse vous convient, un petit ça encourage.
    Avant tout nouveau post, pensez à : la FAQ, Google et la fonction Recherche
    Si vous devez poster, pensez à: Ecrire en français, la balise [CODE] (#) et surtout

  6. #6
    Membre actif
    Étudiant
    Inscrit en
    Juin 2010
    Messages
    70
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2010
    Messages : 70
    Points : 204
    Points
    204
    Par défaut
    Hmmm, d'après la météo, une dépression C++ devrait s'abattre prochainement dans le post

  7. #7
    Membre expérimenté
    Profil pro
    Ingénieur système Linux N3
    Inscrit en
    Juillet 2008
    Messages
    414
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur système Linux N3

    Informations forums :
    Inscription : Juillet 2008
    Messages : 414
    Points : 1 508
    Points
    1 508
    Par défaut You have python
    import castle
    from castle import princess
    import catapult
    from catapult import bullets

    le reste c'est que de la glue.

  8. #8
    Membre expérimenté
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2004
    Messages : 374
    Points : 1 399
    Points
    1 399
    Par défaut
    Citation Envoyé par sazearte Voir le message
    Quand au C, c'est trop vieux, pas de POO, pas de boolean natif, pas de structures complexe (listes...etc) natif aussi, on est très vite limité si on souhaite faire un gros projet. Pour de petites lib par contre oui.
    Euh ... ???

    Et comme c'est trolldi : http://nicolasj.developpez.com/gobject/classe/

  9. #9
    Membre chevronné Avatar de Jbx 2.0b
    Homme Profil pro
    Développeur C++/3D
    Inscrit en
    Septembre 2002
    Messages
    476
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur C++/3D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2002
    Messages : 476
    Points : 1 889
    Points
    1 889
    Par défaut
    Avec Qt t'attends tranquillement que Digia sorte la prochaine version, qui comprendra la classe QKnight, livrée sa belle documentation:

    QKnight knight;
    knight.destroyCastleDoor();
    knight.savePrincess();

    Et puis si tu trouves la princesse moche, tu la refait en QML

    trolldi power !

  10. #10
    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 056
    Points
    32 056
    Par défaut
    J'essaye de trouver un truc rigolo en COBOL...... Mais je n'ai pas trouvé pour le moment.
    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.

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 240
    Points : 636
    Points
    636
    Par défaut
    Citation Envoyé par el_slapper Voir le message
    J'essaye de trouver un truc rigolo en COBOL...... Mais je n'ai pas trouvé pour le moment.
    Bah il y a qu'a en faire un ! J'ai même le scénar

    C'est une princesse robuste devant un fort. Son quotidien se résume à assommer les geôliers qui essaient de l'enfermer et à éconduire les chevaliers C++, Java et C# qui se proposent pour la ramener. Elle attend le chevalier COBOL qui ne vient pas ... il n'y a plus de chevalier COBOL.

  12. #12
    Membre émérite
    Avatar de Voyvode
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    476
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 476
    Points : 2 678
    Points
    2 678
    Par défaut
    Citation Envoyé par el_slapper Voir le message
    J'essaye de trouver un truc rigolo en COBOL...... Mais je n'ai pas trouvé pour le moment.
    Tu as COBOL, tu détiens un savoir oublié… et la princesse que tu dois sauver a l’âge de Grace Hopper.

  13. #13
    Inactif  

    Homme Profil pro
    Freelance EURL / Business Intelligence ETL
    Inscrit en
    Avril 2005
    Messages
    5 879
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance EURL / Business Intelligence ETL
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2005
    Messages : 5 879
    Points : 26 145
    Points
    26 145
    Billets dans le blog
    3
    Par défaut
    Pour SQL (et Oracle encore plus particulièrement) :

    Le Chevalier prépare un conseil de guerre à l'état-major, fabrique une maquette avec l'ensemble du château mais également le mobilier, les gardes, leur équipement, les magiciens, leurs sorts, jusqu'à la couleur des braies des serfs, puis planifie avec des éclaireurs le chemin parfait pour arriver jusqu'à la princesse. Finalement, il traverse pendant presque deux semaines l'ensemble du château, jusqu'à tomber dans le cellule de la princesse, évidemment vide.

    (pour explication, l'optimiseur d'Oracle qui après avoir passé les stats pensent trouver le meilleur chemin... et finalement finit par prendre trois plombes pour une requête ramenant deux lignes)
    - So.... what exactly is preventing us from doing this?
    - Geometry.
    - Just ignore it !!
    ****
    "The longer he lived, the more he realized that nothing was simple and little was true" A clash of Kings, George R. R. Martin.
    ***
    Quand arrivera l'apocalypse, il restera deux types d'entreprise : les pompes funèbres et les cabinets d'audit. - zecreator, 21/05/2019

  14. #14
    Expert éminent
    Avatar de Matthieu Vergne
    Homme Profil pro
    Consultant IT, chercheur IA indépendant
    Inscrit en
    Novembre 2011
    Messages
    2 261
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant IT, chercheur IA indépendant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2011
    Messages : 2 261
    Points : 7 748
    Points
    7 748
    Billets dans le blog
    3
    Par défaut
    Mais quelle bande d'abrutis...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    import trolldi.Princess;
    import trolldi.Knight;
    
    public class TwoBirdsWithOneStoneKnight extends Knight {
      public void save(Princess p) {
        p.x = this.x;
        p.y = this.y;
        p.z = this.z + this.height;
        peekUnderSkirtOf(p);
        catch(p);
      }
    }
    Site perso
    Recommandations pour débattre sainement

    Références récurrentes :
    The Cambridge Handbook of Expertise and Expert Performance
    L’Art d’avoir toujours raison (ou ce qu'il faut éviter pour pas que je vous saute à la gorge {^_^})

  15. #15
    Inactif  

    Homme Profil pro
    NR
    Inscrit en
    Juin 2013
    Messages
    3 715
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : NR
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2013
    Messages : 3 715
    Points : 1 184
    Points
    1 184
    Billets dans le blog
    9
    Par défaut
    Citation Envoyé par Shepard Voir le message
    Euh ... ???

    Et comme c'est trolldi : http://nicolasj.developpez.com/gobject/classe/
    J’appelle cela du bricolage personnellement, ce n’est pas un langage conçu pour.
    Sinon, j'vois que beaucoup ici donnent des solutions en python, je suis plutôt agréablement surpris, mes campagnes fanatisées pour prêcher la bonne parole porteraient elle leurs fruits ?

  16. #16
    Expert éminent sénior
    Avatar de Escapetiger
    Homme Profil pro
    Administrateur système Unix - Linux
    Inscrit en
    Juillet 2012
    Messages
    1 465
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Administrateur système Unix - Linux

    Informations forums :
    Inscription : Juillet 2012
    Messages : 1 465
    Points : 10 994
    Points
    10 994
    Par défaut
    Citation Envoyé par psykokarl Voir le message
    Bah il y a qu'a en faire un ! J'ai même le scénar

    C'est une princesse robuste devant un fort. Son quotidien se résume à assommer les geôliers qui essaient de l'enfermer et à éconduire les chevaliers C++, Java et C# qui se proposent pour la ramener. Elle attend le chevalier COBOL qui ne vient pas ... il n'y a plus de chevalier COBOL.
    Le chevalier COBOL ? il est déjà loin et quasi-indestructible

    A Cobol programmer made so much money doing Y2K remediation that he was able to have himself cryogenically frozen when he died. One day in the future, he was unexpectedly resurrected.

    When he asked why he was unfrozen, he was told:

    "It's the year 9999 - and you know Cobol"
    Source : ici
    « Developpez.com est un groupe international de bénévoles dont la motivation est l'entraide au sens large » (incl. forums developpez.net)
    Club des professionnels en informatique

  17. #17
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 112
    Points : 111
    Points
    111
    Par défaut
    Alternative à Java:

    - Le chevalier développe un super trébuchet, sûr de son engin il s'embarque lui-même à l'intérieur
    - Il est catapulté dans les nuages, survole le château et termine son envolée dans les montagnes en terres inconnues
    - Conclusion:
    FIXME puissance dynamique
    TODO sauver la princesse

  18. #18
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2007
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Janvier 2007
    Messages : 185
    Points : 469
    Points
    469
    Par défaut
    Dans la version originale il y avait aussi le LISP ... je sais c'est vieux mais c'est le tout premier langage que l'on m'a fait manipuler au lycée.

    https://toggl.com/programming-prince...signernews.com

  19. #19
    Membre éclairé
    Homme Profil pro
    Développeur C++
    Inscrit en
    Octobre 2008
    Messages
    242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur C++

    Informations forums :
    Inscription : Octobre 2008
    Messages : 242
    Points : 705
    Points
    705
    Par défaut
    Citation Envoyé par sazearte Voir le message
    Quant au C, c'est trop vieux, pas de POO, pas de boolean natif
    Il faut se mettre à jour mon ami, le type bool existe depuis 17 ans.

    http://en.cppreference.com/w/c/langu...s#Boolean_type

    La POO c'est possible, mais j'avoue que c'est pénible.

  20. #20
    Membre régulier
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2014
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2014
    Messages : 43
    Points : 97
    Points
    97
    Par défaut
    Notre très cher soldat Rust dans son armure flambante se présente alors en disant :
    "pas de panique, il me suffit d'implémenter la fonction save_the_princess du trait Castle !"
    il se met vite à la tâche, malheureusement quand vient le moment de compiler son programme de sauvetage rustc lui dit:
    "désolé mon gars, il y a un autre rusty soldier qui veut aussi sauver la princesse et il vous est interdit de vous la partager..."

Discussions similaires

  1. Réponses: 8
    Dernier message: 25/08/2015, 18h18
  2. Réponses: 19
    Dernier message: 08/04/2011, 18h46
  3. Réponses: 0
    Dernier message: 29/03/2011, 15h36
  4. projet avec classes langages différents
    Par Hyst76 dans le forum Général Dotnet
    Réponses: 1
    Dernier message: 25/03/2007, 16h41

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