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

Actualités Discussion :

IKVM implémente Java pour .NET

  1. #21
    Membre éprouvé Avatar de jmnicolas
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2007
    Messages
    427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2007
    Messages : 427
    Points : 976
    Points
    976
    Par défaut
    Je me demande qui va vraiment utiliser ce genre d'outils ...

    Si on veut à tout prix du .net pour un projet existant en Java il me semble que ça ne devrait pas prendre bien longtemps pour convertir le code et partir sur des bases saines.

    Si jamais on ne veut pas réécrire le code Java, pourquoi ne pas continuer le projet existant en Java.

    Ces 2 langages étant très proches, les codeurs devraient pouvoir passer de l'un à l'autre sans soucis majeur !
    The greatest shortcoming of the human race is our inability to understand the exponential function. Albert A. Bartlett

    La plus grande lacune de la race humaine c'est notre incapacité à comprendre la fonction exponentielle.

  2. #22
    Modérateur
    Avatar de nouknouk
    Homme Profil pro
    Inscrit en
    Décembre 2006
    Messages
    1 655
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 655
    Points : 2 161
    Points
    2 161
    Par défaut
    Citation Envoyé par jmnicolas Voir le message
    Si on veut à tout prix du .net pour un projet existant en Java il me semble que ça ne devrait pas prendre bien longtemps pour convertir le code et partir sur des bases saines.
    Pour ton démineur de 500 lignes de code, oui.
    Pour une appli pro qui a dix ans d'âge et quelques millions de lignes de code, le coût de la réécriture complète est faramineux.

    Si jamais on ne veut pas réécrire le code Java, pourquoi ne pas continuer le projet existant en Java.
    Parce que les besoins peuvent évoluer au fil du temps.
    Et qu'à un moment, il se peut qu'une entreprise se dise (pour une raison x ou y) que .Net lui conviendra mieux que Java.
    Et dans ce cadre, s'il faut tout réécrire on le fait pas parce que ça coûte trop cher (et qu'il y a trop de risques de régression) ; par contre si on peut s'appuyer sur une solution intermédiaire du genre IKVM pour faire une transition en douceur, ça devient tout de suite plus envisageable.
    Mon projet du moment: BounceBox, un jeu multijoueurs sur Freebox, sur PC et depuis peu sur smartphone/tablette Android.

  3. #23
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,

    Citation Envoyé par smyley Voir le message
    Avoir un projet mixé à la fois avec du C# et du Java pour la même application, je ne suis pas sur que ce soit facilement maintenable.
    Le seul intérêt serait pour une migration "en douceur" des applications d'une techno Java vers une techno .NET, sans avoir forcément à tout réécrire.

    Mais au delà de cela l'intérêt est quand même assez limité...

    a++

  4. #24
    Membre régulier Avatar de maitredede
    Homme Profil pro
    Pisseur de code
    Inscrit en
    Mai 2006
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Pisseur de code

    Informations forums :
    Inscription : Mai 2006
    Messages : 59
    Points : 106
    Points
    106
    Par défaut
    Citation Envoyé par smyley Voir le message
    Le mot a peut être dépassé la pensé
    Bon, pour l'humour, je repasserai
    Citation Envoyé par smyley Voir le message
    Avoir un projet mixé à la fois avec du C# et du Java pour la même application, je ne suis pas sur que ce soit facilement maintenable.
    Ca ne l'est pas En théorie, on ne devrait jamais avoir à mixer différents langages dans un même projet. Mais parfois, l'historique, les rachats, etc... la vie d'une entreprise font que les projets évoluent...
    Citation Envoyé par smyley Voir le message
    Déjà savoir si dans un projet .NET on engage en programmeur Java ou C# ... je persiste à croire que dans un projet de grande envergure c'est déjà assez compliqué de se battre par exemple avec du C#/C++ avec pourquoi pas du PHP et autres choses semblables. Rajouter aux problèmes inhérents de la plateforme .NET ou du C++ des détails concernant une JVM et la lib Java ...
    Aujourd'hui, le projet sur lequel je travaille est composé d'un serveur (C#, C++/CLI), d'un client lourd WPF, d'un site web (asp.net, javascript, etc...), d'un client Silverlight (C#) et d'un applet java (java, C/C++). L'applet java sert à utiliser du matériel à partir du site web. Les librairies fournies par le constructeur ne sont disponibles qu'en Java ou C.
    Et comme aujourd'hui je suis le seul à intervenir sur chacun des sous-projets, il a bien fallu que je fasse interragir tout ce petit monde.

    Enfin bref, je suis hors-sujet... Mais avec IKVM, utiliser mon matériel (librairie java) dans le client lourd (C#) ne nécessite pas l'installation d'une JVM. Et dans la plupart des cibles de mon application client lourd, elle ne sera jamais installée.

  5. #25
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    Citation Envoyé par nouknouk Voir le message
    On parlait d'un intérêt pour un migration ou une réutilisation de l'existant
    Bah même. Dans un contexte pro on doit aussi prévoir le coût de maintenance à long terme de ce que l'on a produit et on se retrouvera à devoir maintenir un mix de code C#/Java. C'est possible, mais à long terme j'ai plus l'impression qu'il est plus rentable de convertir le code en .NET si on veux vraiment quitter la plateforme Java ou alors y rester ... (Déjà ce serai amusant de faire un interface en SWT couplée avec du WinForms ... je me demande si on peut mettre un composant Java dans une UI C# )

  6. #26
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    Citation Envoyé par maitredede Voir le message
    Les librairies fournies par le constructeur ne sont disponibles qu'en Java ou C
    Faire du P/Invoke directement en C# n'était pas envisageable ?

  7. #27
    Membre régulier Avatar de maitredede
    Homme Profil pro
    Pisseur de code
    Inscrit en
    Mai 2006
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Pisseur de code

    Informations forums :
    Inscription : Mai 2006
    Messages : 59
    Points : 106
    Points
    106
    Par défaut
    Citation Envoyé par smyley Voir le message
    Faire du P/Invoke directement en C# n'était pas envisageable ?
    C'est envisageable, mais il faut wrapper toutes les structures et tous les appels... Et comme je n'ai pas trouvé de générateur automatique de code pour ce genre de choses... Sans parler les problématiques de pointeurs, de codages de chaines, de trucs machins que j'ai pas encore rencontré...

    Si tu as un générateur qui à partir du fichier .h est capable de te générer tous les P/Invoke qui vont bien, avec la conversion des structures...

  8. #28
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    Citation Envoyé par maitredede Voir le message
    Si tu as un générateur qui à partir du fichier .h est capable de te générer tous les P/Invoke qui vont bien, avec la conversion des structures...
    J'en ai pas, mais ce n'est pas si compliqué de convertir des structs (en général il n'y a que les pointeurs à faire à la main justement, enfin bref c'est pas l'endroit )
    Par contre si on veut être tranquille avec le C et utiliser .NET il y a toujours le C++/CLI qui permet de mixer natif et managé très très facilement ...

  9. #29
    Membre éprouvé
    Inscrit en
    Avril 2006
    Messages
    853
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 853
    Points : 929
    Points
    929
    Par défaut
    Citation Envoyé par gorgonite Voir le message
    certes, mais cela a-t-il réellement eu un impact sur le marché ?
    si Sun voit des migrations massives de Java vers .Net, grâce à la possibilité de réutiliser l'existant en Java, est-ce qu'ils vont rester aussi cools ?
    en mettant temps, depuis la naissance de .net que java est supposé faiblir... pourtant ils est toujours autant utilisé, les outils s'améliorer, une panoplie de librairie sortent....

    avec toute la richesse que java possède... je doute fort que ça arrive

  10. #30
    Membre régulier
    Développeur informatique
    Inscrit en
    Mai 2004
    Messages
    49
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2004
    Messages : 49
    Points : 87
    Points
    87
    Par défaut
    Citation Envoyé par smyley Voir le message
    Dans un contexte pro on doit aussi prévoir le coût de maintenance à long terme [...] j'ai plus l'impression qu'il est plus rentable de convertir le code en .NET si on veux vraiment quitter la plateforme Java
    D'accord. Mais vu que les délais sont parfois très courts, on pourrait envisager une double solution: dans un premier temps, on convertit rapidement du bytecode en code CIL pour une utilisation immédiate. Une fois que le soft est livré, on entreprend une réécriture complète du programme original en C# (ou un autre langage si l'on préfère). Comme ça, le client est satisfait et la maintenance est aisée.

    Citation Envoyé par smyley Voir le message
    je me demande si on peut mettre un composant Java dans une UI C#
    Ouais, même sans IKVM, c'est possible. D'ailleurs, on trouve des articles étonnants sur ce sujet sur codeproject.

  11. #31
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Points : 18 679
    Points
    18 679
    Par défaut
    Citation Envoyé par smyley Voir le message
    Bah même. Dans un contexte pro on doit aussi prévoir le coût de maintenance à long terme de ce que l'on a produit et on se retrouvera à devoir maintenir un mix de code C#/Java.
    encore une fois rien ne dit qu'une même équipe devra maintenir les deux codes... et les interactions sont peut-être si importantes que passer par des RPC & cie serait trop coûteux

    après clairement, si on a du code spaghetti qui va utiliser un bout de Java et un bout de C# au lieu d'avoir une séparation très nette...
    Evitez les MP pour les questions techniques... il y a des forums
    Contributions sur DVP : Mes Tutos | Mon Blog

  12. #32
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Points : 18 679
    Points
    18 679
    Par défaut
    Citation Envoyé par robert_trudel Voir le message
    en mettant temps, depuis la naissance de .net que java est supposé faiblir... pourtant ils est toujours autant utilisé, les outils s'améliorer, une panoplie de librairie sortent....

    avec toute la richesse que java possède... je doute fort que ça arrive


    il suffit que quelques projets phare migrent pour que Sun voit un effet négatif en terme d'image... et donc tente de réagir. Je n'ai pas dit que .Net allait bouffer Java, et que Sun tenterait de faire un procès à la SCO pour essayer de survivre financièrement
    Evitez les MP pour les questions techniques... il y a des forums
    Contributions sur DVP : Mes Tutos | Mon Blog

  13. #33
    Membre à l'essai
    Inscrit en
    Mars 2009
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 8
    Points : 11
    Points
    11
    Par défaut
    Bonjour à tous,

    en lisant les commentaires j'ai un peu l'impression qu'une solution alternative serait de créer un logiciel de traduction entre les langages afin de faciliter la migration. Evidemment, ce genre d'outils serait compliqué à mettre en œuvre avec les dépendances, la nécessite du code source, l'évolutivité des langages etc etc. Mais je suis certain que pour migrer certains bouts d'applications vers un autre langage ça serait très utile. Ca permettrait d'avoir une bonne base pour la réécriture.

    Eb

  14. #34
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Points : 18 679
    Points
    18 679
    Par défaut
    Citation Envoyé par el-belgounetos Voir le message
    en lisant les commentaires j'ai un peu l'impression qu'une solution alternative serait de créer un logiciel de traduction entre les langages afin de faciliter la migration. Evidemment, ce genre d'outils serait compliqué à mettre en œuvre avec les dépendances, la nécessite du code source, l'évolutivité des langages etc etc. Mais je suis certain que pour migrer certains bouts d'applications vers un autre langage ça serait très utile. Ca permettrait d'avoir une bonne base pour la réécriture.

    ça s'appelle UML... un sous-ensemble de tous les langages objets qui permet de regénérer la structure complète d'un projet dans n'importe quel langage supporté par donc outil. et en théorie la Conception orienté-objet ne s'arrêtant pas aux langages orientés-objets, on pourrait même envisager de genre de bascule pour générer du C, du fonctionnel (avec record à la Caml),etc
    après on peut aussi trouver que le résultat sera TRES lourd


    enfin quid de la rétro-ingénierie (code source -> UML, voir bytecode/binaire -> UML)
    Evitez les MP pour les questions techniques... il y a des forums
    Contributions sur DVP : Mes Tutos | Mon Blog

  15. #35
    Rédacteur
    Avatar de lunatix
    Homme Profil pro
    Architecte technique
    Inscrit en
    Novembre 2002
    Messages
    1 960
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Novembre 2002
    Messages : 1 960
    Points : 3 736
    Points
    3 736
    Par défaut
    finalement, ce qui serait bien, c'est que les deux communautés s'entendent sur un langage commun capable de compiler sur les deux plates formes. il y aurait des librairies communes, et d'autres dédiées aux spécificités des OS/environnements.
    vous avez regardé scala ? (ou alors quelqu'un peut envisager de faire un compilo F# for java)

  16. #36
    Membre à l'essai
    Inscrit en
    Mars 2009
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 8
    Points : 11
    Points
    11
    Par défaut
    Citation Envoyé par gorgonite Voir le message
    ça s'appelle UML... un sous-ensemble de tous les langages objets qui permet de regénérer la structure complète d'un projet dans n'importe quel langage supporté par donc outil. et en théorie la Conception orienté-objet ne s'arrêtant pas aux langages orientés-objets, on pourrait même envisager de genre de bascule pour générer du C, du fonctionnel (avec record à la Caml),etc
    après on peut aussi trouver que le résultat sera TRES lourd


    enfin quid de la rétro-ingénierie (code source -> UML, voir bytecode/binaire -> UML)
    Quelques remarques,
    -A ma connaissance on ne peut pas générer tout un projet à partir d'UML. Seulement générer la structure globale des classes et pas les algorithmes qui devraient être définis dans un langage générique. Sinon je pense que ça serait plus largement utilisé. Si tu as un exemple d'un code 100% obtenu à partir d'UML je prends mais j'y crois pas trop.
    -Au niveau de la rétro ingénierie c'est possible mais pose des soucis de droit d'auteur.
    -Ca serait très lourd certainement mais le but est globalement de permettre de faciliter la réécriture et dans certains cas de pouvoir l'utiliser tel quel. Egalement de faciliter la maintenance en ne la faisant que dans 1 seul langage.
    - Autre solution que les langages modernes utilisant un langage intermédiaire se mettent d'accord sur le langage intermédiaire (ce qui permettrait d'optimiser ce langage et que tout le monde en profite) et que tous les nouveaux langages se basent dessus mais là je pense qu'on rêve

    eb

  17. #37
    Membre régulier Avatar de maitredede
    Homme Profil pro
    Pisseur de code
    Inscrit en
    Mai 2006
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Pisseur de code

    Informations forums :
    Inscription : Mai 2006
    Messages : 59
    Points : 106
    Points
    106
    Par défaut
    Citation Envoyé par el-belgounetos Voir le message
    - Autre solution que les langages modernes utilisant un langage intermédiaire se mettent d'accord sur le langage intermédiaire (ce qui permettrait d'optimiser ce langage et que tout le monde en profite) et que tous les nouveaux langages se basent dessus mais là je pense qu'on rêve
    Bien sûr, mais petit à petit, on y viens. Il n'y a qu'a regarder les langages qui fonctionnent sur la couche DLR : IronPython, IronRuby, JScript.NET...
    Je pense que faire un IronJava serait pas mal... Ca permettrai de compiler du code source java en CIL, plutôt que du bytecode...

    Mais bon, moi j'aimerai bien intégrer des points d'entré javascript dans mes applications, mais aujourd'hui, c'est soit j'utilise une dll native, soit j'appelle des classes obsolètes, soit je crée un javascript sur DLR, soit j'utilise Rhino+IKVM...

    Verdicte ?

  18. #38
    Membre habitué Avatar de jkakim
    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    94
    Détails du profil
    Informations personnelles :
    Localisation : Congo-Kinshasa

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 94
    Points : 148
    Points
    148
    Par défaut IKVM, ça avance quand même
    Citation Envoyé par smyley Voir le message
    Sauf que avec la licence de Java on pourrai normalement créer une JVM en .NET qui respecterait l'implémentation de Java selon Sun (et c'est un peux le cas de IKVM vu qu'il permet d'exécuter du bytecode java au dessus du CLR).

    Mais d'après ce que j'ai pu en voir son utilisation reste encore étrange, l'histoire d'utiliser à la fois la JVM et le CLR étant quand même hérétique ...
    Sérieux, CLR et JVM c'est quand l'eau et l'huile, comment pouvoir les utiliser ensemble ? Pouvez vous vous expliquer en clair ?

    Mais l'idée est sympa car s'il faut utiliser des classes Java directement en .NET gràce à IKVM, c'est cool. Mais franchement il serais, n'est ce pas mieux, si ces classes jugées manquantes sont rajoutées dans le Framework ?

    Là, je me dis c'est juste de la politique Microsoft, pourvoir faire croire que on peut tous faire en .NET même ce qu'on faire chez SUN... Ce n'est pas mal !
    Essor me dit : "Un clavier AZERTY booste le code mais ce n'est pour mettre des accents."

    http://code.code/

  19. #39
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    Citation Envoyé par jkakim Voir le message
    Là, je me dis c'est juste de la politique Microsoft, pourvoir faire croire que on peut tous faire en .NET même ce qu'on faire chez SUN... Ce n'est pas mal !
    Juste pour être sur je me permet de préciser que le projet IKVM n'a absolument rien à voir avec Microsoft ...

Discussions similaires

  1. Implémentation RK4 en Java pour de la 2D
    Par Vin789 dans le forum Physique
    Réponses: 1
    Dernier message: 07/06/2010, 20h55
  2. Les implémentations de Ruby et de Python pour .NET sont disponibles
    Par Gordon Fowler dans le forum Actualités
    Réponses: 1
    Dernier message: 15/04/2010, 18h34
  3. WebService Java pour appli .NET
    Par frechy dans le forum Services Web
    Réponses: 9
    Dernier message: 16/10/2007, 16h09
  4. Comment faire pour Implémenter java.lang.Runnable
    Par je®ome dans le forum API standards et tierces
    Réponses: 2
    Dernier message: 10/05/2006, 14h17

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