Desktop 2.0

Suite à cet article sur ownCloud je souhaite à nouveau écrire sur ce sujet qui me tient à coeur, l’avenir du Desktop. Par ce titre ironiquo-buzzien je souhaite présenter ce que cela me représente.

Qu’est-ce que le desktop 2.0 ?

Historiquement le desktop est composé de logiciels installés sur une machine et qui au mieux dans certains cas communiquent entre eux. On télécharge le logiciel, on l’installe, on le paramètre si nécessaire et on l’utilise. Cette description n’a pas changé depuis environ 25 ans. Pour une mise en perspective, le web qui est venu bien après, qui est complexe à faire évoluer techniquement et administrativement, a régulièrement évolué et fait un bond en avant avec HTML5 : http://slides.html5rocks.com/#slide3

Le desktop 2.0 pourrait être un desktop qui utilise Internet afin de proposer des fonctionnalités supplémentaires. A priori ca existe déjà, par exemple iTunes qui permet de consulter le store d’Apple et d’y faire des achats depuis une interface native. Sauf que iTunes n’est qu’un logiciel qui intègre le moteur d’un navigateur web afin de présenter de manière un peu mieux intégré au desktop le store et surtout de gérer les DRM sur les fichiers achetés…

L’intérêt d’Internet est essentiellement de pouvoir partager et communiquer, consommer n’étant qu’une forme particulière de partage sous contrainte.

Mais pour moi il ne représente en aucun cas un but final. Dans les années 2000 on disait “il FAUT être sur Internet”. C’est une perception complètement erronée de l’outil ce qui a à mon avis complètement pervertie notre conscience. En effet, à l’époque le contexte était qu’il fallait y être en ayant un site web. Maintenant en 2010 il FAUT y être en ayant des suites bureautiques en web, des systèmes d’exploitation en web, et toute une suite de logiciels, en web …

Joost le fameux logiciel de vidéo en P2P par les créateurs de Kazaa est mort soit disant car il fallait installer un logiciel… Bullshit !!! La version full web est tout aussi morte. Joost est mort car il n’y avait pas de contenu. Et il y en avait pas car le seul contenu autorisé venait que des partenaires … Ca s’appelle la télévision ça, ce n’est pas Internet.

De fait la vision que nous avons d’Internet n’a pas changé depuis ses premiers pas ! Une vision très restrictive de l’outil.

Si le desktop 2.0 ne ressemble pas aux iTunes like, si ce n’est pas des applications web, qu’est-ce qu’il est ?

Le desktop 2.0 existe déjà

Plutôt que de décrire la chose avec des métaphores et des descriptions techniques autant prendre l’exemple parlant du seul gars qui a compris ce que c’était, qui l’a même pratiquement inventé et industrialisé à grande échelle : Steve Jobs.

Quoi encore lui ! bin oui … l’iPhone c’est quoi ? C’est un ordinateur (de poche) capable d’aller sur Internet (comme un ordinateur avec un abonnement Internet), et un kit de développement, le tout suffisamment bien conçu pour rendre n’importe quelle application web2 ridicule.

Attention tous les mots de cette phrase ont leur importance, notez d’ailleurs l’absence du mot téléphonie, car ne m’intéresse pas dans le contexte de ce billet. Et d’ailleurs le succès de l’iPad en rajoute une couche puisqu’il ne fait pas téléphone …

l’iPhone et maintenant l’iPad implémententent le desktop 2.0, car :

  • Les applications sont natives. Ce qui rend “l’expérience utilisateur” (comme on dit), beaucoup plus fun, car cela apporte :
    • La réactivité
    • L’intégration au bureau
    • L’accès aux extensions matériel actuelles et à venir (3D, GPS, gyroscope, accéléromètre, …)

Et qui dit fun, dit j’utilise plus facilement qu’une application web qui ne peut pas avoir ces avantages. Qui dit j’utilise dit je suis potentiellement prêt à payer.

  • Les applications utilisent Internet. Et je parle bien des applications pas uniquement du navigateur web !
  • Les applications sont faciles à trouver, à installer et à mettre à jour grâce à l’AppStore.

