Bonjour mes chers amis LinuxFRiens!
Aujourd'hui, il m'est arrivé quelque chose de fort. En tant qu'étudiant de deuxième année au département informatique de mon IUT, un projet de synthèse un peu particulier a été proposé à l'ensemble de ma promotion.
Ce projet, proposé par un professeur du département de génie mécanique du même IUT, consisterait en une sorte de modélisateur d'efforts sur véhicules qui permettrait de faire du "tweaking" de voitures pour ceux qui s'y connaissent assez.
Au final 10 étudiants, dont moi-même, sont intéressés pour la mise en oeuvre de ce projet en tant que projet de synthèse. Ceci étant, une réunion dite "technique" doit avoir lieu mardi prochain en début d'après-midi pour décider des technologies (notamment au niveau de l'interface du logiciel) qui seront utilisées lors de la réalisation.
Sont donc en compétition
- .NET
- Java
- Qt
Outre le fait de l'aspect propriétaire des deux première plateformes, j'aurais besoin d'arguments en faveur de Qt. Pourquoi lui et pas un autre? Sachant que presque aucun membre de l'équipe ne connaît d'API graphiques, qu'elles soient spécifiques à n'importe laquelle des plateformes suscitées.
En plus de cela, je manque aussi cruellement d'arguments sur la question pour / contre les générateurs de codes. A savoir le fait de faire ses interfaces à l'aide d'un outil graphique et lui laisser générer du code pour que ça marche bien (TM). J'avoue que sur ce dernier point, je n'ai pas d'opinion tranchée, bien que je pense intimement que le mieux est quand même de tout faire à la main, histoire au moins d'avoir un code plus propre. De toute façon, pour ce genre de programmation, il faut connaître l'API utilisée quoi qu'il arrive, non?
La portabilité n'est pas un objectif majeur mais serait un plus.
A titre indicatif, pour un rendu 3d inclus dans l'application, il y a des chances que OpenGL soit utilisé. Ceci dit, si vous avez aussi des arguments en faveur de cette solution plutôt qu'une autre (ou l'inverse), je suis tout autant intéressé!
Merci de votre aide!
# sinon
Posté par TImaniac (site web personnel) . Évalué à 5.
Au final tout le monde était content, on avait une interface pour Windows, et une pour Linux.
Le projet en question :
http://projet.ifsic.univ-rennes1.fr/projects/synthlab5/(...)
Dans le rapport il y a des screenshots de l'application sous Linux et Windows et les explications qui vont bien :
http://projet.ifsic.univ-rennes1.fr/docman/view.php/32/240/doc.pdf(...)
Au final le programme fait un switch au démarrage sur l'OS cible pour lancer un toolkit par défaut.
On peut aussi forcer gtk sous Windows :
mono synthlab.exe -gtk
ou pour l'interface .NET/WinForms :
synthlab.exe
[^] # Re: sinon
Posté par Guillaume Ceccarelli . Évalué à 1.
Ce concept m'à l'air tout à fait intéressant. Ceci dit, vu le temps qui va nous être imparti, une et une seule interface pourra être codée dans le cadre du projet de synthèse.
Bien, sur, ça ne nous empêchera pas d'utiliser ton modèle si l'application est maintenue par la suite! ;)
[^] # Re: sinon
Posté par TImaniac (site web personnel) . Évalué à 2.
[^] # Re: sinon
Posté par Anonyme . Évalué à 1.
Franchement, un amateur de libre aura toutes les raisons de favoriser Qt.
D'autant que ce n'est pas très clair dans ce que tu dis, mais dans l'exemple que tu donnes plus haut, on dirait qu'il est question d'utiliser Mono. Or Mono, c'est loin d'être considéré comme très fiable, pour le moment, si je ne m'abuse.
Donc en gros, on a une interface qui dépend de Mono torchée en une soirée à coté d'une interface bien préparée qui fonctionne sur WinForms/.Net ?
Je me répête, franchement, un amateur de libre aura toutes les raisons de favoriser Qt.
[^] # Re: sinon
Posté par TImaniac (site web personnel) . Évalué à 8.
Pas du tout.
Nous avons fait un soft qui s'intègre dans l'environnement qui était à notre disposition pour développer/utiliser notre application.
Qt utilise des bibliothèques de Windows de la même manière lorsqu'elle tourne sous Windows. En tant que fervant défenseur des logiciels libre j'avais comme objectif de montrer l'intérêt de l'approche, et j'ai pensé depuis le début à concevoir l'application de manière à coder l'interface en GTK, ce qui s'est révélé être une formalité, validant les choix de conception.
C'est pas du tout du "feeling" et fait à l'arrache comme tu dis. C'est encore la meilleure méthode que j'ai trouvé pour proposer une intégration suffisante dans des environnements très différents comme Windows et Gnome.
Or Mono, c'est loin d'être considéré comme très fiable, pour le moment, si je ne m'abuse.
C'est tellement pas fiable que c'est supporté commercialement :
http://www.mono-project.com/Kickstart(...)
Et ca commence à être utilisé par un certain nombre d'entreprises :
http://www.mono-project.com/Software#Commercial_Applications(...)
Et puis le fait est que pour notre application cheznouscamarche (TM).
Donc en gros, on a une interface qui dépend de Mono torchée en une soirée à coté d'une interface bien préparée qui fonctionne sur WinForms/.Net ?
Il n'y a aucune dépendance envers Mono, la seule dépendance est envers WinForms ou GTK#, ce dernier tourne sous Windows sans Mono si ca t'amuse. Voir aucune dépendance, il est facile d'utiliser la partie métier sans aucune interface graphique.
Je me répête, franchement, un amateur de libre aura toutes les raisons de favoriser Qt.
Un amateur de libre a la première liberté d'utiliser la technologie qu'il souhaite, et je le repèterai jamais autant, ajouter une dépendance envers une bibliothèque graphique est un mauvais choix de conception. Qt n'est que partiellement intégré à Windows et ne présente donc pas une solution idéal pour ses utilisateurs. Il est donc vital de pouvoir facilement utiliser un autre toolkit si les besoins des utilisateurs s'en fait sentir.
Pour moi enfermer une application en utilisant Qt à tous les niveaux (des threads à l'IHM), c'est "fermer" un logiciel à un certain nombre d'utilisateur et de développeurs.
[^] # Re: sinon
Posté par golum . Évalué à 6.
Franchement, un amateur de libre aura toutes les raisons de favoriser Qt.
http://sourceforge.net/softwaremap/trove_list.php?form_cat=160(...)
Combien de projet Qt dans la catégorie C++ ?
Arrêtez un peu avec vos trolls sur Java/Mono "sapussépalibre".
Là, on essaie de se concentrer sur les mérites techniques (portabilité, réutilisabilité, ....)
[^] # Re: sinon
Posté par un_brice (site web personnel) . Évalué à 3.
De toutes manières, quoi qu'en disent ces chiffrent je sais quelle proportion des différents langages se trouve sur mon système, et qu'il y a incomparablement plus de C++ que de Java (et pas de pointnet) .
[^] # Re: sinon
Posté par golum . Évalué à 1.
Le but était simplement de montrer que Java est bien représenté dans les projets libres et qu'il n'y a donc pas trop de souci à se faire, pas de lancer un nouveau troll.
Qt a longtemps été critiqué sur ce point avant le revirement de Trolltech.
Et ce genre de pb est AMHA un faux pb. A un moment donné on a toujours affaire à du proprio que ce soit au niveau de du soft du runtime, de l'OS, du hardware (driver, microcode, ... ).
Le jour où on trouvera des fondeurs de F-CPU et des périph libres on pourra dire que la chaîne est libre de bout en bout.
En attendant, il s'agit de problèmes qu'il faut gérer au cas par cas lorsqu'il y a de véritables dangers.
De même que tu trouves des LL sous Windows.
et qu'on ne parle pas de libérer Windows, il y a des projets libres en Java et des implémentation libres.
Pour java le projet Harmony (JVM Java) peut changer la donne.
Même si le projet est ambiteux, on est en droit d'esperer que Sun va libérer sa JVM sous la pression communautaire et c'est un peu la raison du projet et de la participation d'IBM .
Bref! Chacun a sa conception de la liberté.
[^] # Re: sinon
Posté par un_brice (site web personnel) . Évalué à 2.
D'ailleurs, "compter les projets" ça veut rien dire. Un projet au sens de sourceforge ça peut aussi bien être KDE que tar.
Le reste est un peu HS, mais je résiste pas à un beau troll.
Qt a toujours été Libre sous X11, c'est juste qu'il était pas compatible GPL.
Ça c'est du hardware. Y'a une différence fondamentale en ce qu'un logiciel est une information (liberté d'expression et partage de la connaissance) et un CPU: un matériel qui existe en dehors des idées qui le représentent.
C'est vrai. Beaucoup de gens ont des avis qui leurs sont propres sur un certain nombre de sujets.
Mais je ne vois pas le rapport.
[^] # Re: sinon
Posté par tanguy_k (site web personnel) . Évalué à 3.
As-tu de la documentation sur PAC et les modeles du genre ?
Ca m'interesse enormement !
Merci
[^] # Re: sinon
Posté par TImaniac (site web personnel) . Évalué à 3.
http://membres.lycos.fr/interaction/Architecture/Pac/pac1.html(...)
C'est un modèle, il faut penser à l'adapter à ses besoins, à ses outils, etc.
Perso je n'aime pas trop le principe consistant à toujours passer par la couche de contrôle, notamment lors de communications entre 2 présentations ou 2 abstractions, pour la simple et bonne raison que les abstractions constituent souvent le modèle métier, et fonctionne donc de manière autonomne, et que les objets de présentation on besoin de communiquer pour "s'emboiter" comme l'impose tous les toolkit graphiques.
Tu peux consulter le rapport de notre projet pour avoir un aperçu de mon "mod" de PAC, notamment adapté à la plateforme .NET et à l'indépendance vis-à-vis du toolkit graphique.
[^] # Re: sinon
Posté par Thomas Petazzoni (site web personnel) . Évalué à 2.
http://projet.ifsic.univ-rennes1.fr/docman/view.php/32/240/doc.pdf((...)
Sniff, je voulais regarder comment l'application était architecturée, mais les diagrammes UML dans le PDF sont de très mauvaise qualité. En tout cas, avec evince ou xpdf, ils sont illisibles.
[^] # Re: sinon
Posté par TImaniac (site web personnel) . Évalué à 2.
Je viens de metttre la version HTML en ligne, beaucoup plus friendly :
http://pascalfresnay.free.fr/projet/synthlab/(...)
[^] # Re: sinon
Posté par ondex . Évalué à 1.
Il semble que tu ai utilisé LaTeX pour ton rapport. Quelles classes/styles as tu utilisé pour obtenir cette mise en page du PDF ?
Je trouve ton rapport vraiment bien présenté (la numérotation, les titres en "sans serif", etc...)
Je suis en train de découvrir LaTeX. Pour le moment, j'utilise la classe "report" mais c'est pas top (exemple : la création d'un chapitre qui ajoute "Chapitre x")
Pourrais tu me donner l'entête (ou si possible la totalité) de ton fichier .tex pour que je jete un oeil ?
Merci.
[^] # Re: sinon
Posté par ondex . Évalué à 2.
Pour ma peine, je vais tourner 7 fois mon clavier dans la bouche... Ça va faire mal...
# Précisions
Posté par Guillaume Denry (site web personnel) . Évalué à 3.
https://linuxfr.org/~jberthon/19498.html(...)
# Attentions à la véracités de tes arguments
Posté par beleys (site web personnel) . Évalué à 4.
Pour l'aspect propriétaire : Oui java n'est pas libre, mais contrairement à ce que tu dis, JAVA n'est pas complétement fermé pour autant. Ils y a maintenant un consortium d'utilisateur de Java mis en place pour son évolution. Sun est à la tête de cet entité oui, mais tout les programmeurs Java peuvent demandé des ajouts de fonctionnalités (qui ne seront pas forcément refusé ...).
De plus, pour toute application propriétaire (ou a but commercial) Qt n'est plus libre mais soumis à licence.
Ensuite, en ce qui concerne la portabilité, et bien je ne pense pas que le couple C++/Qt soit beaucoup plus portable que Java.
De même qu'il existe maintenant le projet mono qui permet de faire des applications se basant sur c# sous Linux comme sous Windows.
Donc comme tu peux le voir, sur les deux arguments que tu cites, il est rapidement possible de te contredire En faisant peut être des raccouris, en omettant des fonctionnalités manquantes, mais bon, dans tous les cas, si tu te retrouves avec quelqu'un comme moi en face de toi, (avec une tendance légère à la déformation des faits) tu as intérets à avoir des arguments bétons .... Ne pratiquant pas Qt, j'aurais du mal à t'en donné mais je pencherais plus à la performance du C++, à l'intégration de l'Open/GL par le bias de Glut, par la disposition du documentation abondante et enfin par la mise en valeur des principales applications utilisant Qt.
Bon courage
[^] # Re: Attentions à la véracités de tes arguments
Posté par Guillaume Ceccarelli . Évalué à 2.
En fait, si je poste ce journal, c'est surtout pour ressortir avec des arguments béton (ou un changement d'avis éventuel si je me fais trop taper sur les doigts).
Ce que tu dis n'est pas faux et pour les arguments que tu cites en fin de commentaire, je tacherai d'en faire bon usage.
Au niveau de la portabilité, en utilisant Qt comme il se doit, on peut se retrouver avec du 0 lignes de code à modifier lors d'un changement de plateforme m'a-t-on dit. A condition bien sur de ne pas utiliser des fonctions spécifiques au système utilisé en parallèle. Mais pour un projet comme celui-ci, il n'y aurait aucune raison que ce soit le cas.
[^] # Arroseur arrosable !
Posté par Anonyme . Évalué à 3.
Ca ne veut rien dire. C'est comme si tu disais qu'un logiciel GPL n'est pas libre pour un logiciel propriétaire : évidemment !
Et lorsque tu dis « (ou a but commercial ) » tu te plantes de manière assez facheuse ! Depuis quand la GPL interdit des activités commerciales ! Tout les logiciels libres sont commercialisable, tous sont donc potentiellement commerciaux, à but commercial.
« Ensuite, en ce qui concerne la portabilité, et bien je ne pense pas que le couple C++/Qt soit beaucoup plus portable que Java.
De même qu'il existe maintenant le projet mono qui permet de faire des applications se basant sur c# sous Linux comme sous Windows. »
Il a dit plus haut que la portabilité n'était pas une priorité. Quand a Mono, il faudra d'abord qu'on trouve rien qu'une seule application élaborée et fiable, utilisée fréquemment qui fonctionne avec Mono pour qu'on puisse présenter cela comme une option.
Moi jusqu'ici, je n'ai vu que des "Hello World!" améliorés. Je n'ai pas creuser la question mais ça semble un peu prématuré.
« Donc comme tu peux le voir, sur les deux arguments que tu cites, il est rapidement possible de te contredire »
en racontant des trucs qui ne veulent pas dire grand chose, toutefois.
[^] # Re: Arroseur arrosable !
Posté par TImaniac (site web personnel) . Évalué à 2.
iFolder ? http://www.ifolder.com/(...) (ok ok c'est Novell)
GMovil ? http://www.aspl.es/gmovil/us/index.html(...) (Ok ok on l'utilise pas tous les jours, mais c'est quand même un test grandeur nature)
Virtuoso ? http://virtuoso.openlinksw.com/(...) (idem, c'est pas tous les jours, mais c'est une application "professsionnelle")
[^] # Re: Arroseur arrosable !
Posté par beleys (site web personnel) . Évalué à 1.
Je suis d'accord que l'on peut commercialiser un logiciel sous GPL or j'ai l'impression que eux, ils font une différence entre GPL non commercial et GPL tout court.
Ensuite, je n'ai pas dis que mes arguments à moi était bétons, mais ils n'y a pas besoin d'avoir des arguments forts pour mettre un doute à la mise en place de technologie non connue ....
[^] # Re: Arroseur arrosable !
Posté par serge_kara . Évalué à 4.
tu release sous gpl, t'utilise Qt GPL (donc gratuit), tu release pas sous GPL t'utilise Qt proprio (donc pas gratuit, sous reserve que ca soit compatible avec ta licence).
# :)
Posté par Marc (site web personnel) . Évalué à 5.
Ouai enfin parle pas trop vite quand même. Parfois, avoir un truc qui te crache du code de façon systématique pour certaine portion, ça simplifie la vie, mais tu évites d'écrire des boulette en le faisant à la main....
Pour Qt, y'a Qt Designer qui est très rapide à prendre en main et vraiment bien fait (il m'a fallu qqs heures pour faire une interface graphique, sans rien connaitre de Qt).
(et y'a pas GTK dans la liste ? :))
[^] # Re: :)
Posté par Guillaume Ceccarelli . Évalué à 2.
Et pour GTK, il ne figure pas dans la liste mais il pourrais. Ceci dit il est fait mention régulièrement de la documentation pas toujours exhaustive / simple à trouver. Ceci dit, n'ayant pas utilisé moi-même GTK, j'éviterai de me présenter sur un terrain glissant. En même temps, ça serait bête de se retrouver avec une doc incomplète sachant que tout le monde débarque sans connaissance aucune de l'API
[^] # Re: :)
Posté par harbort1 . Évalué à 5.
Si tu l'utilises, tu es censé dériver des classes générées pour implémenter ce qui manque. Ainsi tu peux très facilement revenir à l'outil de génération, sans risques d'interférences dans aucun sens ! Et puis t'as pas à te farcir du code généré, ce qui n'est pas toujours très pratique ...
Bref: le meilleur des deux mondes :)
# Langage
Posté par olosta . Évalué à 6.
Si vous maitrisez tous Java par contre...
[^] # Re: Langage
Posté par TImaniac (site web personnel) . Évalué à 4.
- C# connu ? Apprendre Java.
- Java connu ? Apprendre C#.
- C++ connu ? Moins évident d'apprendre Java ou C#
- Java ou C# ? Quasiment impossible de passer à C++ sans perdre de vue les autres objectifs du projet.
Point 2 et 4 testés sur des projets de quelques mois dans le cadre universitaire (pas à temps plein)
[^] # Re: Langage
Posté par Guillaume Ceccarelli . Évalué à 2.
Deux visions des choses peuvent donc s'offrir au niveau du choix du langage
- C++ parce qu'on connait mieux
- Java parce qu'on doit apprendre
Et là, je ne sais pas quel choix serait fait.
[^] # Re: Langage
Posté par harbort1 . Évalué à 1.
- Java connu ? Apprendre C#.
Franchement, argumente parce que là je vois pas l'intérêt ! Si tu veux apprendre un langage tu as tout intérêt à choisir un langage différent de ce que tu connais, et si tu ne connais pas le C++, ça me semble une bonne chose de l'apprendre. Certe le langage a des défauts (mais quel langage n'en a pas ?) et il est réputé difficile. Pourtant c'est un langage qui a l'avantage d'offrir plusieurs niveaux de programmation et tu n'es pas obligé de te frotter aux difficultés dès le début !
Et puis le plus gros pb du C++ c'est que très peu de gens savent vraiment l'utiliser ! Y a qu'à voir le nombre de bibliothèques "haut niveaux" qui proposent encore de travailler directement sur des pointeurs ...
[^] # Re: Langage
Posté par TImaniac (site web personnel) . Évalué à 2.
Ben si je l'ai dis : ajouter une ligne à ton CV.
si tu ne connais pas le C++, ça me semble une bonne chose de l'apprendre
Tout à fait d'accord, mais un projet court aux objectifs éducatifs nombreux n'est pour moi pas le bon contexte, faut de temps, à moins d'y consacré la totalité du projet, ce qui n'a absolument aucun intérêt pédagogique.
Pour ce qui est des difficultés, que tu le veuilles ou non tu vas les rencontrer, à commencer par la gestion de la mémoire, la notion de pointeur, de référence, l'utilisation de Qt apportant également son lot de difficultés pour le débutant en C++.
Et puis le plus gros pb du C++ c'est que très peu de gens savent vraiment l'utiliser !
Justement, son apprentissage ne s'improvise pas dans le cadre d'un projet àlavavite, mais s'étudie lors d'un cours et s'approfondit lors de TP encadré.
Comme l'a constaté un prof de fac en parlant des projets de fin d'année : "ca fait 10 ans qu'on faisait les TP en C++, il n'y avait quasiment aucun projet de fini, ca fait 2 ans qu'on les fait en Java et ils arrivent quasiment tous à terme."
# Commentaire supprimé
Posté par Anonyme . Évalué à 1.
Ce commentaire a été supprimé par l’équipe de modération.
[^] # Re: Manque d'arguments pour Qt... Help !
Posté par Guillaume Ceccarelli . Évalué à 1.
[^] # Re: Manque d'arguments pour Qt... Help !
Posté par Anonyme . Évalué à 1.
[^] # Re: Manque d'arguments pour Qt... Help !
Posté par woopla . Évalué à 2.
Parce que comme montré plus haut dans la discussion, des applis qui utilisent Mono y'en a de plus en plus, et le développement avance à grand pas. A tel point que certaines parties de C# 2.0 sont déjà implémentées dans Mono (v. 1.1.x ), alors que c'est pas encore chez Microsoft (à part en beta).
[^] # Re: Manque d'arguments pour Qt... Help !
Posté par TImaniac (site web personnel) . Évalué à 5.
Suffit de d'installer Mono sous Windows et de développer avec l'IDE SharpDevelop, qui propose l'intégration avec Mono.
En C++ je peux te pondre du code qui sera dépendant que de Windows ou que de Linux de la même façon :) (voir encore plus simplement)
[^] # Re: Manque d'arguments pour Qt... Help !
Posté par Yusei (Mastodon) . Évalué à 3.
Ça m'intrigue, cet acharnement (au sein de ce journal, ailleurs je ne sais pas) à descendre Mono alors que ton seul argument semble être "j'ai jamais rien vu de fini codé en Mono, mais je n'ai pas cherché".
Pour ma part je ne me suis pas penché sur la question, mais je suis déjà tombé sur quelques softs intéressants (Beagle, F-Spot, Monodevelop...) codés en C# avec Mono, et qui ont l'air de bien tourner. Comme soft compilé avec GCJ, je n'ai à ce jour rencontré qu'iRate (bon concept mais logiciel pas terrible). C'est tellement subjectif comme observation que je ne me risquerai pas à supposer que Mono est "plus avancé" que GCJ, mais je suis curieux de savoir pourquoi tu penses le contraire.
[^] # Re: Manque d'arguments pour Qt... Help !
Posté par TImaniac (site web personnel) . Évalué à 2.
Sinon ca sert à rien de faire la guguerre CLassPath/Mono, le 2ème proposant une passerelle entre les 2 : on peut utiliser les ClassPath depuis Mono, et utiliser les libs Mono depuis Java. Le plus rigolo c'est qu'on peut compiler du code en natif sans passer par gcj mais en utilisant IKVM puis mono qui fait la compilation en natif depuis un baille (les technos .NET étant conçu pour cette opération).
# euh
Posté par retrovertigo . Évalué à 0.
Sinon un bon un bon bouquin gratuit pour apprendre peut faire toute la différence. Ce bouquin est d'ailleurs disponible a cette adresse : C++ GUI Programming with Qt 3
[^] # Re: euh
Posté par retrovertigo . Évalué à 3.
[^] # Re: euh
Posté par Guillaume Ceccarelli . Évalué à 2.
[^] # Re: euh
Posté par retrovertigo . Évalué à 2.
[^] # Re: euh
Posté par golum . Évalué à 2.
Et perso, pour optimiser ou recoder le comportement d'une classe à cause d'un défaut de conception, quand python est à la ramasse, je préfère me mettre au Java qu'au C++, mais c'est un autre trolldébat
[^] # Re: euh
Posté par retrovertigo . Évalué à 2.
[^] # Re: euh
Posté par retrovertigo . Évalué à 2.
# gtk gtk
Posté par CTAF . Évalué à 1.
glade permet de faire des fichiers xml decrivant les fenetres, et il existe enormement de binding: c, c++, ruby, perl, c#
[^] # Re: gtk gtk
Posté par golum . Évalué à 5.
Pour le coup, je dirais que c'est un vrai argument pour Qt ou Mono, même si Java/SWT est assez bluffant.
Et sinon as tu pensé à wxWidgets ?
Perso, je n'apprecie guère pour pas mal de raison mais ses partisans ne manqueront pas d'argumenter.
[^] # Re: gtk gtk
Posté par Guillaume Ceccarelli . Évalué à 2.
Des partisans dans la salle ? :)
[^] # Re: gtk gtk
Posté par golum . Évalué à 2.
http://www.fox-toolkit.org/(...)
et tnFox (Fox avec api Qt)
http://www.nedprod.com/TnFOX/(...)
# Qt ou Java ou .NET ?
Posté par tanguy_k (site web personnel) . Évalué à 8.
Je me poserai plus des questions sur le projet lui-meme pour trouver l'outil adapte a la realisation de celui-ci
Le projet demande t'il une interface graphique complexe ?
Le projet demande t'il une couche metier complexe ?
Le projet doit-il etre multiplatformes (les contraintes du projet) ?
Le projet demande t'il beaucoup d'acces aux 'perifs' de la machine (audio, port USB ect...)
Le projet est-il principalement a but educatif ?
ect...
C++ est apparu en 1983, Java dans les annees 90 et depuis peu C#
Il est evident que l'on developpe plus vite avec un language comme C# que C++. D'apres ma propre experience, on developpe au moins 2 fois plus vite en Java qu'en C++ pour un meilleur resultat du point de vue qualitatif.
Qt est une tres tres bonne librairie graphique et on peut esperer developper une interface graphique bien plus vite avec qu'en Swing (Java) (en C# je sais pas) grace a Qt Designer notamment pour un meilleur resultat visuel. Pour OpenGL il n'y a aucun soucis pour l'integration avec Qt. Qt Designer est tres performant, je l'utilise systematiquement pour generer des fichiers .ui (XML) et charger ceux-ci au lancement de l'application (comme avec Glade pour GTK+) sans meme demander a Qt Designer de generer du C++. Donc dire que le mieux est de tout faire a la main est totalement faux: c'est une perte de temps evidente.
Si tu n'as pas de contrainte sur les outils utilises pour le projet, ni sur le projet lui-meme en dehors des fonctionnalitees, moi je le developperai en C# tout simplement pour apprendre un language qui est cense etre l'un des plus modernes actuellement. Je laisserai soigneusement le debat du language entre les integristes.
[^] # Re: Qt ou Java ou .NET ?
Posté par Guillaume Ceccarelli . Évalué à 2.
Pour les questions
- Oui, le projet demande une interface graphique qui pourra s'avérer complexe
- Qu'entend-tu par couche métier ?
- Le multiplateforme n'est pas une obligation, mais un +, voir le contenu du journal
- Le projet risque de maltraiter le CPU et peut-être le GPU mais sinon il n'est pas prévu de faire une utilisation massive des périphs en tant que tel.
- Le projet est à but éducatif mais pas seulement : il doit aussi pouvoir être utilisé par des professionels en quête de ses services (à terme)
[^] # Re: Qt ou Java ou .NET ?
Posté par TImaniac (site web personnel) . Évalué à 2.
Effectivement, c'est toujours mieux quand il y en a au moins 1 de compétent... Cela dit à 1 ou 2 mots clés prêt tu peux coder comme en Java, avec exactement la même syntaxe sans exploiter toutes les possibilités... Pour avoir eu l'occasion d'apprendre le C# à 2 reprises au reste de l'équipe lors de projets universitaire, ca c'est toujours très bien passé, et rapidement.
Le plus simple c'est d'essayer : sous Windows, installe SharpDevelop, et essai de dessiner une interface.
Qu'entend-tu par couche métier ?
Couche de l'application qui contient le coeur de l'application, tu y trouves les objets qui représente le domaine, typiquement dans une application de commerce en ligne tu y trouveras les classes Client, Produit, Vente, Reduction, etc.
Cette couche est parfaitement indépendante de l'interface graphique, mais elle fait tout le boulot.
[^] # Re: Qt ou Java ou .NET ?
Posté par Guillaume Ceccarelli . Évalué à 2.
Et sinon pour la couche métier, alors oui. Elle pourrait être compliquée à terme
[^] # Re: Qt ou Java ou .NET ?
Posté par tanguy_k (site web personnel) . Évalué à 1.
Si tu connais C++ ou Java je pense que tu n'auras aucun probleme a assimiler C# rapidement. Je lis (et comprends) tous les jours du code source ecrit en C# (que je n'ai pas ecrit donc) alors que j'en ai jamais fait. C'est franchement pas complique, au contraire. Quelques fois il faut se lancer, c'est comme cela que l'on progresse et que l'on apprend de nouvelles choses.
> couche métier ?
En gros c'est l'ensemble des composants moins les composants graphiques (e.g les algorithmes, la gestion des fichiers, la base de donnees ect...)
> Le projet est à but éducatif mais pas seulement : il doit aussi pouvoir
> être utilisé par des professionels en quête de ses services (à terme)
Et ca pause un probleme si les utilisateurs doivent installer une JVM ou le framework .NET ? Si l'interface n'a pas le look and feel du natif (Java Swing) ?
[^] # Re: Qt ou Java ou .NET ?
Posté par TImaniac (site web personnel) . Évalué à 3.
Ah non :)
La gestion des fichiers, la base de données, ca c'est dans la couche de persistance, pas dans la couche métier malheureux :)
[^] # Re: Qt ou Java ou .NET ?
Posté par tanguy_k (site web personnel) . Évalué à 1.
> de persistance, pas dans la couche métier malheureux
J'ai un object triangle, si je veux le serializer, j'appelle la methode serialize() de l'objet qui me retourne une string (XML), ensuite suivant mon data layer la string est envoyee vers un fichier ou autre (SOAP, database...). Donc oui tout ca est dans ma couche metier.
Tu ferais comment toi ?
[^] # Re: Qt ou Java ou .NET ?
Posté par serge_kara . Évalué à 3.
ensuite ces objets metiers sont transmis (enventuellement convertis en objet generiques) a ta couche persistance qui elle s'occupera de l'enregistrer dans un fichier, une DB ou ce que tu veux.
[^] # Re: Qt ou Java ou .NET ?
Posté par TImaniac (site web personnel) . Évalué à 2.
Y'a pleins de solutions.
Dans tous les cas t'as une classe métier, appelons la : Metier.
Il faut qu'elle soit parfaitement indépendante de toutes bibliothèques techniques, qu'elle soit graphique ou accès au FS.
Ensuite tu peux :
- faire une classe MetierSerialisable qui hérite de Metier et qui se trouve dans la couche de persistance : problème, il faut passer par une FabriqueAbstraite pour garantir que ce sont bien tes objets de persistance qui sont construits, bref ca t'oblige à modifier ta couche métier.
- injecter la méthode Serialize à l'aide d'un outil de tissage d'aspect (programmation par aspect).
- utiliser une classe séparée (genre XMLSerializer) qui sérialise tous tes types métiers et qui parcours ta structure.
- utiliser une classe séparée qui sérialise automatiquement par Reflection.
- utiliser une lib de mapping qui fera tout le boulot pour toi. Elles utilisent généralement une des techniques au dessus.
L'idée est dans tous les cas de pouvoir modifier/changer de moyen de persistance sans jamais toucher au modèle métier.
[^] # Re: Qt ou Java ou .NET ?
Posté par tanguy_k (site web personnel) . Évalué à 2.
[^] # Re: Qt ou Java ou .NET ?
Posté par TImaniac (site web personnel) . Évalué à 2.
Mais bon rien ne t'empêche d'utiliser les autres méthodes. Perso quand je dois le faire à la main, je me fais bêtement 2 classes "MachinReader" et "MachinWriter" qui sont capable de serialiser/deserialiser tout le graphe d'objet métier. Ensuite j'en ai autant que j'ai de support visés, et je touche jamais au modèle métier.
# Toolkit c++ modélisation
Posté par Le Rat Puant . Évalué à 4.
Pour le rendu, OpenGL est utilisé, ce qui permet l'ulisation sur pas mal de plateforme (dont Linux et Windows).
# question
Posté par serge_kara . Évalué à 2.
c'est un projet universitaire, pas un projet dans la vraie vie, le but du jeu c'est d'appendre une techno, pas de propager votre maigre savoir (bah vi!! si votre savoir etait pas maigre, vous seriez en train de bosser et pas en train d'etudier).
[^] # Re: question
Posté par Guillaume Ceccarelli . Évalué à 2.
# Mon avis
Posté par 桃白白 . Évalué à -2.
Exemple: Si je ne me trompe pas Matlab est fait en Java. Dans mon travail j'evite toujours de lancer Matlab car ca met des plombes à se lancer ce truc et ca me bouffe plein de ressources alors que je n'ai même pas lancé de calculs !!! Rien qu'à cause de cette interface graphique en Java.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.