Un programmeur munichois : Mark O’Connor a troqué son MacBook Pro contre un iPad pour… programmer en C++ ! Pour cela, il a recours à un serveur personnel dans le nuage qui lui permet d’utiliser son iPad comme un terminal léger de programmation. Il raconte son expérience sur son blog.
Vidéo, lecture, musique, microblogging… les tablettes sont en général des terminaux de consultation et ne sont que peu utilisées pour la création de contenu, à de notables exceptions près (The Fall de Gorillaz par exemple). De toutes les activités malaisées sur un iPad, la plus improbable est encore la programmation. De toute façon, il n’y a pas de compilateur sur iPad. La solution est alors d’utiliser le « nuage ». C’est ce que fit Mark O’Connor, dont le métier est de programmer des superordinateurs parallèles comparables au Jaguar de Cray. Il utilisait auparavant un MacBook Pro et VMWare Fusion qui lui permettait de tester ses codes sur des machines virtuelles. À la suite d’un « incident » qui lui fit perdre plusieurs jours de travail, il décide de changer de paradigme. Contre toute attente, il opte pour un iPad. Il a néanmoins besoin de plusieurs ingrédients pour se lancer :
- Un iPad 2 Wifi avec un support.
- Un clavier sans fil Apple (oui quand même !)
- Un compte Linode 512
- iSSH
Autant les deux premières lignes sont familières, autant les suivantes pourront paraître plus obscures. Linode est un service comparable à Amazon AWS, c’est un service de Cloud Computing où l’on peut louer un serveur en ligne moyennant un abonnement mensuel. Le forfait Linode 512 vous octroie un serveur Linux privé, doté de 4 cœurs et 512 Mo de RAM pour moins de 20$ par mois. Ce serveur est entièrement paramétrable selon vos besoins et possède une adresse IP fixe. C’est sur ce serveur que Mark a installé son compilateur C++ est ses outils de développement familiers. C’est cette machine, très puissante, qui s’occupe de faire tout le travail. L’iPad est utilisé comme un terminal grâce à iSSH. Ce logiciel est un client SSH (Secure Shell) qui permet de se connecter de manière sécurisée au serveur Linode.
Là est le détail crucial, Mark utilise Vim pour rédiger ses programmes. Il n’a donc besoin que d’un terminal en mode texte et iSSH, qui supporte les terminaux en 256 couleurs, suffit amplement pour cela. Comme le mode texte ne requiert que très peu de bande passante, l’interface est très réactive et persistante, car le serveur linode ne s’éteint jamais et supporte de multiples connexions simultanées.
Voilà donc à quoi ressemble une journée de Mark : café et croissant en regardant ses emails et les derniers bugs sur le navigateur de l’iPad. Connexion multi onglet à son serveur personnel Linode avec iSSH. Lancement d’une grosse compilation en tâche de fond et révision des codes sous Vim. La compilation est silencieuse, n’occasionne si surchauffe ni ralentissement et est deux fois plus rapide que sur son MacBook.
Alors que les discrètes notifications iOS 5 l’informent des dernières discussions de ses collègues, Mark passe d’un revers de main de iSSH à un chat avec son patron l’informant d’une réunion l’après-midi même. Déjà midi, Mark part manger et contrôle pendant son repas l’état de sa dernière compilation avec son iPhone dont le minuscule clavier lui permet tout de même de faire le ménage sur son serveur. Dans l’après-midi, il projettera l’écran de son iPad sur l’énorme TV du lounge pour discuter popote avec ses collègues.
Tout n’est pas toujours si confortable malheureusement: Google Docs ne remplace pas facilement un Word et toute application distante utilisant des graphiques demande… beaucoup de patience. Il est possible d’utiliser des applications X11 avec l’iPad néanmoins, car iSSH inclut un client VNC. Mais la bande passante et la résolution très limitée de l’iPad ne permettent pas une utilisation vraiment confortable et rapide. Quant à utiliser Eclipse ou XCode sur un iPad, vous pouvez oublier !
Pourtant, à la fin de la journée, Mark ne regrette ni le poids, ni le bruit, ni la chaleur de son ancien portable et n’éprouve pas le besoin d’y revenir, excepté pour … ripper des DVD…
Alors, une confirmation que Tablette + Cloud = Futur ? Ou pas ?
Étant développeur, le choix de l’iPad me surprend un peu et je vais expliquer pourquoi.
Le point crucial de son changement d’environnement vient du fait de déporter son code et les compilations sur un serveur, ensuite, comme vous l’expliquez bien, il faut juste un périphérique pour l’affichage et un clavier pour l’édition.
N.B : Avec ce système on perd quand même toutes les fonctionnalités évoluées des IDE comme Eclipse ou XCode, ce qui n’est pas négligeable.
Dans le cas d’un iPad on utilise un écran très petit (et seulement ça car le clavier reste physique), ce qui n’est quand même pas très agréable pour développer. Le seul intérêt de l’iPad est sa grande portabilité, mais il aurait tout aussi bien pu reprendre un ordinateur portable ou un Mac Mini (ou PC) + un grand écran, beaucoup mieux adapté (si la mobilité n’est pas si importante), et avec ce type de périphériques il aurait eu beaucoup plus de possibilités annexes…
A vrai dire, il aurait même mieux fait d’utiliser un logiciel de versioning, comme SVN, pour éditer ses fichiers en local (et donc avoir tous les avantages d’un IDE tel qu’Eclipse) et les sauvegarder sur un serveur. Ainsi, il aurait pu compiler en local s’il le souhaitait ou alors synchroniser ses fichiers avec le serveur et compiler sur ce dernier.
Bref, je reste un peu perplexe face à ce choix.
S’il avait choisi une tablette android ARM il aurait pu avoir des applications X11 natives ! Bizarre de choisir un Ipad pour ça ….
Très intéressant !
Je suis à la recherche d’une app ou une solution pour coder en php, peut être est ce un début de solution.
Si quelqu’un connais une app du type notepad++, je suis prenneur !
Pour coder en PHP (faire du web) cette app semble rencontrer un franc succès : http://itunes.apple.com/fr/app/textastic-code-editor/id383577124?mt=8
Super article, précis et clair ! :)
Fut une époque, on développait sur des terminaux X qui se contentaient de nous afficher un environnement de développement. Les fichiers manipulés se trouvaient sur de gros serveurs, utilisé par tous les développeurs, ce qui permettait d’utiliser toute sa puissance pour compiler… Avec cet article, j’ai l’impression d’être revenu 20 ans en arrière. Comme quoi, l’informatique, c’est comme la mode, c’est cyclique ; et ce qui était has been à une époque peut redevenir top quelques années plus tard.