NATIF, INTERNET, STORE

Ces 3 termes définissent bien la chose. On peut faire un paquet de reproches justifiés à Jobs, par contre on ne peut pas lui enlever la vision qu’il a eu. Car il ne suffit pas de dire je vais faire un téléphone qui peut aller sur Internet, ca existait déjà avant l’iPhone. Il faut imaginer ces 3 concepts, faire fabriquer le matériel qui tient la route, développer les logiciels et les services, et intégrer le tout de manière cohérente.

Google a d’ailleurs bien compris la leçon, et le confirme avec le succès d’Android.

Et le PC ?

NATIF ?

De manière historique les applications sont natives, mais pour diverses fausses bonnes raisons (déploiement et mise à jour) beaucoup d’applications “professionnelles” sont uniquement en web (IE6).

INTERNET ?

Depuis le début d’Internet les PC y accèdent. Sauf qu’ici dans la description du desktop 2.0 je parle des applications. Or il faut bien avouer qu’à part le navigateur web il n’y a pas beaucoup d’applications qui exploitent Internet, même en 2010 !!!

STORE ?

Gros point d’avance pour Linux qui possédait un “store” depuis la naissance de Debian au moins, dans les années 90 (et voui). Nous parlons de dépôts. De nos jours toutes les distributions en possèdent un et il permet de plus de mettre à jour tout le système et pas uniquement les applications utilisateurs !

Hormis Linux point de salut du côté de Windows et MacOS, même si des rumeurs d’appstore pour MacOS X ont circulé.

Arguments

NATIF !

Parmi les arguments en faveur d’une application native qui aboutissent à une “expérience utilisateur” agréable, il y en a une autre loin d’être négligeable pour le développeur, la facilité de développement. Il faut certes maitriser la technologie nécessaire à développer une application native, mais d’une part le choix est vaste sur un PC, et d’autres part une application web “équivalente” va nécessiter la maitrise d’un paquet de technologies côté client (Javascript, HTML, XML, CSS) pour un résultat bien inférieur et la maîtrise de plusieurs boites à outils nécessaires à débuger tout ça.

Pourquoi est-ce si pénible ? Tout simplement parce que le web n’a jamais été prévu pour développer des applications mais simplement pour afficher des pages … Bien sûr l’HTML5 vise à remédier à ces lacunes, mais cela restera malgré tout en deçà de n’importe qu’elle application native correctement développé et intégré. Et ne parlons même pas de l’exploitation de périphériques matériel ou même de la 3D, webgl commence à peine à être intégré à certains navigateurs web, en 2010 …

Enfin une botte secrète du web est la compatibilité de l’application quel que soit l’OS. Je balaie cela d’un revers de la main, car du coup on a renvoyé vers le développeur la complexité de la chose ainsi que vers le navigateur, on se rappelle tous des années de lutte à faire respecter les standards afin d’afficher et pouvoir utiliser correctement une application web… De plus une bibliothèque comme Qt est multi-plateforme, il n’y a qu’à voir Skype ou Opera. Et bien entendu Java (Eclipse, …)

Pour en revenir au faux exemple de Joost, devoir installer une application n’est pas une contrainte. Les succès de Skype, Dropbox, Spotify, iTunes, … le prouvent. Le frein est simplement la nullité d’une mauvaise application.

INTERNET !

Un des avantages d’une application web et ce qui a entre autre expliqué leur explosion est le fait de pouvoir tout stocker côté serveur. L’utilisateur a ainsi qu’à se rappeler de son login et mot de passe pour retrouver toutes ses données. Or rien empêche une application native de faire de même ! Elle peut même faire en sorte de stocker en local si une coupure au réseau survient.  C’est précisément ce que vient combler l’HTML5 pour les applications web …..

Les développeurs d’applications natives pour iPhone ont eux bien compris l’intérêt et ne s’en prive pas. Internet devient de fait ce pour quoi il est bon : stocker, présenter et partager des données. L’application native se contente elle de faire ce pour quoi elle est bonne : faire l’acquisition des données via l’utilisateur et/ou des extensions matériels (GPS, accéléromètre, gyroscope, …) et rendre cela agréable en exploitant au maximum les capacités du matériel.

