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 :

Plusieurs langages dans une application ?


Sujet :

Langages de programmation

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de kayzra
    Inscrit en
    Novembre 2006
    Messages
    110
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 110
    Par défaut Plusieurs langages dans une application ?
    J'ai deux questions dont la réponse à la 1ère est, je crois, affirmative :

    1- Peut-on programmer une même application en utilisant deux langages différents pour effectuer différentes tâches ?

    2- Est-ce rentable ?

    Par exemple, un langage gère les applications graphiques et l'autre le reste.
    Je pensais à Java et Python

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    bien entendu et encore heureux...

    En fait, il faut toujours (mais certaines fois ce n'est que très difficlement possible), prendre le langage adapté à la tâche...

    Par exemple : une application disposant d'une IHM, effectuant des requêtes à des bases de données relationnelles, mais également en interactions avec des micro-controleurs et nécessitant des calculs de maths approfondis et lourds :

    éventuellement (mais bien entendu d'autres choix sont possibles) : IHM avec Java, SQL pour interactions BD, C pour interactions microcontrôleurs, Fortran pour calculs de maths intensifs...



    Et c'est le plus souvent rentable (portabilité, maintenance, adaptabilité, modularité, efficacité)

  3. #3
    Expert confirmé
    Avatar de Guigui_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 864
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Saône et Loire (Bourgogne)

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

    Informations forums :
    Inscription : Août 2002
    Messages : 1 864
    Par défaut
    Citation Envoyé par kayzra
    je pensai a java et python
    Dans mon cas, j'étais parti sur Delphi (principalement pour les IHMs) + Python (BDD, traitement d'images, ...). Mis à part quelques problèmes avec des composants, interfaçants les 2 langages, qui géraient assez mal les thread, ca marchait sans problème

    Mais, maintenant que je maîtrise les IHMs en Python, c'est 100% Python.

  4. #4
    Membre confirmé Avatar de kayzra
    Inscrit en
    Novembre 2006
    Messages
    110
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 110
    Par défaut
    merci pour vos reponses

    Si je vous comprend bien :

    - a titre particulier il vos mieux utiliser un seul language pour devolopper une application(plus simple) sauf si l'on recherche plus de vitesse ou défficacité.

    -a titre professionnel combiner plusieur languages afin de tirer le meilheur de chacun

    Pourriez vous m'indiquer un lien vers des tutos pour que je vois comment l'on fait dans la pratique pour combiner ces languages?

  5. #5
    Expert confirmé
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Suisse

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

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Par défaut
    Citation Envoyé par kayzra
    Pourriez vous m'indiquer un lien vers des tutos pour que je vois comment l'on fait dans la pratique pour combiner ces languages?
    Il n'y a pas de manière de faire en général, tout dépend du langage, par exemple, en Java, tu utiliseras JNI pour faire appel à du C, mais le moteur de script pour faire appel à du Groovy.

    Tu veux faire communiquer quels langages ?

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par kayzra
    ...pour je vois comment l'on fait dans la pratique pour combiner ces languages?
    ça n'est pas toi qui le feras, mais les compilateurs/linkers (éditions de liens). Cependant, pour beaucoup de langages, la communication inter-langages contient des subtilités, et il faut très bien connaître les 2 pour les faire communiquer correctement.

    Donc, comme dit wichtounet, tout dépend de ce que tu veux faire, avec quels langages, de ton niveau, etc..

  7. #7
    Membre éclairé Avatar de scaleo
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    327
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 327
    Par défaut
    Citation Envoyé par kayzra
    J'ai deux questions dont la réponse à la 1ère est, je crois, affirmative :

    1- Peut-on programmer une même application en utilisant deux langages différents pour effectuer différentes tâches ?

    2- Est-ce rentable ?

    Par exemple, un langage gère les applications graphiques et l'autre le reste.
    Je pensais à Java et Python

    Sur plateforme Windows c'est très simple tu passe par .Net pour les languages : php (phalanger), python, C#, C,C++,VB.net et quelques autres sans compter ceux qui arrive comme le projet Perl# qui est une implémentation de perl sous le Net framework

    Sinon si tu ne veut pas passer par .net tu peut aussi mais gaffe au subtilité de language

  8. #8
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Par défaut
    Bonjour,

    Faire échanger des informations à deux programmes écrits chacun dans un langage, ca n'a rien de sorcier ; on peut par exemple utiliser :
    • les sockets
    • les fichiers
    • les segments de mémoire partagée
    • les bases de données
    • les sémaphores
    • les signaux
    • ...


    Après, la difficulté vient de ce que tu veux échanger comme information. S'il s'agit "simplement" de réveiller un programme "endormi", alors passer par la gestion des signaux est quelque chose de relativement simple.
    En revanche, l'échange d'informations est plus que limité dans ce cas.

    En revanche, avoir deux programmes accédant à une même base de données permet de partager une très grande quantité d'informations.

    Il faut donc voir ce que tu souhaites faire, quelles sont les possibilités offertes par le langage (la gestion des signaux dans des langages très haut niveau n'est pas une mince affaire), et à partir de là en tirer les conclusions qui s'imposent : utiliser un middleware (CORBA), un framework( .Net), le même langage pour tout faire, ou un moyen de communication adapté à ce que tu souhaites faire.
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

  9. #9
    Membre Expert
    Avatar de InOCamlWeTrust
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 036
    Par défaut
    Je dirais que si l'application en question est de relative grande taille, il vaut mieux la découper en programmes plus petits, spécialisés, plutôt qu'en un seul et même graos truc. Il est ainsi possible de concevoir l'application de façon tout à fait transparente au moyen de plusieurs langages.

    Par contre, si on s'oblige de tout mettre dans le même exécutable, faire interagir différents langages est bien-sûr possible mais absolument pas portable et très dépendant du/des compilateurs et de l'architecture, et c'est pourquoi je pense qu'il vaut mieux raisonner en termes de petits programmes spécialisés accomplissant de façon très efficace une tâche donnée : on gagne en qualité et sûreté de développement ainsi qu'en modularité (donc en maintenabilité). Utiliser des framework comme .Net m'a toujours semblé être une mauvaise idée, du fait de la portabilité exécrable !

Discussions similaires

  1. Plusieurs services dans une application
    Par Drlord dans le forum Android
    Réponses: 2
    Dernier message: 14/03/2012, 16h13
  2. plusieurs Shell dans une application SWT/JFace
    Par Hypercube dans le forum SWT/JFace
    Réponses: 3
    Dernier message: 30/03/2009, 15h23
  3. Réponses: 3
    Dernier message: 29/05/2007, 20h37
  4. Ouvrir plusieurs fenêtres dans une application
    Par okonkole dans le forum GTK+
    Réponses: 6
    Dernier message: 03/04/2007, 15h06
  5. Réponses: 8
    Dernier message: 17/03/2004, 14h40

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