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

Java Discussion :

Passage VBA à Java : avantages et inconvénients


Sujet :

Java

  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 66
    Par défaut Passage VBA à Java : avantages et inconvénients
    Bonjour,

    Dans le cadre d'un projet dans une entreprise, j'ai développé un programme regroupant plusieurs fonctionnalités dans le langage VBA.
    On avait choisit VBA car on utilise des fichiers Excel en entrée et en sortie du programme.

    L'étape suivante est de partager le programme nationalement dans plusieurs entités.

    Je m'interroge si je ne devrais pas reprendre le programme afin de le migrer dans un autre langage, par exemple Java.

    Quels sont les avantages et les inconvénients de cette migration ?

    Je pense que je gagnerai en stabilité et une meilleur gestion des versions.

    Qu'en pensez-vous ?

    Merci d'avance.

  2. #2
    Membre Expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Par défaut
    Je ne pense pas que tu gagnerais en stabilité ou en gestion des versions.

    -> un programme, VBA ou pas, une fois stable, c'est stable. Java ça se débug plus facilement, ça se monitore plus facilement, mais si c'est stable alors 0 gain.
    -> gestion des versions: qu'est-ce que tu entends par là? Gestion des versions d'Excel, ou autre? Mais je doute que Java fasse mieux que VBA dans ce domaine (au contraire même, les spécs Excel étant plutôt fermées, tout du moins historiquement, tout ce que tu trouves dans le monde Java est issu de reverse engineering et rien ne garantit que cela fonctionne vraiment... VBA à l'opposé, c'est plutôt le contraire: fait par Microsoft pour Microsoft)

    Tout ce que tu risques, c'est de perdre le "lien privilégié" qu'a VBA avec les applis M$... et aucun gain réellement significatif en vue

    Ha et en plus tu risques de forcer tous tes utilisateurs à installer Java... ce qui est chiant et mal compris par les usagers...

  3. #3
    Modérateur
    Avatar de Gugelhupf
    Homme Profil pro
    Analyste Programmeur
    Inscrit en
    Décembre 2011
    Messages
    1 326
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Analyste Programmeur

    Informations forums :
    Inscription : Décembre 2011
    Messages : 1 326
    Billets dans le blog
    12
    Par défaut
    Je préfère largement le Java au Visual Basic .NET, mais pour ton cas je ne vois que des inconvénients.

    • Déjà que faire du VBA en C# n'est pas évident, il faudra très certainement passer par un bridge pour Java : du coup pour la stabilité du programme j'ai des doutes.
    • Passer par un bridge demande du temps pour se former sur le bridge et la ré-écriture du code.
    • Passer par un bridge veut aussi dire qu'il y a un risque de manque de fonctionnalité.


    Est-ce une bonne idée de nationaliser un programme Excel/VBA ? Je pense que travailler sur des fichiers Excel+macro n'est pas une bonne idée car on ne peut pas travailler à plusieurs en même temps sur un fichier et on finit toujours par avoir des problèmes de versionning avec une personne A qui possède une version différente du fichier qu'une personne B (sauf si on force les utilisateurs à se servir d'un outil comme le drive de Google).

    Bien sur si le fichier Excel en question ne contient que des données brutes (qu'on peut facilement convertir au format CSV), et dont l'objectif sert à contenir les import/export de donnée, n'hésite pas à travailler en Java, tu pourras facilement gérer le versionning de ton programme avec Git/SVN et tes dépendances avec Maven.
    N'hésitez pas à consulter la FAQ Java, lire les cours et tutoriels Java, et à poser vos questions sur les forums d'entraide Java

    Ma page Developpez | Mon profil Linkedin | Vous souhaitez me contacter ? Contacter Gokan EKINCI

  4. #4
    Membre Expert
    Avatar de professeur shadoko
    Homme Profil pro
    retraité nostalgique Java SE
    Inscrit en
    Juillet 2006
    Messages
    1 257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : retraité nostalgique Java SE

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 257
    Par défaut
    ce que je vais dire ne va pas t'aider .... mais j'ai travaillé dans une entreprise comme ça qui avait le culte d'Excel.
    Or vu la taille de l'entreprise (internationale) c'était une pure hérésie du point de vue fonctionnel: on a eu toutes les peines du monde à leur dire qu'il fallait un serveur avec un base de données relationelle.
    Et d'ailleurs on n'y est pas toujours arrivé ... je te raconte pas le b**** résultant des diverses versions de fichiers non-cordonnés qui se baladaient dans la nature (par mail) ....
    Mais le manager moyen adore Excel même quand c'est pas pour des utilisations "tableur pur".
    Donc la question plus fondamentale est: est-ce vraiment une application qui justifie pleinement des fonctions de tableur (ou juste un moyen d'afficher et de consulter des données)?

  5. #5
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 713
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 713
    Par défaut
    Comme tu as dit que
    on utilise des fichiers Excel en entrée et en sortie du programme
    Cela veut dire qu'il y a de la saisie et de la restitution et que les données sont stockées dans Excel.

    Mais si tu dois "partager le programme nationnalement dans plusieurs entités"
    Alors le premier pas est de sortir du stockage Excel qui n'est pas fiable dans cette situation.
    Tu dois passer à :
    1) la saisie des données avec des écrans "fixes" -> contrôle de la saisie
    2) au stockage des données en base de données -> là tu es stable.
    3) restitution, pourquoi pas, en Excel ou alors des "Etats"

    Quels outils ?
    - Access : développement rapide et proche d'Excel. Accès facile aux bases de données (Access, Sql Server, ...)
    - Java : développement plus long mais offre plus de perspectives (communication entre entités par mails, FTP, etc ...)
    pour la restitution Excel on doit utiliser une bibliothèque spécique (POI par excemple) mais c'est sensiblement équivalent à piloter Excel depuis Access.
    choix plus large de base de données.

    @Pill_S "un programme, VBA ou pas, une fois stable, c'est stable. Java ça se débug plus facilement"
    juste un (petit) bémol tout de même, si l'entreprise a plusieurs entités nationale,
    on peut avoir des cas de version d'Excel différentes qui peuvent bloquer.
    Sinon, Excel se débogue également très bien (dans la mesure où le VBA est nettement plus limité que Java !!!)
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    174
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 174
    Par défaut
    Parmi les avantages du Java par rapport au VBA: l'exécution multi-platefome.

  7. #7
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2011
    Messages
    66
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 66
    Par défaut
    Merci pour les contributions!

    Avec VBA, on a l'avantage d'installer rapidement le programme. Sachant que c'est juste un copier coller du fichier contenant touts les modules...

    Je souhaitais passer par une base de données pour gérer les données propres à chaque entité.
    Aujourd'hui, j'ai un fichier qui regroupent ses informations. Si j'ai une donnée commune à toutes les entités, je dois modifier dans chaque fichiers.

    Dans cette optique, je pensais qu'en migrant sur JAVA, ca serait plus facile au niveau création et interface avec la base de données.
    Je ne suis pas convaincu par ACCESS.

  8. #8
    Modérateur

    Homme Profil pro
    Développeur java, access, sql server
    Inscrit en
    Octobre 2005
    Messages
    2 713
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur java, access, sql server
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 713
    Par défaut
    je pensais qu'en migrant sur JAVA, ca serait plus facile au niveau création et interface avec la base de données
    Non, c'est le contraire. Access a été construit pour faire des écrans rapidement
    et communiquer facilement avec le SGBD.

    Maintenant, quel est l'objet de l'application, combien d'utilisateurs ?
    Labor improbus omnia vincit un travail acharné vient à bout de tout - Ambroise Paré (1510-1590)

    Consulter sans modération la FAQ ainsi que les bons ouvrages : http://jmdoudoux.developpez.com/cours/developpons/java/

Discussions similaires

  1. Avantages et inconvénients par rapport au C++ ?
    Par clovis dans le forum Smalltalk
    Réponses: 3
    Dernier message: 11/07/2009, 17h58
  2. Réponses: 3
    Dernier message: 16/06/2006, 16h36
  3. [migration] Passage à Java 5
    Par LaJavanaise dans le forum Langage
    Réponses: 3
    Dernier message: 26/04/2006, 11h19
  4. Docteur ès Sciences : avantage ou inconvénient ?
    Par Invité dans le forum Etudes
    Réponses: 72
    Dernier message: 15/11/2005, 12h05
  5. [Excel][VBA][Java] Appeler un objet java
    Par ay_pepito dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 29/07/2005, 15h46

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