# Quel Langage de dev pour un logiciel multi plateforme?



## draz_zes (15 Février 2007)

Bonjour à tous ,

j'ai un petit projet de developpement ( un ptit logiciel applicatif ....) qui devrait etre multi plateforme.
Seulement je ne sais pas trop sous quel langage je peux le developper afin qu'il soit executable aussi bien sous mac que sous windows etc..

Mon domaine de developpement maitrisé :
-php ( y compris javascript html etc...)
-c/c++
-perl

Moyennes connaissances en :
-java et compagnie
-ajax

Contraintes :
-l'application doit être instalable en offline sur les postes des utilisateurs
 et / ou
-être accessible via le web

Coté interface, je n'ai aucune idée. 
Ceux qui ont déjà realisé ce genre de projet de developpement logiciel, leurs conseils me seront utiles et je vous remercie d'avance


----------



## Warflo (15 Février 2007)

Je ne m'y connais pas beaucoup, mais Java me semble une bonne solution.


----------



## GrandGibus (15 Février 2007)

Sans hésiter Java !

Car: 
il est multi-plateforme
déjà installé sous mac os x
fonctionne off-line
Java Webstart (qui ne nécessite qu'un simple serveur web) permet un déploiement simple et rapide sur tous les postes clients
dans ton rayon de compétences (même si ce n'est pas celui où tu es le plus à l'aise)
y'a une communauté sympa (dont ici sur ce forum) qui pourra t'aider en cas de coup dur

C'est pour cette raison que CCAM+ (c.f. signature pour le webstart) est entièrement écrit en Java.


----------



## OlivierL (15 Février 2007)

tu parles de Php et Ajax. Ton appli doit-elle être une appli web ou pas, ou peut importe ?
Si web-app, alors ca dépend de l'hébergeur, pas du client.
Sinon, Java


----------



## draz_zes (15 Février 2007)

OlivierL a dit:


> tu parles de Php et Ajax. Ton appli doit-elle être une appli web ou pas, ou peut importe ?
> Si web-app, alors ca dépend de l'hébergeur, pas du client.
> Sinon, Java



Je vous remercie pour vos conseils.

je m'en doute que c'est java ( là où je suis pa trop à l'aise à part faire des ptits message sur une interface bien laide mais bon je  vais my faire avec vos soutiens)

Mon appli sera deux versions :

- en offline donc rien a voir avec le web mais possibilité de mettre à jour la base de données du logiciel via le web ( donc forcement du java sera utile)

- une version identique à celle offline mais cette fois ci disponible sur le web ( via un serveur dedié où l'utilisateur aura le choix : d'importé ses preferences et données pendant une durée determinée , et utilisé le logiciel comme sil etait sous son poste non connecté à internet)
Et là, php et perl s'impose mais c'est à voir si les servlets et autres peuvent me servir pour rester dans la logique JAVA.

Si vous avez des liens sur le JAVA application sous Mac ( pour commencer n'hesitez pas ) je suis preneur.

Merci encore pr les conseils.


----------



## tatouille (16 Février 2007)

les exemples livr&#233;s avec les devtools et les samples codes sur le site de dev d'apple

java server page c'est lourd &#224; g&#233;rer

pour rester ds une logique objet et applicative (/java like)
je te conseille rubyonrails pour ton app client/server


----------



## GrandGibus (16 Février 2007)

tatouille a dit:


> java server page c'est lourd à gérer



+1 


mais GWT a l'air pas trop mal... reste que cela pose quand même le souci du conteneur J2EE qui ne court pas les rues chez les hébergeurs...

Je ne comprends pas bien l'histoire des deux applis strictement identiques en stand-alone et en web... C'est quoi qui doit être identique ? Quels sont les avantages de passer par du oueb ? Qu'est-ce qui est partagé entre les utilisateurs (en mode oueb) ?


----------



## Anonyme (22 Février 2007)

Tu peux programmer en C++, il existe une multitude de librairie _cross-plateform_ qui existent.

Personnellement pour un projet en programmation j'utilise le GUI Toolkit Qt pour l'interface graphique, ACE Framework pour une partie r&#233;seau et la librairie Xerces-C++ pour la partie XML.

Donc si tu n'as pas envie de te mettre &#224; java, tu peux toujours programmer en C++.

PS : je n'ai pas envie de te d&#233;courager d'utiliser java surtout que pour certaines de ces librairies, la documentation fait parfois d&#233;faut ou est peu accessible.


----------



## Céroce (23 Février 2007)

biniou a dit:


> Tu peux programmer en C++, il existe une multitude de librairie _cross-plateform_ qui existent.



C++ ne répond pas à son besoin initial d'être accessible par le web (même si ce n'est pas très clair).
draz_zes pourrais-tu nous éclairer sur ce point, pourquoi avoir une appli autonome et une appli web? Une appli web ne suffit pas?


----------



## draz_zes (26 Février 2007)

Céroce a dit:


> C++ ne répond pas à son besoin initial d'être accessible par le web (même si ce n'est pas très clair).
> draz_zes pourrais-tu nous éclairer sur ce point, pourquoi avoir une appli autonome et une appli web? Une appli web ne suffit pas?




Merci à tous pour vos reponses et conseils.

ça doit etre une appli autonome pour les gens qui n'ont pas l'acces au web ( logiciel sera utilisé par exemple au Mali, Guinée où les debits de connexion sont d'autre natures).
Pour ne pas marginaliser  d'autres users où le web est essentiel, alors j'ai prevu de faire la même chose. Et une liaison en temps reel avec la base de données du logiciel ( pour ce qui viennent mettre à jour les données de leur compte client)

Je suis entrain d'apprendre le java avec ses outils d'interface.
En gros je veux eviter d'avoir des soucis de passage sur differentes plateformes.

Merci encore pour les conseils.

je vous tiens au courant pour la suite.


----------



## ntx (26 Février 2007)

draz_zes a dit:


> ça doit etre une appli autonome pour les gens qui n'ont pas l'acces au web ( logiciel sera utilisé par exemple au Mali, Guinée où les debits de connexion sont d'autre natures).
> Pour ne pas marginaliser  d'autres users où le web est essentiel, alors j'ai prevu de faire la même chose. Et une liaison en temps reel avec la base de données du logiciel ( pour ce qui viennent mettre à jour les données de leur compte client)


Si tu ne veux pas devoir refaire deux fois ton interface, pourquoi pas une application en php ? Il suffit de n'activer les liens vers la BDD externe que si tu es connecté au web, et sinon tu fonctionnes avec une BDD en local. Pour cela un simple "if" dans le fichier de config de ton appli suffit.


----------



## p4bl0 (26 Février 2007)

ntx a dit:


> Si tu ne veux pas devoir refaire deux fois ton interface, pourquoi pas une application en php ? Il suffit de n'activer les liens vers la BDD externe que si tu es connecté au web, et sinon tu fonctionnes avec une BDD en local. Pour cela un simple "if" dans le fichier de config de ton appli suffit.


de m&#234;me pour RoR


----------



## draz_zes (26 Février 2007)

p4bl0 a dit:


> de même pour RoR



j'ai retenu les deux posibilités 
-php avec postgresql
-java et outils IHM

le seul hic pour le php est que l'appli doit reconnaitre les ports series (USB ou RS232) car il sera automatiquement piloté par un outil façon domotique etc... ce qui me revient vers java ( et c++) mais pour l'instant je me fais une cure en  java pendant quelques semaines et voir si c faisable

il faut savoir que l'appli n'est pas uniquement une interface  web avec des données etc.. mais pilotable via les connectiques de ordi server des données de l'appli.

En tout cas merci pour vos bonnes idées.


----------



## ntx (26 Février 2007)

draz_zes a dit:


> le seul hic pour le php est que l'appli doit reconnaitre les ports series (USB ou RS232) car il sera automatiquement piloté par un outil façon domotique etc... ce qui me revient vers java ( et c++) mais pour l'instant je me fais une cure en  java pendant quelques semaines et voir si c faisable


Regarde du côté de CGI.


----------



## tatouille (28 Février 2007)

draz_zes a dit:


> j'ai retenu les deux posibilités
> -php avec postgresql
> -java et outils IHM
> 
> ...



je pense qu'il te faut un core Library en C 
http://libusb.sourceforge.net/
http://www.koders.com/java/fid302CE76E332D77E2131415EBB72297AF1512E747.aspx

et a toi de créer des interfaces pour java JNI et PHP mod => python/ruby  beaucoup plus souple
et rapide pour implementer un mod_c

http://www.onlamp.com/pub/a/onlamp/2004/11/18/extending_ruby.html
http://docs.python.org/api/api.html


----------



## Niamorh (8 Mars 2007)

Tu devrais aussi envisager Qt selon ce que tu veux faire. C'est très simple à apprendre, la doc est vraiment bien faite, avec exemples et petits tutos. La communauté est assez active.
Ca compile sous mac linux et windows.
C'est opensource. Si tu envisage de vendre ton appli, faudra payer une licence par contre.


----------