Alors peut être qu’il y aura un jour une version d’HTML qui va permettre d’accéder au GPS … laule…

Un exemple concret de l’intérêt d’Internet ? Prenons un logiciel natif comme un client mail qui propose des fonctionnalités complémentaires comme la lecture de flux RSS. La personnalisation de ces flux comme l’ajout et leur catégorisation nécessite un certain temps. Or si vous avez un laptop comme ordinateur secondaire, ou bien celui du boulot, vous devrez refaire ce travail redondant de paramétrage, et je ne parle même pas qu’un article lu depuis son travail sera marqué non lu chez soi… Si ce logiciel pouvait sauvegarder sa configuration et ses données sur Internet, il suffirait d’une simple synchronisation pour se faciliter là vie.

A remarquer que la Mozilla Fondation a très bien compris cela puisque qu’elle propose l’extension Firefox sync, ainsi que Google chrome qui gère ça nativement. A leur avantage ces 2 entités ont de très forte compétences en développement client et serveur, ce que n’a pas forcément le développeur d’une application desktop lambda. Remarque importante pour la suite de cet article.

STORE !

L’autre avantage d’une application web était sur les déploiements et les mises à jour. Cependant grâce aux stores cet argument s’efface, et pour les OS préhistorique qui ne gère pas encore cette fonctionnalité, il parait trivial d’ajouter cela au sein même de l’application …

De plus un store permet de faciliter la vente de son application, ce qui est loin d’être négligeable. Côté Linux seul Canonical semble le comprendre et faire un pas dans ce sens. Il semble que le “petit” milliard de dollars reversé par Apple aux développeurs iPhone, ait fini par convaincre, il était temps !

QUEL AVENIR

du Desktop

D’un côté il va y avoir le fameux Chrome OS qui est là pour renforcer la présence des applications Google. Le truc drôle c’est qu’eux ont bien compris les limitations du web, aussi compétent soient-ils, et aussi bien HTML5 soit-il. Donc afin de rendre les applications web plus agréable et pour pouvoir développer tout type d’application, ce qui est important lorsqu’on a la prétention de faire un OS grand public, ils proposent le plugin Chrome nativeclient qui va permettre de développer des applications … natives … à l’intérieur de Chrome ! On marche sur la tête ?!

Ou quand le web réinvente le natif afin de combler ses propres lacune tout adaptant à son monde ce qui fait le succès d’Apple… Et bien entendu Google étant loin d’être bête va proposer son “store” market pour son OS.

De l’autre, il est heureux de constater certains réveil, encore une fois via Canonical avec son Ubuntu One. Ce service permet de stocker et synchroniser ses données sur Internet via les programmes qui supporte desktopcouch. Et ceci est la réponse aux programmeurs qui n’ont pas les compétences ou l’envie de développer eux mêmes ces fonctionnalités. Il était temps qu’un éditeur d’OS propose ce type d’API à ses développeurs !

Pour pousser le concept un peu plus loin, je rêverais d’un OS qui me permette, suite à son installation, de télécharger automatiquement tous les logiciels que j’utilise sur mon PC principal ainsi que toutes les préférences associées à ces logiciels.

Ces informations personnelles mais pas vraiment critique, pourrait même être partagée via un réseau social si l’utilisateur le souhaite.

du Réseau Social

Ce secteur à la mode a ceci de particulier qu’il est le révélateur flagrant de cette dualité web / desktop. Par exemple, au départ ces applications web de type Facebook étaient complètement fermées et uniquement accessible depuis un navigateur web. Avec la mode web2, ils se sont ouvert via des API ce qui a permis de faire émerger une multitudes d’applications natives pour mobile, puis pour PC.

Quand le web redécouvre l’intérêt du bon vieux client natif… Cependant on en est toujours sur du vertical, une application dédié à un service.

