Archives mensuelles : septembre 2011

image

Windows Everywhere : 20 après…

C’est avec un certain amusement que lors du keynote de la Build, j’ai revu un slide définissant la stratégie de Microsoft à savoir avoir un OS à destination de tous les devices possibles.

Ainsi il y a 20 ans, lors du keynote de la PDC de 1992 présenté par Bill Gates, l’éditeur avait déjà présenté le slide suivant :

image

Même si techniquement la stratégie a changé avec l’adoption de Windows NT pour tous les différents types de PC, il n’en reste pas moins que 20 ans après (une éternité), la stratégie reste exactement la même. Ce n’est pas surprenant, mais voir cette continuité sur une si longue période dans un domaine qui évolue aussi rapidement reste remarquable.

image

image

Windows 8 : Un OS bipolaire

Avec Windows 8, Microsoft montre enfin sa stratégie de conquête du marché des tablettes en offrant un OS qui permet d’avoir deux usages de son PC.

Le premier et celui qui est mis en avant car nouveau dans l’environnement Windows, concerne la nouvelle interface Metro. Cette interface permet d’avoir un nouveau Shell basé sur une interface orientée Touch bien qu’utilisable à l’aide du traditionnel couple clavier/souris.

imageMicrosoft avait déjà fait un premier pas dans la gestion du multi-touch sur PC “classique” (hors Microsoft Surface) avec Windows 7. Cet OS propose en effet le support du touch dès lors que vous disposez d’une dalle tactile. L’éditeur de Redmond propose même un Touch Pack composé de plusieurs applications afin de réellement profiter de cette capacité. Réellement profiter du touch, car toute l’interface de Windows est restée celle que l’on connait depuis longtemps et qui est donc inadéquate pour toute utilisation intensive du Touch.

Avec Windows 8, Microsoft supprime donc l’énorme inconvénient de devoir utiliser l’interface graphique traditionnelle de Windows complètement inadaptée à l’utilisation du tactile, en proposant l’interface suivante:

image

La tile Desktop est le point essentiel où Microsoft peut faire la différence avec la concurrence. Cette tile permet d’accéder à l’interface graphique traditionnelle de Windows, et à tout le catalogue existant d’applications !

En plus d’avoir une tablette, l’utilisateur a donc un véritable PC sur lequel il peut travailler comme il le fait à son habitude !

Le format de la tablette offerte aux participants de la Build le démontre d’ailleurs très bien :

8d

Si l’on pose la tablette sur son petit socle, et qu’on l’associe à son clavier bluetooth on se retrouve avec un vrai PC portable ayant les mêmes caractéristiques d’un portable classique.

Au lieu d’avoir à faire avec une tablette qui ne fait “que” tablette comme c’est le cas des iPad par exemple, nous sommes en face d’un vrai PC qui en plus fait office de véritable tablette, interface dédiée à l’appui.

Les problèmes / inconvénients

