Besoin d’un coup de patte

Salut à toi l’idleNaute !! Voila un petit billet rapide, non pas pour te transmettre de l’information, mais pour t’en piquer si faire se peux :p.

Voila j’ai la chance de me taper une thèse professionnelle sur ma cinquième année sur le sujet de la programmation d’un programme, par un autre programme.

 

Evidemment on ne prends pas en compte ici que l’aspect développement technique mais aussi la conception d’un programme, analyse de l’existant, analyse du besoin, conception de la solution, développement, tests mise en prod etc…

 

Etant donné que sortis du windev et de deux trois méthodes mathématiques hyper compréhensibles (par deux mathématiciens dans le monde) je n’ai rien, je lance cet appel au secours pour ceux qui auraient des pistes sur le sujet et autour 🙂

J’ai d’ailleurs fait un petit formulaire pour chauffer ceux qui aurait la gentillesse de me donner un coup de patoune !!  :

 

https://docs.google.com/spreadsheet/viewform?fromEmail=true&formkey=dFJSNm5uZkNNSXlxR0ZNYW9wWGt3emc6MQ

 

Evidemment le formulaire n’est pas forcement au top, donc n’hésitez pas a m’envoyer vos suggestions, liens, bout de thèse, etc…

 

Je me suis promis de limiter au possible l’utilisation du blog pour mon propre profit mais je trouve dommage de poster sur d’hétéroclites forums alors que j’ai 15 000 idlenautes confirmés sous la main :p

 

Bien à vous,

 

Idle

