Mac4Pro : Axel Andersson, un programmeur Wired
Par Arnaud Morel - Publié le
Wired, une solution client serveur de haute tenue
À la différence de Hotline, Wired utilise intensivement les technologies propres de Mac OS X, pratiquant une étroite collaboration avec le système Unix, tout en préservant au mieux l'esprit de simplicité qui anime le Mac. Wired se décompose en deux logiciels, le client et le serveur : utilisez le serveur pour partager vos fichiers, créez des comptes pour vos utilisateurs, et ceux-ci, en utilisant le client ainsi que votre adresse et leurs noms d'utilisateurs / mot de passe pourront se connecter, chez vous, et accéder aux fichiers que vous partagez. L'ensemble des transferts de fichiers s'opère avec un protocole crypté et sécurisé.
Ne nous cachons pas derrière notre petit doigt, Wired connaît des utilisations aux marges de la légalité. Mais cela ne suffit pas à le disqualifier en tant que solution simple, élégante et pratique pour qui veut partager des fichiers trop gros pour être envoyés par courriel.
Programmeur smart
Axel, tu es principalement connu en tant que programmeur de Wired. Peux-tu expliquer ce qu'est ce logiciel ?
J'étais, avec certains amis, un utilisateur d'une application réseau nommée Hotline, c'était dans la décennie 1990. Ce programme était très en avance pour l'époque mais a stagné à la sortie de Mac OS X et nous avons du nous mettre à utiliser des applications tierces qui n'étaient souvent pas très bonnes. Je commençais à m'intéresser pendant mes loisirs à la programmation Mac et j'ai pensé qu'un projet équivalent à Hotline, mais natif pour OS X serait un challenge intéressant. Ça permettrait en plus que mes amis et moi restent en contact, ce qui n'est pas mal non plus.
Qu'est ce qui fait que Wired diffère des autres solutions client /serveur ?
Wired est un logiciel de niche et il est plutôt différent des modèles employés par les autres applications réseaux. Pour l'esentiel, c'est un système qui permet à des clients de se connecter à un serveur, d'y discuter avec les autres utilisateurs et échanger des fichiers avec le serveur. Parce qu'il y a de nombreux serveurs et qu'ils ne sont pas inter connectés, la plupart étant même complètement privés, le chat est différent de celui qu'on pratique sur iChat par exemple. Et parce vous n'échangez des fichiers qu'avec ce seul serveur, les transferts ne sont pas comme sur BiTorrent. Pensez à Wired comme un canal IRC combiné avec un serveur FTP.
La façon dont je l'utilise, et dont, je pense, la plupart des personnes l'utilisent, c'est pour rester en contact avec un petit groupes d'amis qui partagent leurs fichiers entre eux.
Pourquoi choisir la gratuité et le modèle Open Source ?
tous les logiciels que j'ai écris on été Open Source. Pas vraiment parce que je voulais créer une communauté de développement et travailler collectivement sur les projets, mais plutôt parce que je ne vois pas l'intérêt de garder ses sources fermées. Lire le code source des autres est un excellent moyen d'apprendre, et tu récupères constamment des morceaux de code à droite et à gauche. En rendant mes sources disponibles, j'espère rendre la pareille à la communauté.
Pour ce qui est de la gratuité, j'ai commencé à programmer comme hobbyiste. Mettre en place un système en shareware est un peu un sacerdoce, et je n'ai jamais pensé que j'aurais le temps ni les ressources pour le faire. Mais pour le futur, je ne m'interdis pas les shareware, ça serait sans doute une expérience enrichissante.
Les utilisateurs de tes logiciels peuvent faire des dons. Le font-ils ?
Les gens donnent, mais pas très souvent et pas beaucoup d'argent. Je peux me servir de ça pour payer l'hébergement de mon site, des crédits Skype mais je n'ai jamais retiré des sommes substantielles de mon travail. Mais c'est un petit bonus, une petite motivation pour continuer le développement en tant que freeware. Heureusement pour moi, j'ai un boulot "de jour" en tant que programmeur Mac, donc je ne dépends pas des revenus générés par mes freeware. Mais si je voulais passer indépendant, je devrais choisir un autre mode de rémunération, c'est clair.
Quels sont tes projets de développement autour de Wired ?
Je commence à travailler à une version 2.0, qui introduira un protocole complètement nouveau, qui sera extensible et autorisera des ajouts de fonctions plus facilement. Dans cette version, j'inclus également un grand nombre de demandes de mes utilisateurs. J'essaye de conserver un mode de développement très ouvert, donc, dès que j'ai quelque chose de suffisamment stable pour tester, je sors des "nighly build" (NDR : des version préliminaires et quotidiennes du logiciel) que les utilisateurs peuvent essayer. J'espère que ça me donne un bon équilibre entre la programmation et les retours utilisateurs.
Programmer sur Mac
Comme programmeur, comment décrirais-tu l'environnement de programmation de Mac OS X ?
Pour mes programmes avec une interface graphique, je travaille uniquement en cocoa et en Objective-C, et c'est un environnement incroyablement productif. Les API sont très riches, et je trouve rarement quelque chose qui manque que je dois faire moi même. Pourtant, dans les versions précédentes d'OS X, c'était différent. Il fallait coder de nombreuses choses tout seul, alors que maintenant, Apple les propose comme API. Actuellement, je continue à développer sous Tiger, qui est très bien. Il y a, bien sûr, de nombreuses choses excitantes dans Léopard à inclure dans Wired mais je le ferais plus tard, éventuellement.
As-tu des expériences avec d'autres environnements de programmation ?
Avant OS X, j'ai programmé un peu Mac OS classique, la version 8.0 je pense. Le kit de développement s'appelait la Toolbox, et c'est devenu Carbon. Pour être honnête, Carbon est bien mieux que la Toolbox, mais il n'y a aucune comparaison avec Cocoa. À l'époque je travaillais déjà en C, qui est un langage procédural, plutôt qu'un langage orienté objet. Il fallait tout faire soi-même ! Même par exemple, un gestionnaire d'événement pour un simple clic de souris. Et parce que c'était Mac Os classique, avec sa gestion mémoire déplorable, quand ton programme plantait, tu plantais toute la machine. Et, il faut me croire, un programme, quand on l'écrit, ça plante souvent. C'était très frustrant.
Et que penses-tu du SDK de l'iPhone ?
C'est très excitant ! D'ici pas très longtemps, tous les iPod du monde supporteront ce SDK et en feront, sans doute, la plus grosse plateforme mobile au monde. En plus, par rapport à la programmation pour un Mac, c'est un défi intéressant : travailler avec un même langage, une même environnement mais sur une plateforme totalement différente. Il y a plusieurs choses à prendre en considération : les limitations de puissance du matériel, de nouveaux paradigmes d'interface utilisateur (GUI), de nouvelles méthodes de saisie etc...
La richesse de l'environnement est surprenante en plus : à peu près tout ce qu'on a sur Mac Os X, on le retrouve sur l'iPhone. Open GL par exemple a l'air vraiment bien, et pourrait conduire l'iPhone à devenir une plateforme ludique majeure.
Que penses-tu du modèle de l'AppStore ?
C'est une excellente idée. Distribuer des logiciels est un gros boulot, que tu ne prends pas en compte si Apple s'en charge. C'est un gros poids en moins sur les épaules du programmeur. Les 30 % de frais prélevés par Apple qui ont beaucoup été discutés sur le web, sont, je pense, plutôt justes, étant donné le niveau de support qu'on obtiendra de la part d'Apple. Je pense que nous voyons là le futur de la distribution de logiciels, et je ne serais pas surpris de retrouver ça sur le Mac, tôt ou tard.