Ceci est un excellent atout, un vrai point différentiant par rapport à la concurrence mais il y a tout de même plusieurs problèmes importants qu’il faut bien cerner :

  • Les deux interfaces sont pour deux usages différents mais également pour deux types d’utilisateurs différents. Si nous n’avons rien entendu à propos du déploiement en entreprise d’applications Metro, c’est que le scénario principal de ce type d’applications concerne les applications orientées grand public et ne cible pas les applications de gestion, les applications d’entreprise. Toutes les applications Metro devront obligatoirement être déployées via le marketplace de Microsoft. Ce type de déploiement peut être dissuasif pour des applications d’entreprise, et si cela ne l’est pas, les 30% de commission que devrait prendre Microsoft pour chaque vente devrait définitivement cesser tout envie de créer des applications d’entreprise basées sur l’interface Metro.
  • Toujours à propos de ce marketplace, en ne se basant pas sur l’OS de Windows Phone 7 mais en reprenant l’OS PC “classique”, l’éditeur va lancer un marketplace qui ne pourra bénéficier des 30 000 applications existantes sur cette plate-forme et qui sera par conséquent quasiment vide. La variété des technologies disponibles pour le développement d’applications (XAML + {C++, C#, VB} et le couple HTML/JS), mais également le potentiel de clients bien plus large que toutes les plates-formes existantes (450 millions de licences vendues pour Windows 7) devraient motiver les développeurs à remplir le marketplace au plus vite.
image

Le développement pour ARM

J’évoquais précédemment mes réserves quand à la communication de Microsoft lors de l’évènement Build, je vais donc commencer par l’”oubli” qui m’a le plus surpris : le développement pour processeurs ARM.

L’éditeur a en effet mis en avant le fait que Windows 8 supporte les processeurs ARM et non uniquement les processeurs Intel. Ce changement technologique important est induit par l’incapacité actuelle d’Intel à produire des processeurs peu couteux en énergie destiné aux différents “form factors” telles que les tablettes.

D’un point de vue développement cela une conséquence fâcheuse et inhabituelle dans la plate-forme Microsoft : les applications existantes ne sont pas compatibles avec ce type de processeurs et nécessiteront donc au minimum une recompilation.

Mis en valeur depuis plusieurs mois, il n’y a pas eu à ma connaissance une seule session sur le sujet, et ce sujet n’a pas été évoqué une seule fois de près ou de loin.

A l’heure actuelle, la seule solution proposée officiellement pour le développement d’applications compatibles ARM est le développements d’application style “Metro” basées sur WinRT qui elles seront compatibles et fonctionneront sans problèmes à la fois sur les processeurs Intel et sur les processeurs ARM.

image

Concernant le code natif, on peut deviner (et espérer) qu’une recompilation avec très peu de modification devrait suffire (les outils ont forcément été développé par Microsoft pour porter plusieurs de leurs applications).

Et pour le développement .net, il semblerait que je sois le seul à être surpris que le framework .net 4.5 ne propose pas de versions ARM. Il n’existe actuellement qu’une version 32bits et une version 64 bits ciblant les architectures x86. Ce qui est quand même assez original pour une machine virtuelle censée être indépendante du matérielle.

J’ai donc pour le moment assez peur que l’on se retrouve avec un vrai clivage entre les deux architectures, et donc avec des applications qui fonctionneront sur des tablettes Windows 8 sous x86 et qui ne fonctionneront pas sur des tablettes Windows 8 sous ARM. Cela serait vraiment très déroutant pour les utilisateurs et un problème important contre-nature pour Microsoft.

Quand à l’OS à lui-même, le support d’ARM ne semble pas aussi avancé que ce souhaite indiquer Microsoft. Les tablettes ARM présentées dans la zone Expo étaient en effet toutes sous verre, donc non manipulables…

Bref comme beaucoup de sujets évoqués ou non durant la Build, il va falloir attendre encore quelques mois avant d’y voir plus clair…

Changement de mode de communication, pour quel résultat ?

La communication autour de la Build a fait l’objet d’un changement radical de la part de Microsoft. Il s’agit en effet à ma connaissance (traduire la première fois depuis ma jeune carrière autour des technologies Microsoft) que l’éditeur a appliqué un verrouillage total de la communication autour de l’évènement et des annonces.

Les microsoftees ont en effet eu interdiction de communiquer afin d’avoir une seule et unique voix qui sorte de l’évènement, et un seul et unique message.

Les retransmissions françaises de l’évènement organisées par Microsoft France ont d’ailleurs été annulées pour satisfaire à cette exigence.

Un nouveau mode de communication semblable à ce que font d’autres acteurs du marché comme Apple, qui peut être pertinent si le message délivré est clair, et s’il ne laisse pas place à l’interprétation.

Le seul message clair et précis qu’il ressort de l’évènement est l’attaque de Microsoft du marché du consumer délaissé depuis bien longtemps au profit des différents périphériques proposés par Apple.

L’évènement build a très clairement montré que cette version de l’OS serait un vrai “Win” pour l’utilisateur “grand public”, le consommateur final. L’éditeur montre enfin ses armes pour attaquer ce marché et essayer de rattraper son retard. La stratégie adoptée a plusieurs points forts mais également de gros points faibles mais nous y reviendrons dans un prochain post.

Ce qui m’a le plus gêné durant cet évènement est tout le flou qui a entouré tout le reste. Au lieu d’être factuel, et de présenter correctement le socle technique, la plate-forme de développement, il a fallu partir à la pêche aux infos et se construire sa propre opinion ce qui se qui se prépare et ce qui va arriver.

En discutant avec les différents attendees, on pouvait s’apercevoir que chacun avait sa propre interprétation du bout de puzzle qui l’avait pu glané lors des différentes sessions.

Le changement technologique présenté est encore flou, et seul le temps nous dira Windows 8 sera une avancé et proposera de réels bénéfices pour le développeur et ne sera pas qu’un changement technologique de plus.

Et pour une conférence destinée aux développeurs, on peut se demander si le message a été bien passé et bien compris…

Quoiqu’il en soit je vais m’efforcer de vous présenter mon point de vue sur ce qu’il s’est passé durant l’évènement via les prochains posts qui couvriront ce qui a été présenté, mais également ce qui a été “oublié”.

Stay tuned !

image

Synthèse de la 1ère journée de la Build

image

 

Il ne fut question que d’un seul et unique sujet durant cette première journée de la Build : Windows 8 ! Tout le focus est mis sur la prochaine version de l’OS de Microsoft, et au lieu de vous barber avec un énième descriptif des nouveautés proposées par l’OS, je vous renvoie vers le post de Presse-Citron créé à cet effet.

Je vous propose plutôt au travers de ce post de survoler les impacts pour les développeurs et les futurs projets de développement qui cibleront cet OS.

Une API au niveau de l’OS

image

Gros changement stratégique, le framework .net n’est plus le framework de prédilection pour développer des applications Windows, l’éditeur propose à présent une API directement présent au niveau de l’OS nommée WinRT.

Au lieu d’utiliser une surcouche à l’OS moins performante, les développeurs peuvent à présent utiliser des APIs au niveau de l’OS qui proposent les même avantages que celles proposées par le framework .net. On se retrouve ainsi pour la première fois avec une API orientée objet directement au niveau de l’OS ! Son organisation est d’ailleurs très proche de celle du framework .net.

Différence majeure, elle est entièrement développé en code natif pour avoir des performances optimales.

D’un point de vue développement, on peut attaquer cet API depuis du code C++ natif, du C# et du VB ces langages permettant d’exploiter des interfaces graphiques définies en XAML.

L’autre pendant, concerne le développement “d’applications web natives” comme l’éditeur l’indiquait il y a quelques mois. HTML 5, CSS 3 et javascript peuvent ainsi être utilisées pour faire des applications Windows avec un accès direct à WinRT.

Cette API propose également une bibliothèque de contrôles et de ressources (comme des animations) qui permettent (enfin !) de développer des applications graphiquement réussies. Il n’y a qu’à réutiliser les templates, contrôles et animations fournies par l’API afin de développer une application qui ne soit pas “moche” par défaut comme cela était le cas avec toutes les APIs UI précédentes (Windows Forms, Silverlight, WPF, etc.).

 

“Building Apps”

Dans la lignée de l’iPhone et de l’iPad qui proposent un bon OS (iOS) mais dont la vrai valeur ajoutée est apportée par les applications. Microsoft veut avec Windows 8 remettre les Apps en valeur.

Cela commence dès le démarrage de l’OS avec le Modern Shell où les applications peuvent proposer une expérience utilisateur sans même être lancées grâce aux Tiles :

image

L’interface Metro propose ensuite une base ergonomique unique que les développeurs sont libres de personnaliser afin de créer des applications avec une UI riche et simple à manier pour les utilisateurs.

Autre nouveauté attendue, la mise à disposition d’un AppStore destiné à la distribution des applications. Celui-ci a été montré en démonstration mais n’est pas actuellement testable :

image

 

Les outils de développement

De ce côté là, cela ne change pas trop, nous restons sous Visual Studio qui est disponible dans une édition Express afin de pouvoir directement tester presque tout ce qui a été présenté.

La seule surprise concerne Expression Blend qui se voit rajouter des fonctionnalités d’édition web avec le support d’HTML  et CSS 3 ! C’est une grande surprise pour un outil à l’origine destiné à manipuler  du XAML mais cela va complètement dans le sens de la diversité des langages supportés par WinRT. L’équipe de Blend a d’ailleurs ouvert un nouveau blog à cette occasion.

 

Mes impressions

Le premier keynote m’a permis de très rapidement comprendre pourquoi la 1ère journée de l’évènement était entièrement dédiée à des sessions plénières (ce qui est plutôt rare pour ce type d’évènement, les seules sessions plénières étant les keynotes). Microsoft n’est pas venu les mains vides et apporte un volume de contenu très très important.

Avec Windows 8, l’éditeur souhaite reprendre la main sur marché d’un point de vue innovation et support des différents types de périphériques tout en proposant un seul et unique OS pour PC. Il compte pour cela sur sa nouvelle API directement intégré à l’OS afin de proposer aux développeurs d’exploiter ses fonctionnalités.

C’est du lourd, avec quand même quelques agréables surprises, il ne reste plus qu’à découvrir dans les prochains jours de l’évènement si techniquement tout suit correctement.

Rendez-vous donc dans quelques heures pour le compte-rendu de la seconde journée !

En attendant, vous pouvez suivre en live ce qui se passe du côté de Los Angeles via les blogs et tweets des français présents sur place !

image

Suivre la Build

Après une journée dédiée à la presse hier, la première journée officielle ouverte aux attendees commence dans 2 heures avec le premier keynote.

La Build va, comme attendu, être THE évènement avec pas mal de changements en perspectives et beaucoup d’annonces.

Microsoft est attendu au tournant et les premiers échos sont très intéressants et je suis très curieux de voir comment Microsoft va communiquer autour de tous ces changements.

Si vous souhaitez suivre en live l’évènement dont le keynote commencera dans environ 2 heures, vous avez plusieurs options aux choix (le mieux étant de tout suivre en même temps) :

image

Les français présents à la Build

Comme je l’avais fait pour la PDC 09, je vous propose aujourd’hui une liste des bloggeurs et twittos français qui vont participer à la Build afin que vous puissiez suivre l’évènement au travers de différents points de vue.

Nom Blog Twitter
Sebastien Pertus [MVP] Blog Twitter
Benoit Laut [MVP] Blog Twitter
Nicolas Clerc [RD] Blog Twitter
Michel Hubert [MVP]   Twitter
Jeremy Alles Blog Twitter
Simon Ferquel [MVP] Blog Twitter
Gilles Péron Blog Twitter
Fabien Lavocat [MVP] Blog Twitter
Cyprien Autexier Blog Twitter
Sebastien Courtois Blog Twitter
Aurelien Verla Blog  
Laurent Duveau [RD] Blog Twitter
Patrice Lamarche [MVP] Blog Twitter
David Catuhe [MS] Blog Twitter
David Rousset [MS] Blog Twitter
Eric Mittelette [MS] Blog Twitter
Benjamin Guinebertière [MS] Blog Twitter

Vous ? Faites-moi signes si vous y serez !

   

Vous pouvez suivre simplement l’ensemble de ces personnes sur Twitter en suivant la liste que je viens de créer : frenchiesatbuild 

image

Les évènements Microsoft sont-ils uniquement des évènements marketing ?

Des évènements purement marketing ?

Je suis toujours surpris de constater qu’il existe toujours un certain nombre de personnes qui pensent que les évènements à destination des développeurs organisés par Microsoft sont crées uniquement à des fins marketing et qu’elles sont donc par définition inintéressantes pour des développeurs.

J’ai de nouveau rencontré ce type de remarque récemment en commentaire d’un de mes posts où j’évoque l’évènement Build qui débutera la semaine prochaine.

image

Je vais donc profiter de l’occasion pour préciser ce que je pense de ce type d’évènements. Ayant eu l’opportunité de participer aux Tech’Ed Europe 2003/2004/2005/2006 et à la PDC 09 je commence à avoir un certain recul sur ces évènements internationaux.

Commençons par enfoncer des portes ouvertes, OUI ce sont des évènements organisés par Microsoft, donc OUI seules les technologies et produits Microsoft sont présentés. Cela est dommage car ces évènements ne permettent donc pas de manière simple d’avoir un positionnement de ceux-ci par rapport à la concurrence.

Autre inconvénient de ce type de conférence et de présentation, l’objectif pour Microsoft est de présenter ces technos et produits et de donner les bonnes pratiques liées à l’utilisation de ceux-ci et en aucun cas d’aider les développeurs à devenir de meilleurs développeurs contrairement à d’autres conférences comme la NDC par exemple. Seules les sessions dédiées à l’ALM peuvent parfois rentrer dans cette catégorie.

Mais ce ne sont pas pour autant des conférences marketing inintéressantes techniquement bien au contraire ! Il y a toujours des sessions intéressantes et qui ne sont pas forcément lié directement à un argument de vente.

Je me souviens par exemple d’une session au Tech’Ed 2003 où le speaker à redéveloppé le contrôle DataGrid d’ASP.net quasi feature complete en une heure from scratch sans aucun “tust” (très éprouvante pour arriver à assimiler l’immense volume de notions présentées), d’une session de Juval Lowy sur l’API System.Transactions introduite avec le framework 2.0 où il présentait son framework qui permet de manipuler n’importe quel objet serializable de manière transactionnelle, d’une session sur le cryptage level 800 par Rafal Luckawiecki, etc.

Idem pour la PDC 09, même si comme je l’indiquais dans mon bilan de l’évènement, je n’avais pas retrouvé de sessions techniques d’un niveau aussi élevé que certaines  sessions de level 400 proposées aux Tech’Ed, il n’en reste pas moins qu’assister à un panel de discussion dédié aux langages avec comme intervenants Herb Sutter, Anders Heiljsberg, Eric Meijer, Don Box, et d’autres, à une session sur le garbage collector présentée par Patrick Dussud ou encore une session sur Rx par Eric Meijer et Bart de Smet reste une occasion intéressante et épanouissante techniquement.

Eric Meijer

Pourquoi s’y rendre quand on peut télécharger les vidéos des sessions ?

La raison est simple : le networking !

Microsoft mets à disposition depuis quelques années les vidéos de ces évènements en ligne temporairement ou “définitivement”. Participer sur place en IRL à ce type d’évènements permet :

  • de confronter ses idées et opinions par rapports à ce qui est présenté avec les autres attendees.
  • de bénéficier du retour d’expérience des autres attendees sur l’utilisation d’une techno sur de vrais projets
  • de créer ou maintenir son networking avec les microsoftees de sa section locale et ainsi parfois avoir des informations complémentaires ou “des bruits de couloir” lorsque l’on est sous NDA (contrat de confidentialité) avec l’éditeur.
  • de maintenir son networking de manière générale avec “l’écosystème” .net (partenaires, communautés, SSII, éditeurs, etc.)

Autre raison de s’y rendre toute bête mais qui a en son importance, vous avez votre planning définitivement bloqué et vous êtes ainsi sûr de faire votre veille technique pendant la semaine que dure la conférence. Au lieu de s’éparpiller et de visionner quelques vidéos par-ci par-là durant son temps libre, vous avez la possibilité d’effectuer votre veille technique à la carte durant une semaine non-stop.

En conclusion

Assister à un des évènements internationaux du type Tech’Ed, PDC ou Build est, à mon avis, un très bon moyen d’effectuer sa veille technique avec généralement des sessions de qualité.

Si votre objectif est d’assister à une conférence orientée sur la technique en étant indépendant de tels ou tel éditeur et d’avoir une vision plus générale des choses afin de devenir un meilleur développeur alors il vaut mieux vous orienter vers une conférence de type NDC par exemple.

Sur ce, rendez-vous dans quelques jours pour voir ce que donne la Build !