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

avec Java Discussion :

Passer de Delphi à Java ?


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé

    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Janvier 2006
    Messages
    621
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : Janvier 2006
    Messages : 621
    Par défaut Passer de Delphi à Java ?
    Bonjour à tous,

    J'étais jusqu'à présent fervent défenseur du Pascal et je développe en Delphi sous Windows.

    Je me pose donc la question de savoir s'il serait bien de passer à Java, car je suis sur Mac OS X et pour développer en Delphi, je suis obligé d'utiliser VMWare, pour avoir une machine virtuelle Windows. Bref pas terrible.

    Avant de passer sous Java, je me pose les questions suivantes :

    • La même application pourra-t-elle être exécutée sur XP et sur MAC (portabilité) ?
    • Existe-t-il un EDI de type Delphi pour Java qui soit aussi performant et ergonomique (RAD, concepteur graphique...) et qui existerait sur plusieurs plateformes (MAC et PC) ?
    • En termes de performances le résultat sera-t-il comparable à une application écrite en Delphi ?
    • Existe-t-il des bibliothèques d'objets utilitaires comme en Delphi ?
    • Je ne connais pas C ni C++ ni C#, est-ce un problème ou un frein ?
    • Certaines choses sont-elles impossibles à faire en Java qui seraient possibles en Delphi ?

    Voila je sais que ça doit être assez basique comme question mais je suis un peu perdu et avant de prendre une décision, je préfère savoir à quoi m'en tenir.

    L'idéal serait d'avoir l'avis d'un pro qui maitrise Delphi et Java

    Merci à tous.

  2. #2
    Membre Expert Avatar de rtg57
    Homme Profil pro
    Autodidacte
    Inscrit en
    Mars 2006
    Messages
    1 341
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Autodidacte
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 341
    Par défaut
    Bonjour,

    je n'ai pas la réponse à toutes les questions, et celles que je vais faire n'engagent que moi:
    * Si JAVA tourne sur MAC, alors il devrait y avoir compatibilité. J'ai testé la comptabilité µSoft (XP, Vista, 7) et Linux (Ubuntu). Cela fonctionne dans les grandes lignes à part quelques petites divergence graphiques...
    * En ce qui concerne l'éditeur, il y a JBuilder qui ressemble à ce que l'on connait sur Delphi. Sinon il y a aussi NetBeans. Pour ma part j'ai commencé avec ce dernier, mais finalement j'utilise Eclipse maintenant. Je me suis aperçu que "placer les composants" par le code n'est pas plus fastidieux que de les placer en "WYSIWYG".
    * Je ne pense pas que JAVA soit aussi performant en terme de vitesse. Il interprète en temps réel le code alors que Delphi fourni un code compilé. Cependant, avec les machines actuelles, on ne voit pas de différence. A part si l'on désire faire un jeu d'échecs...
    * Bien sûr qu'il y a des bibliothèques d'utilitaires. Allez faire un tour de ce côté, et vous verrez les fonctionnalités de bases de JAVA: http://download.oracle.com/javase/6/...s-noframe.html. Même si vous n'y comprenez pas tout, vous voyez au moins l'étendue ... du problème
    * Connaitre C et C++ peut aider... mais c'est un handicap aussi. Car il faut "oublier" la façon de penser en C++, et se mettre à penser en JAVA. Donc finallement, ce n'est pas un problème de ne pas connaitre C++.
    * Pour la dernière question, je ne peux pas répondre, mais je pense que rien n'est impossible en JAVA... c'est un langage impressionnant !!

    En espérant que cette réponse puisse vous aider dans votre choix. De plus, il y a les forums de ce site qui fait que l'on reste rarement coincé, alors pourquoi ne pas tenter l'aventure JAVA...

    @ bientôt

  3. #3
    Membre éclairé

    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Janvier 2006
    Messages
    621
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : Janvier 2006
    Messages : 621
    Par défaut
    Bonjour et merci pour la réponse.
    quelques besoins de précisions :

    Je me suis aperçu que "placer les composants" par le code n'est pas plus fastidieux que de les placer en "WYSIWYG".
    Ça veut dire que c'est quand même super complique de le faire par une interface graphique ? Je dis ca parce que dans mon soft j'ai une tretra chiée de contrôles à placer sur ma page et par soft ça me parait coton de gérer le positionnement...

    Cela fonctionne dans les grandes lignes à part quelques petites divergence graphiques...
    c'est à dire ? (genre quelqeus détails...)

    Merci d'avance. Si d'autres spécialistes ont d'autres infos...

  4. #4
    Membre chevronné

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2010
    Messages
    246
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mai 2010
    Messages : 246
    Par défaut
    même avis que rtg57.

    Juste pour préciser sur le placement des composants, même si tu en as 50 ou 100 à placer, ce sera certe fastidieux de les placer à la main...

    Maintenant il y a "à la main" et "à la main", j'entends par la que tu peux les placer en fixant à chacun sa position exacte (très très fastidieux), ou alors tu peux regarder comment fonctionne les Layout en JAVA, et la ca se fera vite et bien.

    Il suffit de choisir le bon layout et de le paramétrer, ensuite tu n'aura qu'a ajouté tes composants dedans via un méchant bourrin "add", JAVA se chargera de le mettre à la bonne place

    Donc ca parait long et fastidieux, mais ca ne l'est pas forcément si tu utilise les bons outils à ta disposition.

  5. #5
    Modérateur
    Avatar de wax78
    Homme Profil pro
    R&D - Palefrenier programmeur
    Inscrit en
    Août 2006
    Messages
    4 095
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : R&D - Palefrenier programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2006
    Messages : 4 095
    Par défaut
    Citation Envoyé par rtg57 Voir le message
    * Je ne pense pas que JAVA soit aussi performant en terme de vitesse. Il interprète en temps réel le code alors que Delphi fourni un code compilé. Cependant, avec les machines actuelles, on ne voit pas de différence. A part si l'on désire faire un jeu d'échecs...
    Je ne suis pas sure, car maintenant y'a la Compilation à la volée. Et puis certains bouts de code, traduits tel quels tournent pareil (genre pour résoudre un équation iterativement avec une belle grosse boucle qui fait du calcul, testé et approuvé
    (Les "ça ne marche pas", même écrits sans faute(s), vous porteront discrédit ad vitam æternam et malheur pendant 7 ans)

    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    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
    Composer un écran de saisie avec NetBeans comme EDI n'est pas un problème.
    C'est du glisser-placer avec une ergonomie forcément différente d'un autre EDI.

    Perso, avant java, je programmais avec Access 2000 et je n'ai pas été perturbé par le changement d'outil pour la composition des écrans.

    arkhamon, en fait les questions que tu poses sont les inquiétudes classiques du programmeur expérimenté dans un langage
    qui aimerait bien retrouver "au moins aussi bien" dans un autre langage.

    En choisissant java, tu choisis la garantie d'un langage assez universel
    pour pouvoir se dire "quel que soit le cas d'école, il y a la solution".

    Un autre aspect, et non des moindres, est que la communauté java est extrêmement large.
    On trouve systématiquement des bibliothèques spécialisées dans la question que l'on souhaite régler :
    - mail, web, FTP
    - mise en page sophistiquée d'états
    - XML, bases de données ...

    Donc c'est génial mais ...

    ... passer à un autre langage nécessite plusieurs mois de travail avant d'être à l'aise.
    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/

  7. #7
    Membre Expert Avatar de rtg57
    Homme Profil pro
    Autodidacte
    Inscrit en
    Mars 2006
    Messages
    1 341
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Autodidacte
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 341
    Par défaut
    Bonjour,

    pour compléter les réponses du 1er post:

    * Le placement de composants "à la main", c'est pas "super compliqué", c'est même simple. Cependant, cela demande à écrire quelques lignes de code. Alors c'est sûr que c'est plus fastidieux que de glisser-déposer et étirer les composants à l'aide de la souris. Quoique, si on veut un placement précis, il faut parfois aller retoucher le code généré par un EDI WYSYWYG.

    * Pour les petites divergences graphiques, il s'agit d'un cas où j'ai développé une boite de dialogue très personnalisée, avec effet de translucidité et ombrage. Cela ne fonctionne pas de la même façon sous UBUNTU. Mais je pense qu'il y aurait moyen de bidouiller...

    Encore une fois, je terminerais par ceci: JAVA est vraiment impressionnant. L'informatique n'est pas mon métier, mais c'est un réel plaisir avec JAVA. Enfin, cela n'engage que moi

    @ bientôt...

  8. #8
    Membre éclairé

    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Janvier 2006
    Messages
    621
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : Janvier 2006
    Messages : 621
    Par défaut
    Merci à tous pour vos réponses, je vais finir par me laisser convaincre d'abandonner mon bon vieux Delphi au profit de Java, et dieu sait à quel point j'adore Delphi.

    Autre point : il semble que Eclipse soit devenu the EDI pour java. C'est un bon choix ou pas ? Sachant que étant issu du monde PC, y a quelques trucs qui me rebutent parmi lesquels :
    • devoir installer un soft en tapant des lignes de commandes a rallonge
    • paramétrer le soft via des modifs de fichiers dans tous les recoins
    • devoir bidouiller pour que ca marche sur ma machine
    • devoir installer 25000 pluggins pour que ca marche
    • devoir choisir entre 25 distributions


    Après je dois avouer que je suis un peu perdu entre toutes les versions JRE, J2E, SOA... Quoi prendre ?

    reste après une grande interrogation : JAVA étant 100% classe (admirez le jeu de mot), je fais comment pour constituer ma librairie de fonctions comme je faisais avant en Delphi ? exemple (considérons que la fonction que je développe ci-dessous n'existe pas en Java) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Function operation(opea , opeb : integer ; operateur : char) : integer;
    Begin
      case operateur of
        '+' : result := opea + opeb;
        '-' : result := opea - opeb;
        '*' : result := opea * opeb;
        '/' : result := opea div opeb;
    end;
     
    et l'appel : 
     
    resultat := operation(12 , variable , '*);
    Ah ouais j'allais oublier : les références d'un bon bouquin sur Eclipse Java et tout et tout. En français...

    Voila pour l'instant ca me parait un bon début...

  9. #9
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    la même appli pourra-t-elle être exécutée sur XP et sur MAC (portabilité) ?
    Oui, tant que vous vous limitez à java. Si vous commencer à utiliser des trucs comme "exécuter chmod, rmdir, find via System.exec" vous serez inévitablement dépendant d'un OS qui fournis ces applications Mais si vous restez dans le java, pas de soucis. Il faudra quand meme tester, mais il n'y aura aucun accro méchant a priori

    existe-t-il un EDI de type Delphi pour JAVA qui soit aussi performant et ergonomique (RAD, concepteur graphique...) et qui existerait sur plusierus plateformes (MAC et PC) ?

    Les plus connus sont netbeans, eclipse, intellijidea (payant)

    en termes de performances le résultat sera-t-il comparable entre une appli écrite en delphi et une en JAVA ?
    a peu de chose près oui. Il y aura une légère perte de perfs due au compilateur JIT et la JVM, mais les JVM moderne sont très efficace (par pour rien qu'elles servent de base à scale et jruby ) Et comme on a tendance à dire, le temps que vous gagnez à ne pas chasser les erreurs de pointeur en C ou en C++, vous pouvez le passer à optimiser vos algorithmes

    existe-t-il des bibliothèques d'objets utilitaires comme en Delphi ?
    Des tonnes. Une rapide promenade ici, ici et ici et encore ici puis aussi ici
    Je ne connais pas C ni C++ ni C# est-ce un problème ou un frein ?
    Non, vous avez déjà fait de la programmation, faudra juste vous défaire de vos mauvaises habitudes, java c'est du pur objet, fini la programmation fonctionnelle Et il y a des conventions de nommage qui ne sont pas les mêmes qu'en delphi.

    certaines choses sont elles impossibles à faire en JAVA qui seraient possibles en Delphi ?
    Certaines choses sont très difficile voir impossibles à faire en java pur. On y trouvera, étonnament, tout ce qui est intrinsèquement lié à l'OS. Ainsi vous ne pourrez pas
    • faire un driver de disque
    • jouer à injecter du code évènementiel dans les Window handler des applications qui ne vous appartiennent pas pour injecter vos menus (on reste sagement dans sa jvm)
    • créer un antivirus qui bidouille sur le filesystem pour intercepter les appels

    Bref, la portabilité à un prix, ce qui varie d'un OS à l'autre n'est en général pas accessible, donc plus question (dans une certaine mesure car il reste les pont vers le code natifs, c'est le cours pour programmeur avancé) d'aller choisir une dll obscure du système, la charger, et faire une bidouille obscure dessus pour rajouter une entrée au menu système de toutes les fenetres de toutes les applications qui permettrait de les rendre invisible


    Voila je sais que ca va paraitre innocent (pour pas utiliser un autre mot) mais je suis un peu perdu et avant de prendre une décision je préfère savoir à quoi m'en tenir.

    Pour info, je crois me souvenir qu'il existe un portage opensource de delphi qui est multi plateforme (par contre l'application créée avec sera liée à la plateforme en général)

    Le mieux serait de tomber sur un pro qui maitrise Delphi et Java

    Sont tous morts en même temps que delphi il y a 10 ans

  10. #10
    Membre éclairé

    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Janvier 2006
    Messages
    621
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Chef de projet MOA

    Informations forums :
    Inscription : Janvier 2006
    Messages : 621
    Par défaut
    Merci pour cette reponse détaillée et circonstanciée.
    Par contre je note quand meme :
    Sont tous morts en même temps que delphi il y a 10 ans
    C'est méchant ça... Delphi est pas mort. Bon d'accord j'irais pas parier mon fond de pantalon dessus a mon plus grand malheur...

    quant à un portage de Delphi sur OS X, visiblement,t c'est pas dans les projets d'Embarcadero, et Lazarus Project est d'une compatibilité toute relative dès qu'on taquine un peu Delphi...

  11. #11
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    c'est a prendre sur le trait de l'humour, mais il me semblait que le dev de delphi avait été arrêté déjà il y a 10 ans, quand kylyx s'est cassé la gueule.

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Février 2011
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2011
    Messages : 25
    Par défaut
    Me revoilà (même profil mais la c'est avec mon adresse perso).
    Donc j'avais bien compris que c'était de l'humour...

    JE viens de faire un programme en java :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    package brahma;
     
    import javax.swing.JFrame;
     
     
     
    public class Principal {
     
    	/**
             * @param args
             */
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		System.out.println("Lancement Brahma");
     
    	}
     
    }
    Quand j'exécute dans Eclipse, j'obtiens bien ce qui faut.
    Mais quand je veux exécuter le .class sous le terminal de mon mac, j'ai ça comme réponse :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    imac-de-michel-marecaux-3:brahma michelmarecaux$ java Principal -classpath /Users/michelmarecaux/Documents/workspace/brahma/bin/brahma
    Exception in thread "main" java.lang.NoClassDefFoundError: Principal (wrong name: brahma/Principal)
    	at java.lang.ClassLoader.defineClass1(Native Method)
    	at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632)
    	at java.lang.ClassLoader.defineClass(ClassLoader.java:616)
    	at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
    	at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
    	at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
    	at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    	at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
    	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    	at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
    J'y perd le peu de latin (oops de java) que j'ai jamais eu...

    Je comprends rien non plus a cette histoire de CLASSPATH qui ne semble pas exister quand je tape "set" sur le terminal.

    Au fait dans Eclipse, j'ai défini un package appelé "Brahma" dans lequel j'ai 4 fichiers .java (dont celui qui contient la classe "vg").

    Autre chose : je cherche un éditeur graphique pour Swing qui fonctionne sous OS X...

    Merci encore pour votre patience...

  13. #13
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    CLASSPATH en tant que variable d'environnement n'existe pas tant mieux, ne tentez pas d'y mettre quelque chose, cette variable d'environnement n'es presque jamais nécessaire mais quand elle est présente elle perturbe toutes les applications java


    Dans votre cas, il faut bien respecter les noms et package de vos classes. En l'occurence, votre classe est Principal dans le package brahma. Donc son nom complet est brahma.Principal. C'est ce qui doit apparaitre sur la ligne de commande

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java <option> brahma.Principal
    Ensuite, le "classpath" doit pointer dans le dossier ad-hoc, donc dans votre cas, pointer sur bin, ce qui donne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java -classpath /Users/michelmarecaux/Documents/workspace/brahma/bin brahma.Principal

  14. #14
    Membre émérite Avatar de DOLPat®
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2003
    Messages
    426
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 426
    Par défaut
    Bonsoir,

    Pourquoi ne pas rester en Pascal en utilisant l'EDI Lazarus ?
    Tu peux même réutiliser tes projets Delphi...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Passer les certifications java sans se ruiner.
    Par Turtle dans le forum Certifications
    Réponses: 7
    Dernier message: 21/03/2005, 09h21
  2. [SAX] Passer d'objet java en fichier XML?
    Par spoutyoyo dans le forum Format d'échange (XML, JSON...)
    Réponses: 15
    Dernier message: 05/01/2005, 08h31
  3. Comment passer sous Delphi ?
    Par J-P-B dans le forum XMLRAD
    Réponses: 2
    Dernier message: 13/06/2003, 10h09

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