Lorsqu'on travaille à plusieurs sur un même projet, on est souvent confronté à des problèmes si plusieurs personnes travaillent sur le même fichier. En effet, il serait plus confortable que, lorsque quelqu'un fait une modification dans un fichier, ces modifications soient faites pour tout le monde. Il faudrait alors pouvoir travailler ensemble sur un même fichier en temps réel. C'est ce but que poursuivent les développeurs de Gobby.
Présentation
Gobby est un éditeur de texte collaboratif temps réel. Cela signifie qu'il permet d'éditer un fichier par plusieurs personnes en même temps. Une personne crée le serveur sur lequel les autres se connectent. La liste des personnes connectées est disponible ainsi qu'une fenêtre de chat de type IRC pour pouvoir communiquer pendant la programmation. Chaque utilisateur possède une couleur qui servira à surligner son propre texte ; cela afin de pouvoir reconnaître qui a fait quoi dans le fichier.
Gobby permet également l'édition de plusieurs fichiers dans une même session et le glisser/déposer. La coloration syntaxique est également disponible pour les principaux langages de programmation donnant ainsi un minimum de confort lors de l'édition. Par contre l'indentation automatique n'est pas supportée par le logiciel. Le logiciel donne la possibilité de protéger la session en cours par un mot de passe afin d'éviter qu'une personne malveillante puisse se joindre au travail et le saccager (où tout simplement l'espionner).
Gobby est écrit en GTK+ 2.6 et s'intègre bien au bureau Gnome. Il utilise la bibliothèque obby pour gérer l'édition simultanée des fichiers. Enfin, cerise sur le gâteau, Gobby est multiplateforme (Linux, MacOs X, Windows) et est distribué sous licence GPL.

Fig. 1 : Fenêtre principale.
Installation
Gobby dépend de nombreuses bibliothèques. En plus des bibliothèques Gnome sur lesquelles il s'appuie (pour par exemple permettre la coloration syntaxique), il est nécessaire d'installer les bibliothèques net6 et obby disponibles toutes les deux sur le site officiel. Obby requiert libsigc++ =2.0.0, gtkmm = 2.6 et libxml = 2.6.
Maintenant que les présentations sont faites, je vous conseille vivement d'utiliser les paquets de votre distribution ;-). Sinon, installez dans l'ordre : net6, obby (en supposant que vous ayez les bibliothèques requises) puis Gobby. Un ./configure && make && make install suffit pour chacun.
Utilisation
Création du serveur
Ouvrez votre Gobby tout neuf et créez un serveur en cliquant sur Créer une séance. Vous devrez renseigner plusieurs champs. Le premier concerne le port utilisé. Normalement, celui par défaut convient mais vous pouvez le changer si vous le souhaitez. Vient ensuite le pseudo. Choisissez-en un simple ; vous verrez pourquoi plus loin. Vous devrez également choisir une couleur. Cette couleur permettra d'identifier ce que vous avez écrit au sein du document. Je vous conseille de choisir une couleur la plus claire possible, autrement, elle risquerait de compromettre la lisibilité de votre travail. Rentrez ensuite un mot de passe si vous voulez protéger votre travail puis cliquez sur Valider.

Fig. 2 : Créer une séance.
Inviter des amis
Maintenant que le serveur est créé, toute personne qui connaît son adresse IP, son port et le mot de passe (si vous en avez mis un) peut se connecter en cliquant sur Rejoindre une séance. Vous pouvez à tout moment connaître les personnes qui travaillent avec vous grâce à la liste qui se trouve à droite. Vous pouvez parler à tout le monde en utilisant la fenêtre de chat qui se trouve dans la partie inférieure. Si vous souhaitez attirer l'attention d'un utilisateur particulier, tapez son pseudo dans votre phrase. Cette phrase se coloriera en rouge pour l'interpellé. Voilà pourquoi il est utile de mettre un pseudo simple.
Chaque personne peut créer un document ou en ouvrir un qui est présent sur son disque dur. Le document sera ouvert dans un onglet et sera visible par tous les utilisateurs. Les autres participants doivent alors "s'abonner" à ce document pour pouvoir le lire. Pour voir si un utilisateur est abonné à un document particulier, allez sur ce document et regardez la liste des utilisateurs, à droite. Une case à cocher permet de savoir si c'est le cas ou non.
Tout le monde peut ouvrir des documents, mais également les fermer si c'est une personne qui n'a pas ouvert le fichier. Il faut donc faire attention, pendant que l'on travaille, de vérifier si l’on souhaite garder une copie du document qui vient de s'ouvrir avant que quelqu'un d'autre ne le ferme avant. Pour enregistrer un fichier, il suffit d'aller dans le menu Séance
->Enregistrer document. Trivial !
Utilisation avancée
Il est possible, pour une raison ou pour une autre, de modifier sa couleur dans les préférences sans avoir à se déconnecter. Pour cela, allez dans le menu Utilisateur->Choisir un couleur et choisissez votre nouvelle couleur. Attention, si la couleur que vous avez choisie est déjà prise ou est trop proche de celles déjà existantes, il vous sera demandé de la modifier.
Une caractéristique qui distingue Gobby des autres éditeurs de texte classiques est l'absence d'annulation des modifications (undo). Il est en effet impossible de revenir en arrière dans Gobby. C'est pour cela qu'il faut souvent sauvegarder et, s’il arrivait un pépin, demander à celui qui a la sauvegarde la plus récente de rouvrir le fichier. Cette caractéristique oblige à bien connaître les participants et à leur faire confiance.
Remarque au niveau du choix de la coloration syntaxique : si un utilisateur modifie le type de coloration syntaxique, celle-ci sera également changée pour tous les autres utilisateurs. Vous pouvez voir quel est le type de coloration en cours, en bas, dans la barre de statut. Notez que Révision désigne le nombre de fois que le fichier a été modifié (un caractère = une révision. Un copier/coller = une révision, etc.).
Enfin, Gobby gère très mal l'indentation. Si vous sélectionnez un bloc de texte et que vous appuyez sur la touche tabulation pour indenter ce même bloc, toute la sélection sera effacée et remplacée par un caractère de tabulation. Il vaut mieux le savoir et il est important que les participants soient au courant avant de commencer ; cela évitera bien des dégâts...

Fig. 3 : Gobby possède les fonctionnalités de base que l'on peut attendre d'un éditeur de texte.
Conclusion
Gobby est un éditeur de texte collaboratif temps réel. Cette façon de travailler est vraiment intéressante et peut apporter un gain de temps non négligeable pour certains projets. Ce système oblige à travailler en collaboration étroite et apprend aux utilisateurs à s'assouplir et à faire des concessions (c'est particulièrement difficile lorsque les participants n'ont pas la même façon d'indenter le code, etc.).
Mais Gobby n'est pas parfait. L'absence de fonction d'annulation des modifications est dangereux et oblige les utilisateurs à être vigilants. Bien que la coloration syntaxique soit un plus dans la vie du programmeur, l'absence d'indentation automatique se fait sentir.
Mais ne soyons pas trop dur. Gobby est encore activement développé. La version stable n'est que la 0.2 (la 0.3 étant en release candidate lors de la rédaction de cet article) et il est fort probable que les développeurs comblent ces manques rapidement.
Liens
Site officiel : http://gobby.0x539.de/index.html
Guide d'installation : http://darcs.0x539.de/trac/obby/cgi-bin/trac.cgi/wiki/InstallationGuide