38 réactions au sujet de « Besoin d’un coup de patte »

  1. qwerty Réponse

    Je suis pas spécialiste, mais je vais essayer de t’aider. D’ailleurs, une fois la thèse écrite, envoyé et tout le tralala, compte tu la rendre publique ? Pour que au moins quelqu’un puisse la lire en entier ?

    • Idleman Auteur ArticleRéponse

      C’est une thèse pro (sur 1 an uniquement) et faite un peu à l’arrache (je commence a peine et je dois la rendre dans trois mois) , je ne pense pas que ce soit intéressant à publier et j’en aurais un peu honte, mais je la transmettrais par mail a qui me la demandera oui :).

      Merci pour le coup de patte

      • Yosko Réponse

        Owi, mwa, mwa, mwa.
        Hum… désolé, c’est mon côté kikoolol qui ressort quand je suis emballé. *honte*

        • Idleman Auteur ArticleRéponse

          Ya vraiment des gens que ça intéresse ? T’a terminé la saison de futurama ou quoi !? 😀

          Soit, mais ne t’attends pas à de l’informatique de haut vol ^^, me connaissant, je vais clôturer ça a l’arrache les deux dernières semaines, en mode hyper stress, a grand coup de copier coller et de fautes d’orthographe XD.

          Je dois la rendre en mars, d’ici la suspens et nuits d’angoisses ^^

  2. Yosko Réponse

    Ah ah, intéressant !
    Je ne sais pas si mon avis peut beaucoup t’apporter, mais je vais te le donner quand même (bien fait, na !) 😛

    Et tu as parfaitement raison de te faire payer (en pensée) pour tous tes efforts sur le blog. C’est tout naturel 🙂

  3. Akira Réponse

    Salut !

    Hum, peut-être une première piste ici, même si je pense être loin de ce que tu cherches…

    Google “blockly”, ou comment design-er un programme et le générer à partir d’un autre programme qui est capable de l’exporter dans un autre langage technique. http://code.google.com/p/blockly/

    Ca peut donner une piste sur quelque chose de concret.

    • Idleman Auteur ArticleRéponse

      Effectivement je ne connaissais pas, merci pour le lien :), c’est pas mal question dev, pour la conception ça semble nécessiter encore l’intervention humaine, c’est le plus dur a trouver, un logiciel automatisé de conception, parce que ça fait appel à des notions tellement abstraites (telle que l’imagination) que c’est dur a modéliser..

  4. Akira Réponse

    Autre idée, après je m’arrête. C’est peut-être un peu terre à terre, et un peu dévié de l’idée. Mais les logiciels comme RPG Maker VX (outils pour créer des RPG). C’est bien, un logiciel qui permet de créer 15 000 variétés de “programmes” des jeux, sans toucher le moindre aspect technique ni se soucier de “tests techniques” ou de langage. Certes, c’est un capilo-tracté… Désolé, j’ai pas de formule hyper-complexe à divulguer…

    • Idleman Auteur ArticleRéponse

      Tant que t’as des idées balance :), rpg maker est un bon exemple de programmation automatisé limitée par un certain contexte, ça me servirait plutôt a démontrer que l’automatisation n’est permise que dans un cadre restreint, mais c’est très certainement la voie que prendra ma conclusion de toute façon ^^, certains théorèmes comme godel tendent à mettre un point final a mes recherches (sur la partie conclusion uniquement malheureusement ^^)

  5. Antoine Réponse

    Je viens de répondre au questionnaire, honnêtement ça fait tout de même réfléchir un peu si un tel programme existait, que deviendront les développeurs ?
    Au final rien n’est impossible, la conception d’un tel programme peut être réalisé ce n’est juste une question de temps.

    Mais il y aura tout de même un problème, l’informatique évolue, les langages de programmations aussi, cela sous entendrait de mettre continuellement à jour le programme. Puis la sécurité …

    Cela est tout de même un projet ambitieux !

    • Idleman Auteur ArticleRéponse

      Merci pour le questionnaire 🙂

      Je ne traite pas l’aspect éthique (enfin très peu) dans ma thèse, et ne t’inquiète pas ce n’est pas non plus un “projet” juste une interrogation de thèse, le but étant de répondre à cette simple question “est ce seulement possible de le faire?”

      Pour moi le problème ne se situe pas vraiment dans l’évolution des langages : les systèmes a base de connaissance et le crowdsourcings peuvent remédier à ça, non pour moi le problème c’est la phase de pure “conception” :

      Comment répondre à l’expression d’un besoin utilisateur par une solution “imaginée” quand on est une machine ? Comment définir que cette solution imaginée répond bien au besoin ? Comment traduire l’imagination en algorithme ?

      C’est la partie la plus délicate, car en effet les atres parties du projet (ci dessous) sont relativement plausible pour une machine :

      Comprendre le besoin utilisateur –> utiliser le Natural Semantique Langage + solution reco vocale ou textuelle semble approprié
      Définir une solution conceptuelle au besoin –> … (tendu)
      Traduire cette solution en algorithme –> … (tendu)
      Traduire cet algoritme en syntaxe –> facile, windev le fait, MDA le fait, beaucoups d’agl le font
      Tester la pertinence du programme –> … (tendu)

      Alors évidemment pour simuler l’intelligence il existe plein de petites astuces (théoreme de monaco, programmation génétique etc..) mais est ce que l’assemble de tout ceci peux vraiment simuler un processus créatif ? Le cerveau humain se résume t’il à une simple machine de turing ?

  6. Yannikator Réponse

    Ton sujet se rapproche beaucoup des thèses effectués concernant l’intelligence artificielle. Car si le programme est capable de créer un autre programme, et de l’exécuter. Cela peut signifier qu’il est capable d’évoluer. De se modifier lui même.
    Est-ce possible? Rien n’est impossible. Les moteurs de RPG le montre.
    Est-ce dangereux? Oui dans le sens ou si tu ne maîtrise plus l’évolution de la machine, elle peut te surpasser. On rentre dans de la science fiction, mais pas tant que ça…
    Les googles cars, si tu cherche bien, peuvent apprendre de façon intelligente (modification décisionnelle, modification des connaissance en base de données…).
    Tu peux t’orienté sur les domaines de recherche méthaheuristique (type réseau de neurone par exemple, ou encore le principe des colonies de fourmis).

    Bon après un programme qui en génère un autre, je vois pas trop l’intérêt car pour le maintenir en cas de bug… C’est impossible ou très difficile.

    J’ai vu l’article suivant qui pourrait t’intéressé plus que mon blabla… lol
    http://joeponepinto.com/2013/01/12/the-end-of-creative-writing-as-we-know-it/

    A+

    • Idleman Auteur ArticleRéponse

      Je voudrais éviter les rapprochements à l’intelligence artificielle, c’est un piège en soutenance, le sujet est trop vague, trop fourre tout et trop complexe pour s’y risquer, mieux vaut tourner autour sans en parler vraiment, mais oui effectivement pour la notion de conception l’intelligence artificielle (du moins simulée) semble être la seule alternative crédible.

      Pour ce qui est des RPG, ça ne montre pas grand chose selon moi, rpg maker reste dans un domaine très limité qui consiste en la création d’un jeux avec des loies physiques et des paramètres constants, on ne pourrais pas lui demander de créer un site web ou une logique de chaine de production, donc en un sens il ne répond pas a ma problématique.

      Pour ce qui est du “les machines vont nous dominer” je n’aborderais pas ça non plus dans ma thèse, déjà parce que ça fait pas très sérieux, et ensuite parce que c’est complétement hs par rapport à la thématique ^^ (et puis aussi parce que je ne le crois pas, on part toujours du principe que les machines, avec une réflexion propre, feraient les même mauvais choix que nous, m’est avis qu’elles en penseraient pas d’une façon qu’on pourrait pré déterminer).

      Merci pour l’article, je vais voir ça 😀

      • garoubeef Réponse

        les logiciels de bpm peuvent répondre en partie à la problématique, generation de code à partir d’une schématisation graphique de processus. Moins limité que rpg maker il me semble

      • Yannikator Réponse

        Oula je n’étais pas du tout dans l’optique de la domination de la machine sur l’homme, même si j’ai vu IRobot ^^’.
        Non je parlais surtout du principe qu’on ne maîtrise pas forcement bien un programme qui est généré automatiquement. Après est-ce qu’il se contente de le généré, ou peut-il le maintenir?
        Est-ce que les algo décisionnels ne seraient pas un bon début? Car le programme généré doit s’adapter au besoin renseigné. C’est pourquoi je te parlais des métaheuristies qui on été survolé par ton esprit je crois. Dans tout mon blabla ça se comprend ^^.
        Tu as fait une bonne remarque, rpg maker permet d’exécuter des routines, comme l’utilisation des macro dans excel par exemple.
        Mes remarques sont là pour te poser les “bonnes” question, j’aurais pas de réponse à te donner sur un commentaire de blog…

  7. tony Réponse

    Hello,

    C’est une soutenance publique ? Je passerais bien ;)…

    >Je voudrais éviter les rapprochements à l’intelligence artificielle

    Ça va pas être facile à éviter vu ton sujet :). Ma formation de base est en IA, un conseil de mon directeur de recherche, règle 1: en soutenance ne jamais prononcer le mot “intelligence” :). Tu as regardé du coté du Lisp ? Je me souviens qu’il y avait pas mal de trucs sur des progs Lisp qui générent des progs.

  8. Tom Réponse

    Sebsauvage avait posté un lien sur son shaarli il y à quelques semaines sur un type qui avait créé un script qui créait de façon totalement automatique des livres, des musiques et des applications. Le type en était à plusieurs centaines de livres générés automatiquement en vente sur Amazon… le lien de seb menait vers une vidéo explicative et une page dédiée…
    Je pense que ça peut t’intéresser si ça peut créer des applications, c’est un peu comme des logiciels non ?
    En tout cas met moi sur ta liste de diffusion de thèse ! 😀

  9. ypo Réponse

    Un programme qui génère un programme, ça s’appelle un compilateur non ?
    La partie optimisation d’un compilateur est interéssante parcequ’elle peut réécrire complètement un algo en autre un algo de complexité inférieur auquel aucun développeur n’aurait pensé.

    • Idleman Auteur ArticleRéponse

      Tiens, pas idiot de comparer ça à un compilateur, même si la génération dont je parle englobe bien plus (conception,recette,analyse etc..) mais ça peut être intéressant de s’y pencher 🙂

  10. Maxime Raynal Réponse

    A tout hasard, je pense à un truc. Théoriquement n’importe quelle solution peut être exprimée à l’aide des quelques design patterns qui eux même sont exprimables à l’aide d’une poignée de meta pattern (y en a 7 de mémoire)… C’est l’heure de dépoussiérer ton édition de Design Patterns by the Gang of Four…

    • Idleman Auteur ArticleRéponse

      Je doute que ça prenne en compte la partie conception, et les design pattern me paraissent trop générique (c’est justement ce qui fait leurs force à la base) pour assurer la totalité du dev, mais merci, je regarderais si un article n’a pas été pondu sur le sujet 🙂

  11. Valentin Réponse

    Je me permets de te signaler: “AutoGam”. Un générateur de musique automatique.
    Et me permets aussi de te faire remarquer: Que si on ne veut pas que le truc fasse n’importe quoi, on est bien obligé de lui donner quelques directives.
    Ce qui me fait dire que l’énoncé du problème est légèrement ambigu.
    Du genre un prog qui génère un prog OUI, mais pour faire quoi au final ?

    • Idleman Auteur ArticleRéponse

      Tiens ! un autre valentin !! 😀

      Le but est de savoir si il est possible de générer un programme répondant à l’expression d’un besoin, il existe donc un cadre, le pc ne doit pas faire n’importe quoi. Après c’est une thèse, je peux très bien conclure que non ce n’est pas possible, mais il vas falloir donner des arguments pour étayer cela ^^.

      Merci pour les signalements :p

  12. Valentin Réponse

    Dans ton énoncé tu parle d’un prog générant un prog.
    Si on y réfléchis deux secondes, cela n’a pas grand intérêt. Il y a redondance.
    Cela est comparable à: Fabriquer une machine qui fabrique une machine qui fabrique.
    Quand bien même ce prog serait capable de générer différents progs, il faudra:
    Soit le reparamétrer, soit lui inclure un algo de reparamétrage automatique, algo; qui peut aussi bien être inclus dans le prog primaire (rendant le prog secondaire superflu.)
    Je pense que le sujet se situe sur le plan purement philosophique.

  13. sgripon Réponse

    Je viens de me fendre d’une réponse un peu longue. Un peu tard peut-être. Mais si tu as des questions, ne pas hésiter.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.