Je lis que contrairement au C, Java ne permet pas l'utilisation de
pointeurs que ce soit en sortie de fonctions ou en pour se déplacer
dans un tableau.
Cependant je lis aussi qu'on peut avec des méthodes dites "natives"
linker avec des librairies de C.
Que se passe-t-il donc quand ces librairies font ce genre de
manipulation ?
Si la réponse est qu'on ne peut pas, alors j'abandonne tout de suite (9
ans de développement, je ne vais pas refaire ça..).
Je lis que contrairement au C, Java ne permet pas l'utilisation de
pointeurs que ce soit en sortie de fonctions ou en pour se déplacer
dans un tableau.
Cependant je lis aussi qu'on peut avec des méthodes dites "natives"
linker avec des librairies de C.
Que se passe-t-il donc quand ces librairies font ce genre de
manipulation ?
Si la réponse est qu'on ne peut pas, alors j'abandonne tout de suite (9
ans de développement, je ne vais pas refaire ça..).
Je lis que contrairement au C, Java ne permet pas l'utilisation de
pointeurs que ce soit en sortie de fonctions ou en pour se déplacer
dans un tableau.
Cependant je lis aussi qu'on peut avec des méthodes dites "natives"
linker avec des librairies de C.
Que se passe-t-il donc quand ces librairies font ce genre de
manipulation ?
Si la réponse est qu'on ne peut pas, alors j'abandonne tout de suite (9
ans de développement, je ne vais pas refaire ça..).
Jano wrote:Je lis que contrairement au C, Java ne permet pas l'utilisation
de pointeurs que ce soit en sortie de fonctions ou en pour se
déplacer dans un tableau.
Cependant je lis aussi qu'on peut avec des méthodes dites
"natives" linker avec des librairies de C.
Que se passe-t-il donc quand ces librairies font ce genre de
manipulation ?
Si la réponse est qu'on ne peut pas, alors j'abandonne tout de
suite (9 ans de développement, je ne vais pas refaire ça..).
Si tu cree un emballage Java autour d'une librairie C, les
specificites de C sont masquees. Depuis Java tu vois juste une API
Java comme une autre.
Jano wrote:
Je lis que contrairement au C, Java ne permet pas l'utilisation
de pointeurs que ce soit en sortie de fonctions ou en pour se
déplacer dans un tableau.
Cependant je lis aussi qu'on peut avec des méthodes dites
"natives" linker avec des librairies de C.
Que se passe-t-il donc quand ces librairies font ce genre de
manipulation ?
Si la réponse est qu'on ne peut pas, alors j'abandonne tout de
suite (9 ans de développement, je ne vais pas refaire ça..).
Si tu cree un emballage Java autour d'une librairie C, les
specificites de C sont masquees. Depuis Java tu vois juste une API
Java comme une autre.
Jano wrote:Je lis que contrairement au C, Java ne permet pas l'utilisation
de pointeurs que ce soit en sortie de fonctions ou en pour se
déplacer dans un tableau.
Cependant je lis aussi qu'on peut avec des méthodes dites
"natives" linker avec des librairies de C.
Que se passe-t-il donc quand ces librairies font ce genre de
manipulation ?
Si la réponse est qu'on ne peut pas, alors j'abandonne tout de
suite (9 ans de développement, je ne vais pas refaire ça..).
Si tu cree un emballage Java autour d'une librairie C, les
specificites de C sont masquees. Depuis Java tu vois juste une API
Java comme une autre.
Bonjour
Voilà.. J'aimerais porter un TRES gros projet opérationnel et critique
(+700 000 lignes de code : C / Unix/Linux / XWindows/Motif) sous
Windows.
Je me pose beaucoup de questions sur les outils les mieux adaptés et
les plus faciles, et en même temps les plus prometteurs d'une longue
vie.
En particulier, dans ce projet, qui est développé "en couches", j'ai un
certain nombre (représentant 80% du code) de librairies en C (static
.a).
D'où ma question :
Je lis que contrairement au C, Java ne permet pas l'utilisation de
pointeurs que ce soit en sortie de fonctions ou en pour se déplacer
dans un tableau.
Cependant je lis aussi qu'on peut avec des méthodes dites "natives"
linker avec des librairies de C.
Que se passe-t-il donc quand ces librairies font ce genre de
manipulation ?
Si la réponse est qu'on ne peut pas, alors j'abandonne tout de suite (9
ans de développement, je ne vais pas refaire ça..).
Et enfin quesion subsidiaire si la réponse à la question ci-dessus est
qu'on peut : une de ces librairies gère la communication avec des
serveurs via les sockets (code HTTP original). Peut-elle s'intégrer ou
vaut-il mieux la réécrire ?
Merci d'avance
Bonsoir,
Bonjour
Voilà.. J'aimerais porter un TRES gros projet opérationnel et critique
(+700 000 lignes de code : C / Unix/Linux / XWindows/Motif) sous
Windows.
Je me pose beaucoup de questions sur les outils les mieux adaptés et
les plus faciles, et en même temps les plus prometteurs d'une longue
vie.
En particulier, dans ce projet, qui est développé "en couches", j'ai un
certain nombre (représentant 80% du code) de librairies en C (static
.a).
D'où ma question :
Je lis que contrairement au C, Java ne permet pas l'utilisation de
pointeurs que ce soit en sortie de fonctions ou en pour se déplacer
dans un tableau.
Cependant je lis aussi qu'on peut avec des méthodes dites "natives"
linker avec des librairies de C.
Que se passe-t-il donc quand ces librairies font ce genre de
manipulation ?
Si la réponse est qu'on ne peut pas, alors j'abandonne tout de suite (9
ans de développement, je ne vais pas refaire ça..).
Et enfin quesion subsidiaire si la réponse à la question ci-dessus est
qu'on peut : une de ces librairies gère la communication avec des
serveurs via les sockets (code HTTP original). Peut-elle s'intégrer ou
vaut-il mieux la réécrire ?
Merci d'avance
Bonsoir,
Bonjour
Voilà.. J'aimerais porter un TRES gros projet opérationnel et critique
(+700 000 lignes de code : C / Unix/Linux / XWindows/Motif) sous
Windows.
Je me pose beaucoup de questions sur les outils les mieux adaptés et
les plus faciles, et en même temps les plus prometteurs d'une longue
vie.
En particulier, dans ce projet, qui est développé "en couches", j'ai un
certain nombre (représentant 80% du code) de librairies en C (static
.a).
D'où ma question :
Je lis que contrairement au C, Java ne permet pas l'utilisation de
pointeurs que ce soit en sortie de fonctions ou en pour se déplacer
dans un tableau.
Cependant je lis aussi qu'on peut avec des méthodes dites "natives"
linker avec des librairies de C.
Que se passe-t-il donc quand ces librairies font ce genre de
manipulation ?
Si la réponse est qu'on ne peut pas, alors j'abandonne tout de suite (9
ans de développement, je ne vais pas refaire ça..).
Et enfin quesion subsidiaire si la réponse à la question ci-dessus est
qu'on peut : une de ces librairies gère la communication avec des
serveurs via les sockets (code HTTP original). Peut-elle s'intégrer ou
vaut-il mieux la réécrire ?
Merci d'avance
Bonsoir,
Mais par contre faut-il que les librairies C soient DLL, ou bien elles
peuvent rester statiques et avoir un DLL qui fait l'emballage ?
Mais par contre faut-il que les librairies C soient DLL, ou bien elles
peuvent rester statiques et avoir un DLL qui fait l'emballage ?
Mais par contre faut-il que les librairies C soient DLL, ou bien elles
peuvent rester statiques et avoir un DLL qui fait l'emballage ?
snip.
Mais attends un peu, d'apres ta question je deduit que tu ne disposes
pas des sources de ces libs, mais que tu dispose seulement des .a
compiles pour une plateforme Unix. Si c'est la cas tu as un gros
probleme non ? Comment comptes-tu executer du code natif Unix sur un
Windows ?
snip.
Mais attends un peu, d'apres ta question je deduit que tu ne disposes
pas des sources de ces libs, mais que tu dispose seulement des .a
compiles pour une plateforme Unix. Si c'est la cas tu as un gros
probleme non ? Comment comptes-tu executer du code natif Unix sur un
Windows ?
snip.
Mais attends un peu, d'apres ta question je deduit que tu ne disposes
pas des sources de ces libs, mais que tu dispose seulement des .a
compiles pour une plateforme Unix. Si c'est la cas tu as un gros
probleme non ? Comment comptes-tu executer du code natif Unix sur un
Windows ?
snip.
Bonsoir,
Ls questions à poser me semblent plutôt être "est-il interessant de
migrer mon application sous Java ? Et si oui, comment ?"
Mais pour y répondre il te faudra nous en dire plus sur ses
fonctionalités et ses spécificités ... structure, fonctionalités,
performances, utilisation ... bref, un panorama !
(sans bien sûr trahir de "secrets d'états"... alors au besoin
utilisez des analogies)
A+
TM
snip.
Bonsoir,
Ls questions à poser me semblent plutôt être "est-il interessant de
migrer mon application sous Java ? Et si oui, comment ?"
Mais pour y répondre il te faudra nous en dire plus sur ses
fonctionalités et ses spécificités ... structure, fonctionalités,
performances, utilisation ... bref, un panorama !
(sans bien sûr trahir de "secrets d'états"... alors au besoin
utilisez des analogies)
A+
TM
snip.
Bonsoir,
Ls questions à poser me semblent plutôt être "est-il interessant de
migrer mon application sous Java ? Et si oui, comment ?"
Mais pour y répondre il te faudra nous en dire plus sur ses
fonctionalités et ses spécificités ... structure, fonctionalités,
performances, utilisation ... bref, un panorama !
(sans bien sûr trahir de "secrets d'états"... alors au besoin
utilisez des analogies)
A+
TM
Mon point est principalement que les DLL mettent du temps à charger,
que je préférerais livrer quelque chose d'assez optimisé dans le temps..
Voir précisions dans la réponse au message suivant...
Mon point est principalement que les DLL mettent du temps à charger,
que je préférerais livrer quelque chose d'assez optimisé dans le temps..
Voir précisions dans la réponse au message suivant...
Mon point est principalement que les DLL mettent du temps à charger,
que je préférerais livrer quelque chose d'assez optimisé dans le temps..
Voir précisions dans la réponse au message suivant...
D'où ma question :
Je lis que contrairement au C, Java ne permet pas l'utilisation de
pointeurs que ce soit en sortie de fonctions ou en pour se déplacer
dans un tableau.
Cependant je lis aussi qu'on peut avec des méthodes dites "natives"
linker avec des librairies de C.
...
D'où ma question :
Je lis que contrairement au C, Java ne permet pas l'utilisation de
pointeurs que ce soit en sortie de fonctions ou en pour se déplacer
dans un tableau.
Cependant je lis aussi qu'on peut avec des méthodes dites "natives"
linker avec des librairies de C.
...
D'où ma question :
Je lis que contrairement au C, Java ne permet pas l'utilisation de
pointeurs que ce soit en sortie de fonctions ou en pour se déplacer
dans un tableau.
Cependant je lis aussi qu'on peut avec des méthodes dites "natives"
linker avec des librairies de C.
...
Donc normalement toute la partie en dehors du GUI (80% du code), est
portable sur n'importe quelle plateforme, pourvu d'avoir un compilateur
C.
Mon problème réside pour le portage à Windows :
1) les compilateurs que je voit lors de mon survol actuel ne
semblent pas complets (pas tous les ".h", pas toutes les fonctionalités
(timers, signals, sockets)), ou alors il faut changer le code.
2) Même si je résous ça, il me reste le problème du GUI. Là plusieurs
choix s'offrent :
- utiliser Java
- utiliser un langage comme VC++, ou autre..
J'en suis à cette phase où j'essaye de déterminer quel serait le
meilleur outil, permettant :
a) de minimiser le travail à accomplir
b) de minimiser les transformations en dehors du GUI (l'application
doit continuer de fonctionner et d'être maintenue sur Unix/Linux)
Donc normalement toute la partie en dehors du GUI (80% du code), est
portable sur n'importe quelle plateforme, pourvu d'avoir un compilateur
C.
Mon problème réside pour le portage à Windows :
1) les compilateurs que je voit lors de mon survol actuel ne
semblent pas complets (pas tous les ".h", pas toutes les fonctionalités
(timers, signals, sockets)), ou alors il faut changer le code.
2) Même si je résous ça, il me reste le problème du GUI. Là plusieurs
choix s'offrent :
- utiliser Java
- utiliser un langage comme VC++, ou autre..
J'en suis à cette phase où j'essaye de déterminer quel serait le
meilleur outil, permettant :
a) de minimiser le travail à accomplir
b) de minimiser les transformations en dehors du GUI (l'application
doit continuer de fonctionner et d'être maintenue sur Unix/Linux)
Donc normalement toute la partie en dehors du GUI (80% du code), est
portable sur n'importe quelle plateforme, pourvu d'avoir un compilateur
C.
Mon problème réside pour le portage à Windows :
1) les compilateurs que je voit lors de mon survol actuel ne
semblent pas complets (pas tous les ".h", pas toutes les fonctionalités
(timers, signals, sockets)), ou alors il faut changer le code.
2) Même si je résous ça, il me reste le problème du GUI. Là plusieurs
choix s'offrent :
- utiliser Java
- utiliser un langage comme VC++, ou autre..
J'en suis à cette phase où j'essaye de déterminer quel serait le
meilleur outil, permettant :
a) de minimiser le travail à accomplir
b) de minimiser les transformations en dehors du GUI (l'application
doit continuer de fonctionner et d'être maintenue sur Unix/Linux)
Jano wrote on 27/01/2007 15:08:
Mon point est principalement que les DLL mettent du temps à charger,
à 9600 bps depuis les antipodes ? surement, en local c'est au moins
aussi long qu'une classe pure Java, soit imperceptible.
a) si le temps est surtout mangé par le traitement, vous aurez
avantage à en effet garder un moteur C++ et à définir une interface
de communication optimale (simplifiant les échanges des données entre
C/C++ et Java -- JNI permets de (quasi) tout échanger mais au prix de
nombreuses lignes de code).
le GUI Java interrogera les structures C++ ou le code C++ trigerra
des méthodes Java destinés à rafraichir la représentation.
notez que vous pouvez également faire communiquer ces 2 parties
(moteur faceless C++ et GUI Java via un socket idoine, vous vous
épargnerez alors les classes Java avec natives et le wrapper JNI au
prix d'un format d'échanges de trames.
b) si par contre la gestion même du GUI est le goulot d'étranglement,
Java peut (selon API d'abstraction, CPU, ...) ne pas offrir les
performances voulues, votre appli actuelle utilise surement un server
X-window, cette option bien que très peu répandue existe sous
windows, un portage C++ de votre code sous windows est donc surement
également possible (même si c'est certain le premier compilo venu -
VS Express de MS ? - pourrait donner l'impression contraire),
demander conseil sur fr.comp.lang.c++ si besoin.
Jano wrote on 27/01/2007 15:08:
Mon point est principalement que les DLL mettent du temps à charger,
à 9600 bps depuis les antipodes ? surement, en local c'est au moins
aussi long qu'une classe pure Java, soit imperceptible.
a) si le temps est surtout mangé par le traitement, vous aurez
avantage à en effet garder un moteur C++ et à définir une interface
de communication optimale (simplifiant les échanges des données entre
C/C++ et Java -- JNI permets de (quasi) tout échanger mais au prix de
nombreuses lignes de code).
le GUI Java interrogera les structures C++ ou le code C++ trigerra
des méthodes Java destinés à rafraichir la représentation.
notez que vous pouvez également faire communiquer ces 2 parties
(moteur faceless C++ et GUI Java via un socket idoine, vous vous
épargnerez alors les classes Java avec natives et le wrapper JNI au
prix d'un format d'échanges de trames.
b) si par contre la gestion même du GUI est le goulot d'étranglement,
Java peut (selon API d'abstraction, CPU, ...) ne pas offrir les
performances voulues, votre appli actuelle utilise surement un server
X-window, cette option bien que très peu répandue existe sous
windows, un portage C++ de votre code sous windows est donc surement
également possible (même si c'est certain le premier compilo venu -
VS Express de MS ? - pourrait donner l'impression contraire),
demander conseil sur fr.comp.lang.c++ si besoin.
Jano wrote on 27/01/2007 15:08:
Mon point est principalement que les DLL mettent du temps à charger,
à 9600 bps depuis les antipodes ? surement, en local c'est au moins
aussi long qu'une classe pure Java, soit imperceptible.
a) si le temps est surtout mangé par le traitement, vous aurez
avantage à en effet garder un moteur C++ et à définir une interface
de communication optimale (simplifiant les échanges des données entre
C/C++ et Java -- JNI permets de (quasi) tout échanger mais au prix de
nombreuses lignes de code).
le GUI Java interrogera les structures C++ ou le code C++ trigerra
des méthodes Java destinés à rafraichir la représentation.
notez que vous pouvez également faire communiquer ces 2 parties
(moteur faceless C++ et GUI Java via un socket idoine, vous vous
épargnerez alors les classes Java avec natives et le wrapper JNI au
prix d'un format d'échanges de trames.
b) si par contre la gestion même du GUI est le goulot d'étranglement,
Java peut (selon API d'abstraction, CPU, ...) ne pas offrir les
performances voulues, votre appli actuelle utilise surement un server
X-window, cette option bien que très peu répandue existe sous
windows, un portage C++ de votre code sous windows est donc surement
également possible (même si c'est certain le premier compilo venu -
VS Express de MS ? - pourrait donner l'impression contraire),
demander conseil sur fr.comp.lang.c++ si besoin.