Skip to content

choixtechno

sebyx31 edited this page Feb 14, 2012 · 7 revisions

Choix des technologies utilisées dans le projet

Dans ce document sont décrits les choix technologiques concernant :

  • Gestionnaire de version
  • Forge
  • Langage de programmation
  • Environnement de développement

Choix du gestionnaire de versions

Critères

  • Fonctionnement distribué (≠centralisé, ce qui exclut SVN, CVS et autres)
    • Permet de travailler même sans connexion Internet
    • En cas de fermeture de la forge ou crash d’un disque dur, le contenu est répliqué ailleurs
  • Utilisation répandue
  • Gratuité pour tous les membres du groupe
  • Interaction par interface graphique et par ligne de commande

Technologies retenues

  • Git
  • Mercurial
  • Bazaar

La solution choisie est Git, cela surtout car il est populaire. Ce faisant, de nombreux tutoriels sont disponibles sur le Web.

Choix de la « forge »

Critères

  • Accès depuis l’école et depuis la maison
  • Système de Wiki ou similaire
  • « Bug tracker »
  • Possibilité de self-administration
    • Pas besoin de demander pour créer un dépôt, etc.
  • Visualisation du dépôt via une interface Web
  • Compatibilité avec Git
  • Rubrique d’aide disponible
  • Stabilité du service + rapidité

Forges retenues

  • Github version « Organizations »
  • Redmine de l’école
  • Sourceforge

Pour ce point, Sourceforge a été rapidement enlevé, cela à cause de son architecture dite « usine à gaz ». En effet, le service est très lent à l’utilisation. De plus, son interface est si complète qu’il est difficile de s’y retrouver. Notre choix s’est finalement porté sur Github, car il nous permet une certaine indépendance, notamment en matière de configuration. Il se trouve également que son interface est très épurée, mais sans implication sur le nombre de fonctionnalités.

Choix du langage de programmation

Critères

  • Orienté objet
  • Populaire (= Documentation abondante)
  • Facile à apprendre et à utiliser
  • Possibilité de faire des fenêtres graphiques (GUI) à l’aide d’une bibliothèque externe ou intégrée au langage.
  • Compatible avec au moins Windows

Langages retenus

  • C#
  • Java
  • C++

Ces trois langages ont été retenus car ils conviennent tous aux critères que nous avons fixés. Cependant, le langage final retenu est Java, car il est facile à apprendre et à utiliser. Ce qui vient le distinguer de C# est la popularité du langage : en effet, peu de ressources - hormis MSDN – sont disponibles sur Internet. Cela rend autrement plus compliqué toutes les phases impliquant une recherche. Ce qui a fait pencher la balance du côté de Java au détriment de C++ est sa facilité. Le système de ramasse-miettes de Java rend nettement plus facile la gestion de la mémoire, et évite de perdre du temps sur des problèmes de pointeurs etc.

Choix de l’environnement de développement

Critères

  • Gratuit pour chaque membre du groupe
  • Compatible Windows
  • Intégration de notre gestionnaire de version (Git) dans l’IDE
  • Concepteur de fenêtres disponible
  • Possibilité de coder en Java

IDEs retenus

  • Eclipse
  • NetBeans

Concernant l’IDE, le choix s’est fait à la majorité des personnes présentes le 17 octobre 2011 à 14:30. Notre choix s’est porté sur Eclipse, principalement car Git y est bien supporté.

Choix de la librairie graphique

Critères

  • Accessibles en Java
  • Facile à utiliser
  • Concepteur de fenêtres disponible (sous Eclipse de préférence)
  • Bien documenté

Librairies retenues

  • QT + GLUT
  • Swing
  • AWT
  • JWT

QT n'a pas été retenu, car il n'est pas très adapté à Java, mais plutôt à C++. Les autres librairies sont les 3 totalement conçues pour Java. Swing a été retenu, car il est le plus populaire et le plus stable des trois.

Conclusion

Nos différents choix se portent sur :

  • Pour le gestionnaire de version : Git
  • Pour la forge : Github
  • Pour le langage de programmation : Java
  • Pour l'environnement de développement : Eclipse
  • Pour la librairie graphique : Swing

Document réalisé par Sébastien Vaucher

Clone this wiki locally