Ce document suggère un certain nombre de logiciels que vous pouvez utiliser sur vos machines personnelles pour avoir chez vous un environnement de développement qui vous permettra de continuer vos TP et projets chez vous.
L'inclusion d'un logiciel dans cette liste, qu'il soit libre ou propriétaire, ne constitue pas une garantie ni même une opinion de ma part sur sa qualité.
Le choix fondamental est celui du système d'exploitation que vous allez utiliser sur votre machine personnelle. Il y a trois possibilités : vous pouvez utiliser un Unix libre (par exemple Linux ou un Unix BSD), un Unix propriétaire (par exemple Mac OS X), ou un système propriétaire alternatif (par exemple Mac OS classique ou Windows NT).
L'idéal est d'installer sur votre machine personnelle un Unix libre, par exemple Linux ou un Unix BSD. Notez que cette solution ne vous empêchera pas de conserver le système propriétaire qui est déjà installé sur votre machine ; si vous décidez d'installer Windows ou Mac OS et Unix sur la même machine, un menu apparaîtra lors du démarrage de la machine (boot) qui vous permettra de choisir le système à utiliser.
La solution la plus simple consiste à acheter un jeu de CD d'installation dans le commerce grand public. Comme il s'agit de logiciel libre, il est parfaitement légal (et même fortement recommandé) de vous organiser avec vos collègues pour acheter un seul jeu de CD d'installation et de vous en servir sur plusieurs machines.
Si vous avez une liaison Internet rapide chez vous et vous savez graver des CD, vous pouvez aussi télécharger une image des CD d'installation.
Il y a en ce moment un vaste choix de distributions Linux et de de variantes de Unix BSD parmi lesquelles choisir. J'aurais tendance à conseiller Ubuntu ou Kubuntu GNU/Linux du fait de la simplicité de leur installation.
Quelques liens utiles :
Pour ceux d'entre vous qui ne disposent pas d'une machine capable de faire tourner un Unix moderne, le système Minix est un Unix minimaliste mais suffisant pour faire du développement « C ». Je l'ai utilisé de mon temps sur un PC-386 disposant de 4 MB de mémoire principale et 100 MB de disque.
(En fait, j'avais appris la programmation Unix auparavant avec Minix 1.7 sur un PC-AT (286) avec 1 MB de mémoire principale, mais j'espère qu'aucun de vous n'aura à souffrir sur une machine de ce genre.)
Si vous ne pouvez ou ne voulez pas installer un Unix libre, il est possible d'utiliser un « LiveCD », un Unix qu'on n'a pas besoin d'installer mais qui s'exécute directement à partir du CD.
Juppix est un LiveCD Linux prévu pour les étudiants d'informatique de Paris 7. Il contient tout ce dont vous aurez besoin pour travailler.
Cette solution n'est intéressante que dans un seul cas : vous utilisez un Mac, et vous installez Mac OS X, qui, sous le capot, est un Unix assez honorable. Les autres Unix propriétaires sont selon moi aujourd'hui obsolètes.
(Pour les curieux, Mac OS X est obtenu par hybridation de FreeBSD avec CMU Mach et recombinaison avec une interface graphique propriétaire dérivée de NeXTstep.)
Mac OS X est fourni avec un jeu complet d'outils de développement, incluant Emacs, gcc, javac et make. Malheureusement, ces outils ne sont pas installés par défaut, et pour y avoir accès vous devrez installer les « Apple Developer Tools », qui se trouvent sur le DVD d'installation ou sur un CD séparé.
Si vous voulez utiliser les logiciels libres et gratuits disponibles pour Mac OS X, il se peut que vous ayez besoin d'installer le serveur X11 d'Apple (une version modifiée de X.Org).
(Vous remarquerez par ailleurs l'impérialisme d'Apple : gcc et Emacs deviennent des « outils Apple », X.Org, c'est le « serveur X d'Apple ». Bon, j'arrête avec les moulins à vent.)
Liens utiles :
Si vous avez une copie de Microsoft Windows ou de Apple Mac OS classique (version 9 ou antérieure) sur votre machine personnelle, et vous ne pouvez ou ne voulez pas installer un Unix libre, il est possible d'installer un certain nombre d'outils qui vous permettront de travailler chez vous.
Cette solution présente cependant un certain nombre de désavantages. Le plus important est que l'environnement dont vous disposerez sera très différent de celui de la fac, et que certains de vos enseignants (dont moi) ne seront pas capables de vous aider en cas de problème.
Emacs est normalement fourni avec les systèmes Unix, qu'ils soient libres ou propriétaires. Si ce n'est pas le cas, je vous conseille de changer de version d'Unix plutôt qu'installer Emacs vous-même.
Une version de Emacs pour Microsoft Windows est disponible auprès de la FSF.
Voyez aussi ci-dessous pour l'utilisation d'Emacs pour le développement.
Un compilateur C est normalement fourni avec tout système Unix. Sous Debian et Ubuntu, vous devrez installer le paquet build-essential. Sous Mac OS X, vous devrez installer les « Apple Developer Tools ».
Il existe un grand nombre de compilateurs C et C++ pour Windows (les compilateurs C++ sont presque toujours capables de compiler du C). Malheureusement, ces compilateurs sont généralement payants (et chers), et je ne vous conseille pas de les acheter si vous n'en possédez pas encore.
Sous Windows, je vous conseille plutôt d'utiliser Dev-C++. Dev-C++ est un environnement de développement complet (éditeur, constructeur de systèmes, compilateur), qui utilise GCC (dans son incarnation Mingw) pour effectuer la compilation. Il est distribué sous la forme d'un « installateur » qui inclut GCC, ce qui évite les complications liées à l'installation de ce dernier.
Pour ceux d'entre vous qui auraient des vieilles machines qui ne supportent pas Windows, DJGPP est une version de GCC pour MS-DOS. DJGPP ainsi que les applications qu'il produit fonctionnent fort bien sous Windows dans une fenêtre de commande.
(Je ne connais pas de système de développement C gratuit et utilisable pour Mac OS classique. PWB est certes gratuit, mais trop compliqué pour un être humain normal. Think-C n'est plus disponible dans le commerce aujourd'hui.)
Java est fourni avec la plupart des Unix. Sous Debian vous devrez installer le paquet sun-java6-jdk ». Sous Ubuntu, il faudra installer sun-java6-bin.
Une version Linux/x86 et une version Windows du compilateur Java sont disponibles sur le site de Sun. Java est fourni avec Mac OS X.
Le compilateur O'Caml est fourni avec Debian (installez le paquet ocaml). Le compilateur Caml (pour Unix et Windows) et la documentation du langage O'Caml sont disponibles sur le site de l'INRIA.
L'auteur de ces lignes utilise Emacs comme unique environnement de développement, quel que soit le langage de programmation qu'il utilise. Je vous conseille d'inclure les lignes suivantes dans votre fichier ~/.emacs :
Je vous conseille aussi de lire les sections « Running Compilations under Emacs » et « Tags » dans le manuel d'Emacs (tapez « C-h i m emacs RET »).
Eclipse (sans accent) est un environnement de développement portable écrit en Java mais utilisable avec de nombreux langages de programmation (libre et gratuit). Certains de mes collègues utilisent Eclipse pour tout leur développement, et s'en montrent très satisfaits. Il recquiert une machine un peu musclée (je ne le conseille pas avec moins de 512 MB de mémoire).
Paradoxalement, le principal défaut d'Eclipse est qu'il rend certaines opérations très faciles ; c'est par exemple le cas de la génération d'accesseurs pour les champs d'un objet Java. Si vous vous servez de ces fonctionnalités sans comprendre leur utilité, vous risquez de produire du code pour le moins curieux (ce qui vous vaudra peut-être quelques questions le jour d'une soutenance de projet).
Sous Unix, la convention est d'utiliser gzip et tar pour l'archivage.
GNU gzip et tar ont été portés sur tous les systèmes d'exploitation couramment utilisés. Si vous utilisez Windows, vous trouverez des binaires de gzip et binaires d'autres utilitaires Unix (dont tar).
Si vous préférez une interface graphique, sous Windows utilisez 7-zip (libre et gratuit).
La plupart des systèmes Unix sont fournis avec la commande gv ou ghostview, qui permet de visualiser des fichiers PS ou PDF, ainsi que la commande xpdf qui permet de visualiser des fichiers PDF uniquement. (Sous Debian et Ubuntu, il vous faudra installer les paquets ghostview et xpdf.)
Sous Mac OS X, la visualisation PS et PDF est intégrée au système; il suffit de double-cliquer sur un fichier .ps ou .pdf pour qu'il s'affiche automagiquement.
Pour visualiser des documents PostScript sous Windows, on peut utiliser GSView. Pour le PDF, il y a Acrobat Reader (propriétaire mais gratuit).
Sur Mac OS classique, il y a MacGSView.
TeX est normalement fourni avec les systèmes Unix. Sous Debian et Ubuntu, installez le paquet texlive.
TeXshop est un environnement TeX pour Mac OS X.
MiKTeX est une distribution TeX pour Windows.
Les machines de la fac sont accessibles à distance à travers le protocole ssh. Vous pouvez transférer vos fichiers à partir de votre compte à l'aide d'une variante de ssh qui s'appelle scp.
Ssh et scp sont normalement fournies avec tout système Unix (y inclus Mac OS X).
PuTTY est une combinaison ssh + émulateur de terminal pour Windows. La distribution PuTTY inclut aussi une implémentation de scp (qui s'appelle pscp).
(Merci à Jean-Louis Marie et Jean-Baptiste Yunès pour les informations à propos du Mac.)
Retour à ma page d'enseignement.
Juliusz Chroboczek, <jch@pps.jussieu.fr>