C’est ici que débarque le très intéressant social desktop et son OCS API, une API qui doit permettre l’accès des applications natives à des réseaux sociaux. En effet il est complètement aberrant qu’il faille utiliser une application en particulier pour faire du social ! Cette pratique est complètement transverse est de fait n’importe quelle application est capable de présenter un intérêt social ! Que cela soit d’intégrer le service Gitorious dans un IDE, comme QtCreator qui le fait, ou bien intégrer l’API d’un site de recettes de cuisine à des logiciels de gestion des courses….

Le social est transverse, il est ridicule de devoir utiliser un client dédié ou bien même un serveur en particulier… Côté serveur le très intéressant microblog décentralisé statusnet montre le voie, ainsi que la plateforme sociale décentralisée movim.

A moins que l’on souhaite que le futur du desktop ne tourne que dans l’onglet d’un navigateur web, ce qui est déjà le cas avec Chrome OS, Jolicloud, etc, il reste aux éditeurs d’OS et de bureaux de proposer des services web décentralisés et des API, afin que n’importe application desktop puisse enfin sortir des années 1990…

Pour finir je tiens à poser une question qui peut résumer ce débat.

Les acteurs et organisations du web travaillent à faire évoluer leurs technologies afin de proposer des fonctionnalités les plus proches d’une application native. Les éditeurs de logiciels natifs et développeurs d’environnement de bureau travaillent à proposer des fonctionnalités permettant le développement d’applications qui exploitent les capacités offertes par Internet (web services, cloud, …).

Entre ces 2 visions quelle est celle qui a le plus court chemin à faire et laquelle est la plus à même de répondre aux besoins envies des utilisateurs ? :)

  1. #1 par Stéphane Klein le 25 juin 2010 - 21:36

    Un point que tu n’as pas abordé :

    * un avantage des applications web est d’être “nativement” multiplate-forme
    * la plupart des applications natives dont tu parles sont dépendantes de l’OS

    • #2 par fredix le 25 juin 2010 - 23:06

      En effet je n’ai pas abordé cet avantage qui n’en est pas un car une bibliothèque comme Qt est multi-plateforme (exemples Skype, Opera, …) et bien entendu Java.
      L’iPhone nécessite l’apprentissage d’Objectif-C mais si cela paraitre une contrainte pour le développeur, elle est visiblement balayé par l’avantage d’une application native sur la version web …

      Je viens d’ajouter ces remarques dans l’article.

  2. #3 par fredix le 25 juin 2010 - 23:20

    Désolé pour les quelques corrections après publication.

  3. #4 par Guillaume Desrat le 21 juillet 2010 - 06:22

    Article très intéressant, que je n’ai lu que ce matin.

    Les deux mondes ont leurs attraits, et répondent, de manière différente, aux besoins des utilisateurs (eux mêmes différents). L’avantage du Web, pour le développeur, est de pouvoir capitaliser sur le nombre des technologies qu’il doit apprendre, comme tu le soulignes (HTML, CSS, JS, … plus une autre technologie applicative – J2EE, Ruby on Rails, Django – et donc un langage en plus), pour pouvoir retomber sur ses pattes en cas de recherche d’emploi ou de projet différent.

    À noter que Google prépare un Chrome Web Store pour, d’une part, alimenter Chrome et Chrome OS en applications, et d’autre part permettre de monétiser des applications Web.

    • #5 par fredix le 21 juillet 2010 - 09:25

      Perso je pense qu’une interface web a un intérêt lorsque l’on n’a pas le client natif sous la main (cyber café, pc prêté, ..) donc de manière occasionnel en “failover”. Le meilleur exemple est twitter, les habitués préfèrent utiliser un client natif plutôt que la version web, ce qui n’a rien de surprenant.

  1. Desktop 2.0 « Je code donc je suis | Information Mining R&D
  2. Tweets that mention Desktop 2.0 « Je code donc je suis -- Topsy.com
  3. De la webification d’Internet ou la renaissance des applications natives ? « Je hack donc je suis

Répondre

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Gravatar
Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Twitter picture

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Connexion à %s

Suivre

Get every new post delivered to your Inbox.

Joignez-vous à 189 followers