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

Langages de programmation Discussion :

Quel langage pour un logiciel d'emploi du temps ?


Sujet :

Langages de programmation

  1. #1
    Futur Membre du Club
    Inscrit en
    Juin 2009
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 27
    Points : 6
    Points
    6
    Par défaut Quel langage pour un logiciel d'emploi du temps ?
    Bonjour,

    J'envisage d'écrire un logiciel de gestion de salles et de gestion/conception d'emplois de temps pour un établissement scolaire de grande taille. Je n'ai pas vraiment programmé depuis belle-lurette et suis avec le temps devenu un utilisateur basique de l'informatique. Mais je suis prêt à passer le temps nécessaire pour assimiler le langage adéquat et n'ai pas peur de mettre les mains dans un peu d'algorithmique. Je maitrisais convenablement le Pascal il y a 20 ans (et j'avais un peu assimilé les bases de la première version objet du Turbo Pascal de Borland).

    J'aimerais savoir, à votre avis, quel est le langage et/ou l'outil le plus adapté à cette tâche ?

    Plusieurs points peuvent être pris en compte :
    - Rapidité d'exécution du code (les algorithmes permettant de fabriquer un emploi du temps ne sont certainement pas rapides)
    - Possibilité d'interroger la base de donnée via un réseau ou internet
    - Portabilité

    Merci d'avance pour vos réponses (et désolé si je ne suis pas dans le bon forum, le choix est vaste !)

  2. #2
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 206
    Points : 28 131
    Points
    28 131
    Par défaut
    Quel langage utiliser ???

    La réponse a cette question est souvent toujours la même, celui que tu maitrise le mieux.
    Ou, si tu as du temps devant toi, celui que tu souhaite découvrir.

    L'ensemble des principaux langages actuels te permettront de réaliser une tell application, que ce soit VB, C#, Delphi, C++, ...

    Puisque tu connais le Pascal, tu avais commencé à gouter à la POO avec le Turbo Pascal, c'est peut-être avec Delphi que tu sera le moins perdu.

    Pour la base de données, SQLServer, Oracle, ... (payant), suivant ce dont tu dsipose déjà sur ton réseau. Si tu ne dispose pas de serveur de BDD, tu pourras alors te tourner vers du gratuit comme MySQL par exemple. Par contre si tu dois interroger ta base par réseau, il vaut mieux éviter les bases de type fichier comme Access ou Excel ou autre.

    Mais ce n'est que mon avis, sans aucune expertise.
    --- Sevyc64 ---

    Parce que le partage est notre force, la connaissance sera notre victoire

  3. #3
    Futur Membre du Club
    Inscrit en
    Juin 2009
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 27
    Points : 6
    Points
    6
    Par défaut
    Merci pour ta réponse. Vers quelle version de Delphi devrais-je m'orienter à ton avis ?

  4. #4
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 206
    Points : 28 131
    Points
    28 131
    Par défaut
    Je ne connais pas les différentes version de Delphi, je suis plutôt VB.

    Au boulot, j'utilise par nécessite Delphi 7, que je n'aime absolument pas. Je trouve très difficile de debugger un programme, de le mettre au point.

    Je pense (j'espère) que les versions plus récentes sont mieux.

    Je crois d'ailleurs qu'il existe une version gratuite, à vérifier sur le site de Code Gear
    --- Sevyc64 ---

    Parce que le partage est notre force, la connaissance sera notre victoire

  5. #5
    Futur Membre du Club
    Inscrit en
    Juin 2009
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 27
    Points : 6
    Points
    6
    Par défaut
    Damned ! Tu jettes le chaud et le froid !
    Effectivement, il y a une version gratuite (Turbo delphi explorer, c'est bien ça ?). J'ai pu la télécharger mais pour le moment je ne parviens pas à obtenir une clé d'activation, leur site semble en dérangement ou en maintenance.
    Et puis on me dit que je dois choisir entre .NEt et win32. Peux-tu me dire de quoi il s'agit ?

  6. #6
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Points : 9 818
    Points
    9 818
    Par défaut
    Je tiens à préciser que le langage utilisé pour la visualisation (par exemple pour du web (php, java etc.), pour une application Desktop (Delphi, C, java etc.)) peut être différent du langage utilisé pour faire du traitement métier lourd (calcul d'emploi du temps)

    Il existe peut être même déjà des applications en ligne de commande permettant de générer des emplois du temps à partir de contraintes, qu'il suffira d'appeler dans le langage utilisé

    Pour générer des emplois du temps, pour faire simple, j'avais tendance à utiliser un langage de programmation par contraintes, et pour faire la visualisation, je préférerai prendre un langage un peu plus sympa que je maitrisais mieux.
    Je ne répondrai à aucune question technique en privé

  7. #7
    Modérateur
    Avatar de sevyc64
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2007
    Messages
    10 206
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 206
    Points : 28 131
    Points
    28 131
    Par défaut
    Et puis on me dit que je dois choisir entre .NEt et win32. Peux-tu me dire de quoi il s'agit ?
    Win32 (dit aussi natif) est la famille classique des logiciels que l'on connais depuis longtemps avec Delphi, C++, ......
    Ils sont executés directement dans le système d'exploitation, et font appel directement au routine de celui-ci.

    .Net est un framework (une sur-couche du système d'exploitation) qui offre un certain nombre de fonctions. Les logiciels .Net (dit aussi managés) ne s'execute par directement dans le système d'exploitation, ils s'execute sur ce framework. Un peu à l'image du code Java qui ne s'execute pas dans l'OS mais dans une machine virtuelle.
    Le framework .Net est développé par Microsoft. Il se veut être une collection de bibliothèques qui permet l'uniformisation de la programmation. Il est censé permettre de faire l'abstraction complète de l'OS et permettre l'execution du programme quelque que soit le système. Il s'agit ici de la Programation Orienté Objet.

    De nombreux langages permettent de programmer en .Net. Des langages ancients qui ont évolué comme VB et Delphi, C++, mais aussi de nouveaux langages comme le C#.

    Ainsi Delphi et C++ permettent donc les 2 versions de programmes classique (natif, win32 selon les termes) et sur le framework .Net (ou managés).

    Lequel choisir ? je ne saurais te dire. Travaillant essentiellement sous VB, j'ai été obligé de passer à .Net. Microsoft n'a pas maintenu les versions de VB permettant de faire du code natif.
    Mais .Net, voulu comme étant l'avenir depuis le début par Microsoft, devient très important
    --- Sevyc64 ---

    Parce que le partage est notre force, la connaissance sera notre victoire

  8. #8
    Futur Membre du Club
    Inscrit en
    Juin 2009
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 27
    Points : 6
    Points
    6
    Par défaut
    Merci à vous deux pour vos réponses !

    Millie:
    Je tiens à préciser que le langage utilisé pour la visualisation (par exemple pour du web (php, java etc.), pour une application Desktop (Delphi, C, java etc.)) peut être différent du langage utilisé pour faire du traitement métier lourd (calcul d'emploi du temps)
    Effectivement, c'est bon à savoir.

    Pour générer des emplois du temps, pour faire simple, j'avais tendance à utiliser un langage de programmation par contraintes, et pour faire la visualisation, je préférerai prendre un langage un peu plus sympa que je maitrisais mieux.
    Je suis très ignorant... Quels sont les langages de programmation par contraintes ? Et lorsque plusieurs langages sont utilisés, comment sont généralement stockées les données, pour pouvoir être communiquées ?

    Sevyc64 :
    Merci, c'est très clair. Pour le moment, une application classique suffira. J'envisagerai (beaucoup) plus tard la possibilité pour les profs/élèves de consulter leur emploi du temps sur internet, voire de recevoir un avis de mise à jour par email.

    J'ai pu installer Delphi et suis en train de potasser le tutoriel de Frédéric Beaulieu. Effectivement, je me retrouve en terrain connu et c'est très agréable (limite émouvant, je n'avais pas croisé de programme Pascal depuis + de 15 ans). Les

    Application.Initialize;
    Application.CreateForm(TForm1, Form1);
    Application.Run;

    doivent tout de même paraître bien étranges à un vrai débutant !

  9. #9
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Points : 9 818
    Points
    9 818
    Par défaut
    Citation Envoyé par Garocat Voir le message
    Je suis très ignorant... Quels sont les langages de programmation par contraintes ? Et lorsque plusieurs langages sont utilisés, comment sont généralement stockées les données, pour pouvoir être communiquées ?
    Je pensais que tu connaissais des algorithmes de génération d'emploi du temps ?
    En général, avant d'utiliser des techniques difficile, on peut utiliser simplement des contraintes et un langage qui sait le résoudre.

    L'exemple que j'ai sous la main, c'est le problème des 8 reines que l'on veut placer sur un échiquier sans qu'aucune des reines ne puissent en prendre une autre.

    En gros, c'est 8 entiers Qi entre 1 et 8, et les contraintes sont du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    queens8_(Queens) :-
      [Q1, Q2, Q3, Q4, Q5, Q6, Q7, Q8] = Qi, //défini l'ensemble des reines
      Qs :: 1..8, //tous entre 1 et 8
      alldifferent(Qs), //tous différents car pas d'attaque horizontal
      //pas d'attaque diagonale, ce qui se traduit par : 
      Q1 != Q2+1, Q1 != Q3+2, Q1 != Q4+3, Q1 != Q5+4, Q1 != Q6+5,
        Q1 != Q7+6, Q1 != Q8+7,
      //on continue avec les autres positions

    On peut faire ce même système avec des emplois du temps car cela revient en fait à placer des hypercubes dans un certain espace (les contraintes sont la non intersection des hypercubes).
    Les langages de programmation par contraintes permettent de placer automatiquement ces cubes et de résoudre des contraintes automatiquement.



    Ensuite, il suffit d'en faire un programme exécutable, et un autre langage peut l'appeler (via un échange simple de fichier par exemple).
    De plus, en général, on génère une fois l'emploi du temps tous les 36 du mois, donc ce n'est même pas forcement au programme de visualisation de le lancer.

    Mais je pense qu'il y aura de la doc plus conséquente ailleurs que ce que je pourrais expilquer.
    Je ne répondrai à aucune question technique en privé

  10. #10
    Futur Membre du Club
    Inscrit en
    Juin 2009
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 27
    Points : 6
    Points
    6
    Par défaut
    Je pensais que tu connaissais des algorithmes de génération d'emploi du temps ?
    Non, pas particulièrement, même si je me doute bien que ce genre de chose a été très étudié et si j'ai quelques idées (peut-être très naïves...).

    A contrario, je ne me doutais absolument pas de l'existence de langages intégrant ce genre de chose, c'est très intéressant ! D'ailleurs, en quel langage est écrit l'exemple des 8 reines que tu me donnes ?

    En même temps, nous avons à faire face à des contraintes très fortes (manque de salles en particulier). Mon programme devra, même s'il n'existe pas de solution, me fournir une solution approchée avec un nombre minimal de hiatus possible, l'utilisateur pouvant décider quels sont les hiatus les moins inadmissibles.
    Ensuite, il suffit d'en faire un programme exécutable, et un autre langage peut l'appeler (via un échange simple de fichier par exemple).
    De plus, en général, on génère une fois l'emploi du temps tous les 36 du mois, donc ce n'est même pas forcement au programme de visualisation de le lancer.
    Tout à fait exact...

    Merci beaucoup pour ces réponses, mon schmilblick avance !

  11. #11
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Il me semble comme millie que nous avons affaire à deux problèmes bien séparés et ne demandant pas du tout la même approche ni les mêmes outils :
    • D'une part la génération d'emploi du temps étant donné certaines contraintes. Nécessite un langage adapté à la résolution de contrainte, à des algorithmes complexes et suffisamment expressif pour encoder les diverses contraintes et préférences facilement. En réalité, les performances ne sont pas si vitales qu'il pourrait y paraître (tant qu'on reste dans le raisonnable, les langages de scripts interprétés ne sont probablement pas un choix judicieux par exemple) étant donné que le programme est lancé très rarement et pas dans des cas où recevoir une réponse au plus vite est la priorité.
    • D'autre part une interface de consultation et éventuellement de modification d'un emploi du temps pré-généré. Pour être honnête, je ne suis pas certain que l'approche adoptée jusqu'ici soit la plus appropriée : un emploi du temps pour un établissement scolaire se doit d'être consultable aussi bien par les élèves que par les professeurs, éventuellement depuis des ordinateurs publics... Autrement dit c'est le cas typique où une interface web simplifie la vie à tout le monde et une application desktop pose problème. Je crois qu'on peut faire des pages dynamiques avec Delphi (on peut toujours faire du CGI en tout cas) mais je ne suis pas certain que ce soit le domaine d'excellence du langage (peut-être des experts Delphi pourraient-ils nous donner leur opinion sur la question ?).


    Ceci n'est que mon avis et peut-être que ta situation est telle qu'un client lourd est raisonnable (en gardant à l'esprit que Delphi n'est pas non plus très portable : l'interface web serait automatiquement multi-plateforme alors que tel que tu es parti, tu te limites à Windows, ce qui en environnement scolaire peut être un problème selon les politiques informatiques de l'établissement).

    --
    Jedaï

  12. #12
    Futur Membre du Club
    Inscrit en
    Juin 2009
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 27
    Points : 6
    Points
    6
    Par défaut
    Bonjour Jedai,

    et merci pour ce grain de sel. Effectivement, je pense qu'il me faut complètement dissocier la création/la modification d'un emploi du temps et la simple consultation via le web par exemple. Cette deuxième partie est cependant une question de confort et moins fondamentale, tandis que la première est assez pressante, vu le nombre de bugs que nous subissons.
    Mais comment se nomment ces mystérieux langages adaptés à la résolution de contraintes ? J'ai (assez brièvement il est vrai) regardé sur le web, il ne me semble pas qu'un langage particulier se distingue...?

    Pour ce qui est de Windows, vu le nombre de poste équipés dans mon établissement et les habitudes des personnels, on n'est pas prêt d'en sortir... Il est vrai cependant que si je parviens à fabriquer quelque chose qui fonctionne, ce serait sympa que cela puisse être réutilisé ailleurs.

  13. #13
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Points : 9 818
    Points
    9 818
    Par défaut
    Alors, le langage que j'utilisais s'appelait : CHIP de Cosytec. Mais autant te dire que c'est absolument pas connu et propriétaire (par contre, c'est assez simple et ça marche pas mal)


    Il me semble qu'il y a des extensions pour faire de la programmation par contrainte dans prolog qui est plus connu. Mais je n'ai jamais essayé. Je pense que d'autres personnes vont se manifester sur les langages de programmation par contraintes
    Je ne répondrai à aucune question technique en privé

  14. #14
    Futur Membre du Club
    Inscrit en
    Juin 2009
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 27
    Points : 6
    Points
    6
    Par défaut
    Citation Envoyé par millie Voir le message
    CHIP de Cosytec. Mais autant te dire que c'est absolument pas connu et propriétaire
    Ah oui effectivement, je viens de regarder leur site internet, ils n'ont que 200 clients : je doute qu'ils fassent cadeau de leur logiciel, même à l'éducation nationale !

    Merci en tout cas pour tes indications !

  15. #15
    Membre chevronné Avatar de chaplin
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 215
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 215
    Points : 1 819
    Points
    1 819
    Par défaut
    Lors de conférence Codegear, Delphi for Php 2.0 était présenté, un EDI pour PHP (pas en Delphi). Cependant, il est possible de mixer les deux technologies Delphi 2009 et Delphi for PHP.

  16. #16
    Futur Membre du Club
    Inscrit en
    Juin 2009
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 27
    Points : 6
    Points
    6
    Par défaut
    Merci pour l'info.

  17. #17
    Membre chevronné Avatar de chaplin
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 215
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 215
    Points : 1 819
    Points
    1 819
    Par défaut
    En fait, je ne m'étais jamais interessé à PHP, mais j'ai un copain qui a fait de la vente en ligne avec OsCommerce, un framework en PHP. J'avoue que j'ai du mal avec tous ces $ qui jonchent la syntaxe de PHP, d'ailleurs ça me rappelle un temps les @ avec le langage de script de Lotus Notes. Bon, personne n'est parfait, cependant beaucoup de gens l'utilisent et font même de l'argent avec alors qu'ils ne sont pas tous informaticien à l'origine, mais avec beaucoup de débrouillardise, certains s'en sortent à bon compte.

  18. #18
    Membre actif
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    176
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 176
    Points : 258
    Points
    258
    Par défaut
    Hello,

    Dans l'université dans laquelle j'étais, ils utilisaient un algorithme génétique pour générer leur emploi du temps...
    Voila un doc au sujet de l'algo qu'ils ont utilisé.

    A priori, il y a pas mal d'info sur ce sujet sur le net...

    pour info, en anglais tu peux taper "timetabling using genetic algorithm".

  19. #19
    Futur Membre du Club
    Inscrit en
    Juin 2009
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 27
    Points : 6
    Points
    6
    Par défaut
    Merci Chaplin.
    Là, je suis plutôt parti sur Delphi (que ma familiarité avec Pascal me rend très intuitif... c'est un bel outil !) et/ou java, car on m'a signalé le logiciel open source "Rapla", écrit en java, et qui peut être une bonne base de départ pour moi.

    Et Merci GeantVert13.
    Cet article me sera certainement très utile ! C'est effectivement à des algorithmes génétiques que je songeais, sans toutefois avoir d'idée très précise.

  20. #20
    Candidat au Club
    Inscrit en
    Novembre 2006
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 4
    Points : 4
    Points
    4
    Par défaut edt10
    tu peux peut être utiliser le logiciel EDT 10

Discussions similaires

  1. Réponses: 4
    Dernier message: 02/09/2008, 17h55
  2. [Débutant] Quel langage pour un logiciel de vidéo surveillance ?
    Par jo13.56 dans le forum Langages de programmation
    Réponses: 9
    Dernier message: 09/02/2007, 17h11
  3. Quel langage pour un logiciel de gestion ?
    Par bluelagooon dans le forum Langages de programmation
    Réponses: 4
    Dernier message: 31/01/2007, 07h26
  4. Quel langage pour un logiciel de dimensionnement de jeux de barres ?
    Par gorgonzoland dans le forum Langages de programmation
    Réponses: 4
    Dernier message: 15/01/2007, 16h03
  5. Quel langage pour un logiciel avec BD pour Windows et Linux
    Par Guilhem_mdg dans le forum Windows
    Réponses: 3
    Dernier message: 19/03/2006, 16h47

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