Olivier Dahan

Microsoft MVP Silverlight 2013, 2012,
2011, MVP CAD 2010, MVP C# 2009


Membre du Developer Guidance Advisory Council Microsoft

Audit, Conseil, Formation, Développement
[WPF, Silverlight, WinRT, MonoDroid]

Historique

L’avenir proche du développement : quels environnements pour quels produits ?

Read this article in your language IT | EN | DE | ES

Septembre et son BUILD sont déjà loin, mais ses effets réels ne se feront sentir que dans quelques mois encore… Entre temps, hors de la sphère Microsoft il s’est passé, il se passe, et il se passera beaucoup de choses ! Pour le développeur cette période de calme, de transition à la fois dictée par les annonces des uns et des autres et par le ralentissement de la crise autant que celui qui entoure toute élection présidentielle doit être saisie comme une chance. L’opportunité de réfléchir au futur et de s’y préparer.

Plusieurs approches

Le marché se divise aujourd’hui selon plusieurs plans de découpe qui sont autant de clivages amenant à une réflexion différente :

  • La dichotomie Grand Public / Entreprise
  • La segmentation des OS (iOS / Android / Windows / Ubuntu ?)
  • La diversité des form factors (Smartphones / tablettes / portables / PC)
  • Les standards de fait ou à venir (Html / Java / .NET / WinRT)
  • Les outils (leur disponibilités, leur puissance, les langages proposés…)

Le développeur doit se positionner face à ces grands choix car, disons-le tout de suite, jamais il ne sera possible de briller et de proposer une carte de visite d’égale compétence dans tous ces domaines à la fois !

Choisir est quelque chose de difficile. Pas tellement parce qu’on doit sélectionner la « meilleure solution », mais surtout et plutôt parce qu’on doit « éliminer » des solutions à qui on ne prête pas les mêmes qualités, en se trompant peut-être.

C’est le problème de faire des « impasses » à un examen. Le principe est simple, assez logique, si je tombe sur l’un des sujets que j’ai bien travaillé je suis sûr d’avoir une bonne note. Mais en contrepartie je dois sélectionner quels sujets je ne travaillerai pas… et sur lesquels je sècherai totalement si je tombe dessus. Toute la difficulté se situe dans ce pari que j’appellerai ici « le pari de l’impasse » .

Le pari de l’impasse

Nous ne parlons donc plus de « choix » de la « meilleure solution » tout cela est trop subjectif. Nous sommes forcément plus influencés par ce que nous aimons que par ce qui nous laisse indifférent… Difficile dès de lors de tenter une analyse a priori si on ne se borne pas par des principes plus objectifs.

Alors je vous propose d’utiliser plusieurs techniques dont un raisonnement qui se base sur ce qui vous laisse indifférent plutôt que de vous enflammer sur ce qui suscite en vous passion et exaltation.

Le « pari de l’impasse » consiste donc nous plus à choisir ce que nous pensons être le meilleur pour l’avenir mais à éliminer ce qui nous semble le moins bon.

Par exemple, plaçons nous sur le premier plan de clivage évoqué plus haut : la dichotomie Grand Public / Entreprise.

Il faut faire un choix. C’est certain. Vous dirigerez-vous vers l’un ou l’autre ? Le choix des outils, des supports, de l’OS, etc, beaucoup de choses vont en découler.

Si vous raisonnez par choix positif, peut-être votre enthousiasme pour les jeux ou pour l’IPad vous incitera-t-il à vous diriger vers le Grand Public.

Si vous raisonnez par la logique du « pari de l’impasse » la question devient toute autre : lequel des deux mondes puis-je éliminer en minimisant mes risques à moyens et longs termes ?

Le Grand Public, on le voit aux statistiques de vente de tous les market places du monde, se limite à leur Top 50 : des jeux, encore des jeux, toujours des jeux, et les pages jaunes… Les premières applications payantes un peu intelligentes arrivent avec des scores bien lointains dont la rentabilité apparait négative, le tout maintenu dans un flou artistiques par les market places qui veulent des tas d’applications et qui ne veulent donc pas que nous sachions la vérité sur les pertes des créateurs de logiciels...

S’orienter vers le Grand Public c’est donc développer des jeux avant tout. Je ne parle pas de la 100.001ème version de la lampe torche. Laissons cela aux ados qui apprennent à développer en Html / JS…

Avez-vous les compétences, l’équipe (graphistes, musicien…) pour créer un jeu capable d’égaler le succès d’Angry Birds ? Si oui, foncez ! Si non, le Grand Public c’est comme se lancer dans la chanson, si vous n’avez pas une structure financière lourde derrière vous, beaucoup s’y tentent, bien peu réussissent…

Reste donc l’Entreprise… Mais ce n’est qu’une ébauche de pensée, bien d’autres facteurs sont à prendre en compte, ce que je vous laisse faire.

Pouvez-vous ignorer le marché Grand Public ou celui de l’Entreprise ?

C’est tout l’intérêt du « pari de l’impasse » ! Apporter un angle de vue différent de celui par lequel on aurait raisonné habituellement. Forcer une réflexion différente.

Et ce questionnement doit être fait pour chaque catégorie, chaque clivage énoncé plus haut…

C’est un outil pour vous aider à vous situer, pas un mode pensée absolu qui me permettrait de vous imposer un choix. Je ne développerai donc pas plus cet aspect de la réflexion pour tous les points, cette réflexion vos appartient, c’est le chemin que vous prendrez vous-mêmes qui vous éclairera au fur et à mesure sur la pertinence de vos choix.

Ma vision des choses

Après avoir présenté les clivages essentiels, les décisions à prendre et une méthode pour tenter d’améliorer votre réflexion, je vais vous livrer ma propre vision des choses. Elle ne vaut que pour moi dans ses réponses, mais son chemin peut trouver résonnance chez bien des lecteurs, donc les intéresser.

Les offres du marché

Je suis parti de l’ensemble des offres du marché, présentes et à venir dans un avenir proche (donc réaliste, il n’était pas question que je puisse prendre des décisions sur de la science-fiction…).

 

OS

Form factor

iOS

Tablette (iPad)

Smartphone (iPhone)

Android

Tablettes (cibles multiples)

Smartphones (idem)

Windows 8 Metro Style

Tablettes (Win8 for ARM)

PC

Smartphones (WP8)

Windows classic WPF

PC

Silverlight

Smartphones WP7

Web (quasi absence)

Intranet

Ubuntu

Smartphones, Tablettes, PC

De nombreuses remarques peuvent être faites, et chacun pourra leur donner le poids qu’il juge, encore une fois je présente ici ma vision des choses, pas une vérité absolue.

Apple

La première remarque est qu’on ne peut pas ignorer le phénomène Apple, qu’on aime ou pas, qu’on trouve cela outrageusement monté en épingle ou non, le buzz existe depuis des années, ce n’est donc plus un buzz, c’est une réalité de terrain. Le market place de Apple est celui qui rapporte le plus.

Concernant Apple on doit aussi noter que l’iPad3 semble marquer le pas côté évolution, comme ce fut le cas de l’iPhone 4S. Jobs n’est plus là et cela se sent, Apple se banalise, la concurrence est arrivée à faire aussi bien voire mieux. Les parts de marché d’Apple semblent toujours orientées à la hausse mais nul ne peut prévoir l’ampleur du rééquilibrage certain avec Android et Windows 8 dans les 2 ans à venir.

Apple est en outre un marché fermé, une marque, avec une seule machine par catégorie, aucune concurrence sur iOS, des outils de développements pas terribles et un style de gestion, de production (chinoise), d’autoritarisme, d’élitisme qu’on aime ou non.

Apple, bien qu’aillant ajouté deux ou trois choses sur son OS desktop ne cherche absolument pas à créer une véritable convergence entre les Mac et l’univers iPad/iPhone.

Android

Android est un phénomène plus intéressant. D’abord parce qu’il s’ouvre sur des tas de gammes de machines diverses offrant toutes des options plus ou moins personnalisées avec une vraie concurrence entre fabricants. Pour l’instant Android n’est pas présent sur le segment des PC mais on a pu voir quelques prototypes de machines Google. Plus intéressant encore est la convergence entre Android et Ubuntu. On sait, et ce n’est qu’un début, qu’environ 7000 lignes de code Android vont être intégrées à Ubuntu, et parallèlement Ubuntu sera installable sur les téléphones Android (à partir des double-cœurs) tout en restant compatible à 100% avec Android et ses fonctionnalités (agenda, téléphone…).

A terme il faut envisager la possibilité pour Ubuntu de s’approprier toutes les applications Android et devenir ainsi du jour au lendemain une alternative crédible pour les PC face au Mac et à Windows 8. Le tout en s’appuyant sur la bonne image de marque Android.

Windows 8

Windows 8, quant à lui, marque une évolution d’esprit majeure chez Microsoft, une forte envie d’unification et de cohérence. On sait que l’OS tournera sur PC, tablette mais aussi sur Smartphones avec WP8 qui reprend un noyau Windows en laissant tomber le noyau Windows Mobile. On sait que sous WP8 c’est WinRT qui deviendra la nouvelle plateforme de développement.

Windows 8 sera alors le seul OS à adresser tous les form factors de l’instant.

On peut bien entendu être critique sur le mélange Metro Style / Bureau classique, en faisant un OS à « deux têtes » incompatibles entres elles. Je suis le premier à trouver cela assez mal géré. De même que jusqu’à la dernière bêta l’utilisation de Windows 8 sur une machine desktop n’est vraiment pas très ergonomique, même avec un écran tactile. Mais tout cela peut encore s’arranger jusqu’à la finale (on a déjà pu voir des améliorations notables entre la première preview réservées aux développeurs et la bêta publique) .

N’oublions pas non plus que Windows 8 est un OS charnière entre les anciens systèmes et Metro Style. Un peu comme Windows 95 à cheval entre le 16 et le 32 bit. Si Microsoft réussi son pari, Windows 9 n’aura plus de bureau classique (ou bien caché pour la compatibilité). Mais on ne peut pas exclure que Windows 8 connaisse le sort de Vista, surtout en entreprise où Windows 7 serait alors le nouvel XP pour les dix ans à venir pendant que se développerait un marché grand public sous Metro Style (tout nouvelle machine sera fournie comme cela).

Silverlight et WPF

Je terminerai sur Silverlight, ce n’est pas un OS mais c’est une plateforme de développement pour laquelle j’ai toujours eu un penchant. Sous WP7 c’est même l’unique moyen de développer (en dehors de XNA qui sera arrêté). Officiellement, au moment où j’écris ce billet, Silverlight 5 est sorti depuis quelques temps sans rencontrer l’engouement des versions précédentes (certainement parce que les nouveautés sont très orientées OOB avec certificat ce qui rend tout cela bien peu utilisable). En outre rien ne dit qu’il n’y aura pas de version 6 mais rien ne dit non plus le contraire... Toutefois, le passage de Windows Phones 8 à WinRT devrait sonner le glas de ce mini WPF portable… Resterait donc le Web mais Silverlight n’a jamais beaucoup été utilisé pour le Web grand public. Ne subsiste plus que le monde de l’entreprise où Silverlight a su séduire notamment sur les Intranet où il offre confort, puissance, centralisation tout en évitant l’installation et la mise à jour lourde qu’impose WPF sur chaque machine du parc. Silverlight, dans le meilleur des cas semble donc s’orienté vers un marché de niche. Cela peut être rentable.

Hélas, ce marché de niche ne sera certainement pas suffisant pour que Microsoft maintienne encore très longtemps Silverlight qui aura été durement touché par la logique « no plugin » lancée par Microsoft, stratégie en réalité suiviste de la position de Steve Jobs qui détestait Flash et qui a fait tout son possible pour dénigrer cette solution qui comme Silverlight était pourtant cross-browsers, puissante et au point.

C’est injuste pour Silverlight qui est et reste une plateforme agréable et puissante, bien au-dessus de ce que Html 5 ne peut offrir. Mais nous devons considérer que Silverlight est au développement ce que James Dean est au cinéma : une star fauchée en pleine gloire et pleine jeunesse.

Après avoir incarné la survie de WPF, jamais vraiment adopté, Silverlight cèdera sa place à WinRT et plus proche de lui encore à WPF qui devient, par le jeu de tous ces changements, la seule solution moderne pour développer des logiciels natifs Windows non sandboxés (en dehors de l’espace WinRT donc) et échappant au contrôle planétaire du market place de Metro Style… Bon nombre d’éditeurs risquent d’être attirés par WPF pour ces simples raisons. Les éditeurs de logiciel et leurs actionnaires adopteront-ils WinRT et accepteront-ils de verser 30% de leurs ventes à Microsoft et de voire chuter leurs recettes et leurs actions ou bien s’accrocheront-ils au bureau classique de Windows, avec WPF ou d’autres solutions, l’avenir va être passionnant sur ce point !

Bref, Silverlight et WPF ont encore leur mot à dire. Etrange retour du sort, Silverlight tendait à devenir le survivant, ayant écrasé WPF. Mais le “suicide” (en fin le meurtre...) de Silverlight en pleine gloire par Microsoft change la donne. Et WPF pourrait devenir l’avenir des gros développements en bureau classique, donc plutôt en entreprise (ou bien les logiciels de type musique tels Cubase, Ableton Live, ou encore les outils de dessins 2D ou 3D comme Illustrator, Maya...).

Dans ce qui suit je ne classe pas Silverlight et WPF non pas que je n’accorde plus de valeur à ces environnements (au contraire) mais tout simplement parce que j’envisage l’avenir et ce qu’il faut apprendre pour ne pas être largué. Silverlight et WPF sont déjà dans le champ de mon expertise, quoi que leur réserve l’avenir je suis prêt. Je vais donc m’intéresser plutôt à ce que je ne suis pas tout à fait préparé, comme beaucoup de lecteurs.

6 solutions possibles…

Me voici, comme vous, devant pas moins de six solutions possibles ! Puis-je prétendre être un expert dans les 6 à la fois ? Non. Puis-je passer mon temps à tester et jongler avec autant d’OS, de langages, de librairies, de trucs et astuces à connaitre pour chaque form factor ? Non plus.

J’en reviens donc à la stratégie de l’impasse… Quelles sont mes réelles préférences, qu’est-ce qui m’indiffère et comment rationnaliser mon approche ?

Mes préférences sont claires, je préfère très largement .Net, C #, Xaml, Visual Studio et Expression Blend que tout le fatras d’outils et de langages qu’offrent la majorité des solutions listées.

Qu’est-ce qui m’indiffère le plus ? L’Apple-mania, Linux. Question de choix personnels. Rappelons que je vous livre ici mon cheminement de pensée car c’est cheminement qui peut vous aider, mes conclusions, mes « j’aime » et mes « j’aime pas » me sont strictement personnels, à vous de bâtir votre propre réflexion en partant de vos sensibilités !

Classer les choses en terme de préférences instinctives, je l’ai dit, ce n’est pas rationnel. Je vais tenter d’ajouter des points objectifs pour tenter un classement des solutions.

L’investissement

Finalement c’est un point essentiel. Faut-il le compter en premier ou en dernier, peu importe, en tout cas l’investissement humain et financier pour atteindre un niveau d’expertise respectable dans chaque solution qui s’offre à moi est un facteur crucial.

Je vais donc, en toute honnêteté, tenter d’attribuer un poids à l’investissement qu’il me faudrait faire pour atteindre l’expertise nécessaire dans chaque contexte.

L’investissement financier

Il est assez facile à comptabiliser et j’ai voulu prendre un barème simplifié. Je considère que pour une plateforme donnée, un form factor donné, il me faut au moins une machine « native » pour développer ou tester les logiciels. Par exemple si je vise les tablettes Android il faut que j’en achète au moins une… se contenter de l’émulateur n’est pas professionnel, sous aucun environnement. Idem pour des OS comme Ubuntu, le faire marcher dans une machine virtuelle va bien pour un test, pas pour développer, il faut mobiliser une machine.

Je ne prend pas en compte ici les machines que j'e possède déjà, c’est un investissement qui serait à ventiler selon mes choix.

J’ai ainsi considéré le cout d’acquisition du matériel en hecto Euros, échelle qui se calle le mieux sur le prix moyen de tous les form factors (par exemple 8 pour une machine aux environs de 800 euros).

L’investissement humain

Il est difficile à quantifier en jours une formation sur des plateformes aussi diverses. Je préfère une approche plus globale. J’ai choisi le pourcentage de choses à connaitre pour arriver à l’expertise. Par exemple sur Silverlight en Intranet ce pourcentage est proche de 0% (pour moi), pour du Silverlight sous WP7 je considère qu’il me manque encore 5% de connaissances pratiques pour être au top (investissement que je ne fournirait pas en raison de la fin de WP7 et de son mode de programmation particulier qui passera à WinRT sous WP8, mais c’est une autre histoire).

Le tooling

C’est bête mais je n’envisage pas, sauf sous la contrainte, de travailler avec des outils de développements mal fichus. C’est triste, mais quand on est habitué à Visual Studio on est un peu handicapé : tous les autres environnements paraissent moins bien. Malgré tout il faut bien attribuer un poids à ce tooling. Certains sont plus agréables que d’autres.

Il faut aussi intégrer la dimension de la qualité. On peut ne pas avoir un grand amour pour certains langages mais leur reconnaitre une qualité correcte. Par exemple je n’ai jamais aimé Java, j’aimais beaucoup Delphi, j’ai adoré C#, mais Java et JavaScript ne m’ont jamais séduit. Cela se joue certainement à peu de chose pour Java tellement C# en est proche. Mais c’est comme ça, c’est mon sentiment. Je dois en tenir compte. Sans pour autant dévaloriser des langages comme Java qui sont parfaitement utilisables.

Comme je ne voulais pas écrire un livre sur cet aspect des choses, j’ai décidé d’attribué aussi un pourcentage.  Un pour mes préférences, un pour les qualités intrinsèques des outils disponibles sur une plateforme donnée.

Découpage des solutions

Le découpage proposé plus haut n’est pas assez fin pour dégager certaines tendances. J’ai donc re-segmenté là où cela me semblait nécessaire.

J’ai supprimé Silverlight et WPF du tableau puisque j’ai déjà l’expertise, ce qui n’est pas forcément le cas de tout le monde (il s’agit bien de ma vision des choses et de mon cas personnel, à adapter donc !)

 

Solution/ notes

Invest. Machines

Cibles

Invest.
Formation

Invest/Cible

Inversion (1/x)

Intérêt

Tooling

Total * 100

iOS

12

2

1,0

6,0

0,17

0,2

0,4

1,36

WinRT C#/Xaml

12

3

0,2

0,8

1,25

0,6

1,0

75

WinRT Html/JS

12

3

0,8

3,47

0,29

0.2

1,0

5,8

Android

7

2

0,9

3,15

0,32

0,5

0,4

6,4

Ubuntu

10

1

0,9

9

0,11

0,1

0,5

1,15

Ubuntu sur Android

17

3

0,9

5,11

0,19

0,3

0,5

2,85

L’investissement par cible est calculé comme suit :

(investissement machines divisé par le nombre de cibles visées) multiplié par le pourcentage de l’effort de formation.

Ce sous total représente une charge (investissement humain et financier pondérés par le nombre de cibles offertes par la solution). Plus la charge est grande, plus le résultat est grand. C’est tout l’inverse d’une « préférence ». Il convient donc d’inverser ce résultat pour pouvoir continuer les calculs en chaines. C'est-à-dire obtenir un nombre d’autant plus petit que la charge est grande. Sinon nous en arriverions à mettre en première place l’environnement le plus couteux et offrant le moins de cibles !

Une simple inversion (1/x) est donc calculée pour poursuivre les calculs. D’où la présence de la colonne Inversion

Le total final est multiplié par 100 pour le rendre plus lisible.

Le coût des machines est attribué en fonction des prix moyens. Pour iOS par exemple il faut compter environ 1200 euros pour acheter un iPad3 et un iPhone 4S. Pour WinRT il faut sensiblement le même investissement (tablette ARM Win8 + téléphone WP8). Pour Ubuntu je compte le prix d’un PC correct mais sans plus (1000 euros) alors que je ne le compte pas pour Windows 8 tout simplement parce que je suis déjà équipé Windows et que si je devais faire du Linux demain je serai obligé de garder mes machines Windows dans tous les cas, donc d’investir. Alors que la majorité de mes machines Windows 7 passerons en Windows 8 sans surcoût matériel. Ce choix est discutable dans l’absolu, mais je rappelle un fois encore que je prends en compte ma situation et non pas celle de monsieur tout le monde. Pour un lecteur qui ne ferait que du Linux et qui n’aurait aucun équipement Windows la situation serait inversée. Mais je crois que ma situation reflètera correctement celle de la plupart des lecteurs de DotBlog malgré tout.

Le nombre de cibles est un simple constat. WinRT couvrira les PC, les tablettes et les Smartphones WP8, donc 3 cibles. iOS couvre deux cibles (iPad et iPhone). Android couvre aussi deux cibles (tablettes et Smartphones). Ubuntu ne couvre qu’une cible (le PC) en faisant abstraction des déclinaisons (PC de bureau, PC serveur…). Ce cas reste toutefois discutable car l’intégration prochaine d’un module Ubuntu dans Android pourrait ajouter deux cibles de plus à cette solution et donc lui faire gagner quelques points.

And the winner is…

En fait, il n’y a pas de gagnant à ce “jeu” là… Il s’agit pour l’essentiel de choisir entre la peste et le cholera en faisant le moins mauvais choix pour l’avenir…

 

Solution

Total

WinRT C#/Xaml

75

Android

6,4

WinRT Html/JS

5,8

Ubuntu + Android

2,85

iOS

1,36

Ubuntu

1,15

Ce tableau est classé en ordre décroissant, plus une solution se trouve en haut plus elle mérite de l’intérêt.

Reste un point essentiel : le ROI.

ROI : comment le prendre en compte ?

On peut lire tous les comparatifs sur les différents market places, on peut essayer de deviner les chiffres qui ne sont pas publiés… Cela risque d’être très long et pas forcément plus juste que les certitudes faciles à connaître…

Ainsi, entre Android et iOS on sait que le market place de Apple est plus rentable pour les développeurs. Dans quelle proportion ? Sur quelle(s) catégorie(s) de logiciels ? c’est plus difficile à savoir.

Premier constat, dans notre tableau final les deux solutions sont si éloignées que quelques pourcents de rentabilité en plus ou moins pour Apple ne changera visiblement pas l’ordre obtenu.

Concernant Ubuntu, il se noie aujourd’hui dans les diverses moutures de Linux. Faisant abstraction des serveurs Web, Linux avance mais est loin de concurrencer Windows. Là encore prendre en compte les pourcentages ne changerait rien dans l’ordre du tableau tellement l’écart entre les solutions WinRT et Ubuntu sont éloignées. Surtout qu’ici nous parlons ROI et non pas pénétration du marché. Le ROI sous Windows reste évidemment bien meilleur que sous Linux et sous Ubuntu en particulier.

Pour WinRT lui-même il est difficile de prévoir son succès et son adoption… c’est même un grand point d’interrogation. Windows 8 pourrait connaître le sort de Vista… sur PC. Mais cela n’empêchera certainement pas les tablettes Windows 8 ou les Smartphones WP8 de se vendre correctement. Et comme tous les PC récents seront bientôt livrés sous WinRT, cela fait tout de même quelques centaines de millions d’utilisateurs potentiels à venir. Donc un ROI qui devrait être correct.

On notera aussi qu’il s’agit ici de choisir un axe, une direction pour l’avenir. Ce qui est déjà connu aujourd’hui n’entre pas dans le tableau… Je suis déjà un expert en Silverlight et en WPF. Si Windows 8 faisait un flop et que Silverlight et WPF soient utilisés encore plus qu’aujourd’hui, je suis déjà bien placé pour gérer cette possibilité. Encore une fois c’est mon raisonnement se basant sur mes compétences et mes connaissances, à chaque lecteur d’adapter tout cela en fonction de son cas !

Conclusion

Dans mon cas personnel, mes calculs m’indiquent que WinRT sous C# et Xaml est le meilleur choix. Celui qui me demande le moins d’investissement en formation ou en matériel, celui qui touche le plus grand nombre de cibles. Mais aussi celui qui m’offre le meilleur tooling, et qui est le plus proche de ce que j’aime bien faire.

Mais étonnement, ce même tableau me dit qu’ensuite j’ai tout intérêt à m’intéresser à Android bien plus qu’à WinRT en Html / JS ! Et finalement j’avoue que cet « avis » qui ressort du tableau me semble pas si idiot. Je vais donc le suivre. Quitte à fournir un effort d’apprentissage mieux vaut s’ouvrir un nouveau marché et de nouveaux clients que de rester à tourner autour du pot WinRT.

De même iOS se trouve en queue de tableau avec Ubuntu. Cela ne m’étonne pas, je n’y connais rien et je n’ai pas envie d’en savoir plus sur le monde Apple. Je n’aime pas Apple depuis longtemps, car justement j’ai déjà été client Apple et développeur sous Apple. C’est en connaissance de cause que je fuis la pomme donc. Le tableau ne fait que traduire ma forte subjectivité malgré des efforts d’objectivation.

Mais à tout prendre, le tableau m’apprends qu’il est beaucoup plus important de s’intéresser à Ubuntu en couple avec Android. Et là encore, dans l’absolu je trouve le conseil assez sage… Un tel mariage redonne beaucoup d’intérêt à Ubuntu.

Empêtré comme vous tous dans ce grand moment de solitude autour de la mort, il faut bien le dire, du marché Silverlight (pas du produit, pas de la techno, mais du marché) et même si je pense qu’une fois que le buzz Html 5 sera passé les gens reviendront peut-être à Flash et Silverlight (parce que ç marche, c’est cross browser et que le tooling est au point), il est temps de prendre aussi compte ce qui va venir et qui va modifier notre métier.

La poussée incroyable en si peu de temps d’Android sur les tablettes et les Smartphones ne peut être balayé d’un retour de manche. Pas plus que la sortie de Windows 8 qui se veut le grand unificateur sur tous les form factors avec WinRT.

Apple et son alléchant marché peut en tenter plus d’un, avec raison.

Que faut-il faire ? Sur quoi se former aujourd’hui pour être dans le coup demain ? Sur quoi faire l’impasse sans le regretter ?

Bien entendu mes petits tableaux ne sont qu’une excuse pour parler de tout cela, faire remuer en vous toutes ces possibilités.

En rien les conclusions de mes tableaux ne sont à prendre à la lettre. Elles ne peuvent pas même s’appliquer à quelqu’un d’autre que moi, et bien entendu, moi-même je ne prends pas que cela en compte pour mes choix futurs…

L’idée était de vous faire voyager dans toutes ses solutions en offrant une sorte de méthode qui, même si elle n’est pas absolue, vous permettra de mettre en évidence un ordre, une priorité à laquelle vous ne seriez peut n’être pas parvenue juste en y pensant comme ça.

C’est, comme toujours, le voyage qui compte bien plus que le site touristique qu’on prend en photo à l’arrivée. C’est en cheminant qu’on avance, lapalissade s’il en est, mais les portes ouvertes sont souvent celles qu’on oublie le plus souvent de franchir !

Réfléchissez-bien, pour DotBlog vous commencez à vous faire une idée des prochaines directions…

Stay Tuned !

Comments (31) -

Nicolas Esprit
Nicolas Esprit
3/30/2012 1:00:06 AM

Très intéressant cette vision des choses ! Sympa de partager test réflexions.

Guillaume Meyer
Guillaume Meyer
3/30/2012 9:08:47 AM

Très bel article, et je partage une grande partie de tes analyses.

Ceci étant, je voudrais relativiser l'assimilation que tu fais entre html/js (sans WinRT) et les applications grand public. En effet, quand j'analyse en détail les choses, je suis convaincu que le couple HTML5/JS va prendre petit à petit sa place dans le paysage des applications et projets d'entreprise.
Pour deux raisons :
1 : Le mode SAAS qui progresse et qui pousse naturellement à des déploiements légers (sans plugins)
2 : Les éditeurs pro qui poussent vers ces technos comme MS et maintenant SAP !
Pour ma part, j'utilise HTML5/JS abondamment dans des projets pro, notamment SharePoint

En tout cas merci pour cette belle matière à réflexion

Paul TOTH
Paul TOTH
3/30/2012 9:16:58 AM

Si Embarcadero tient ses projets, tu vas pouvoir venir sur Android avec Delphi XE3, un joli retour sur investissement ;)

odrix
odrix
3/30/2012 9:51:08 AM

Article intéressant, mais qui commence à m’inquiéter de voir de plus en plus d'articles justifiant le choix de faire des appli natives (notamment en .NET) par rapport à l'HTML5.
Est ce une sorte de cri de désespoir ou l'HTML5 n'aura pas l'avenir qu'on lui prédit ?
mais c'est vrai que c'est dernière année on as vu beaucoup de langage réapparaitre (redevenir à la mode) et d’outillé en force : php avec Zend, ou Symfony, RoR, toute les lib JS, python avec Django, mais aussi le monde Apple, Silverlight/WPF, ...
Wait & See :p

Olivier
Olivier
3/30/2012 1:32:07 PM

@Nicolas: merci..

Olivier
Olivier
3/30/2012 1:39:58 PM

@Guillaume: Html est un vieille technologie qui ne disparaitra pas. Elle évolue un peu de temps en temps mais reste le socle pour fournir de la page web.
Depuis très longtemps on sait faire des "applications" utilisant html, notamment avec des outils merveilleux comme ASP.NET.
Tout ça on sait le faire depuis longtemps et on continuera à le faire. Tout simplement parce que cela répond grosso modo à certains besoins.
Mais il y a un monde entre cracher de la page Web connectée à Sharepoint ou à des applis ASP.NET (qui reposent sur de _vrais_ logiciels écrits avec de _vrais_ langages, plateformes, outils...) et dire qu'on peut écrire Illustrator ou une compta analytique uniquement avec Html et JavaScript.
C'est le passage du status de page web à application qui ne va pas et qui obligeait à renier tout ce qui a été inventé en 20 ans.
Html 5 comme couche de présentation c'est nul comparativement à du Xaml par exemple, mais pourquoi pas. Dommage de perdre le binding au passage quand même.
Quand j'étais très jeune j'ai écrit de grosses applications uniquement en Basic interprété sous CP/M ... je sais donc que c'est possible...
Mais je n'ai pas fait ce métier pour refaire en 2012 ce que je faisais en 1979... Sinon j'aurai choisi boucher charcutier.

Olivier
Olivier
3/30/2012 1:41:55 PM

@Paul: en effet, j'attends de voir un peu ce que donnera XE3, car à tout prendre je préfère faire du delphi sur Android que d'utiliser leur plateforme imbuvable !
Et c'est une façon intelligente de recyclé mon savoir faire sur ce langage Smile
J'ai cru un moment à MonoDroid mais je ne trouve pas cela abouti, et ça ne tient qu'à un fil.

Olivier
Olivier
3/30/2012 1:46:06 PM

@odrix: si on considère l'informatique comme le marché de l'habillement, alors oui, il y a des modes, certains trucs jugés ringards un jour deviennent hyper mode le lendemain.
Mais si on considère l'informatique comme une science, alors il n'est pas possible de faire en 2012 des applications avec des outils qui datent alors même que 20 de recherche et de progrès sont passés par là.
Databinding, xaml, C#, Linq, Entity Framework, etc, je me vois mal reprogrammer aujourd'hui sans ces avancées majeures.
Et JavaScript n'est tout simplement à niveau. Html non plus.
Essaye de reprogrammer Illustrator ou Photoshop en Html / JS et puis après on verra si ton avis reste le même...

PierreMF
PierreMF
3/30/2012 2:09:51 PM

"On sait que sous WP8 c’est WinRT qui deviendra la nouvelle plateforme de développement"

Ah bon ? C'est officiel ça ?

Sinon je trouve qu'il manque une colonne dans le tableau, c'est la colonne "standard". Est-ce que la techno est un standard, ou bien est-elle propriétaire ? Devant le foisonnement de technos propriétaires qui disparaissent au bout de quelques années (SL, Flash, WPF?, ...), investir sur une techno éprouvée et supportée par plusieurs éditeurs est un choix approuvé par de plus en plus de monde (HTML, Javascript, C++, Java...)

Olivier
Olivier
3/30/2012 4:25:57 PM

@Pierre: officiel officiel je ne saurais l'affirmer, mais tout ce que j'ai pu lire de gens bien informés aux USA le confirme, certains parlant de sources officielles mais je n'ai pas pu vérifier moi-même.
Ca tombe sous le sens de toute façon. Windows 8 se veut une unification. Il serait étrange de sortie un Windows 8 pour téléphone qui macherait comme un WP7.
J'ai déjà entendu de longues dates les mêmes affirmations de gens de chez Microsoft France qui allaient dans ce sens là aussi.
Tout porte à croire que c'est en effet quasi certain.

Quant à mes tableaux, comme je l'ai dit c'est plus une excuse pour discuter de tout cela qu'une étude scientifique complète...
A chacun d'y ajouter les colonnes qui lui semblent pertinentes.

De mon point de vue la notion de standard dans notre métier est totalement artificielle et n'a aucun intérêt pour savoir vers quoi se former (sujet du billet). Des standards je peux t'en citer des pages entières cela ne t'aidera pas beaucoup à choisir ! Java et C++ ne sont d'ailleurs pas plus des standards que C# qui est ECMA... Et reprendre des standards qui ont 20 ans de retard est-ce bien raisonnable ? Je pourrais aussi te dire que Cobol est un standard... C++ est à C# ce que le Cobol est à VB hein...
Et puis il faudrait faire ensuite la différence entre standard de fait et standard d'organismes pseudo officiels.
Html, de base c'est standard. Html 5 ça tente d'être un standard mais la norme n'est toujours pas terminée, et dans les faits c'est un leurre : pas un browser n'implémente le même niveau de fonctionnalité, comme toujours avec html faut-il préciser.
Sur le papier c'est un standard en devenir, dans les faits c'est un foutoire...

Et ce ne sont pas les quelques démos de petits jeux ridicules utilisant le canvas qui vont y changer grand chose pour l'instant. Cela montre que Html 5 est tout juste au niveau de Silverlight 1.0. J'attends qu'il soit au niveau de Silverlight 5 pour m'y intéresser...

La notion de standard est totalement bidon dans notre profession. Je préfère du Flash ou du Silverlight qui sont au top niveau et qui sont réellement cross browser qu'un pseudo standard comme Html qui réclame plus de code pour gérer les différences entre browsers que code efficace...

Mais tout cela est personnel. Si tu juges que ce critère a un sens puissant pour ton avenir professionnel, alors ajoute une colonne au tableau, ce que je voulais montrer c'est un technique pour aborder ce difficile problème du choix et non imposer ma vision des choses.

L'essentiel c'est que cela puisse t'aider et que tu sois ensuite heureux de ton choix sans le regretter !

Aude
Aude
3/31/2012 5:00:21 PM

Salut Olivier,

Contente d'avoir eu ton avis sur ce sujet.
Par contre, un truc me chiffone un peu. Dans la première partie, tu expliques faire le choix du monde de l'entreprise façe au Grand Public (pour des raisons que je partage totalement).

Au final, ton choix prioritaire se porte sur WinRT avec, bien évidemment, le couple C#/XAML.
Mais je vois pas bien la place que se fera WinRT dans le monde de l'entreprise personnellement.

Développé une application Metro Style, ça implique de passer par le Store de Microsoft, de reverser 30 % des revenus à MS, ... C'est trés (trop?) fermé.
Le seul avantage est d'avoir une application qui sera à la fois utilisable sur PC, Tablette et, si MS va au bout de la logique, sur téléphone avec Windows Phone 8. Mais bon, MS ne serait pas à sa première décision défiant toute logique lol

Personnellement, je pense que Windows 7 va être utilisé encore de nombreuses années en entreprise et que WPF se placera naturellement en meilleure solution pour faire une application Entreprise.

Après comme tu le dis, en terme de formation, WinRT avec le couple C#/XAML ne coutera pas grand chose si on est déjà habitué de WPF / Silverlight. Ca va pas demander un lourd investissement humain.

Sinon, sur un autre sujet, je connaissais pas MonoDroid, rebaptisé Mono For Android récemment. C'est pas terrible ?

Romain
Romain
3/31/2012 8:56:36 PM

Bonjour,
Tout d'abord félicitation pour ton blog, je le suis régulièrement.
Ça fait quelques mois que je me forme au c#, principalement sur silverlight, ce qui fait de moi un débutant en programmation. La problématique que tu soulève dans cet article est intéressante, et je voulais savoir si l'apprentissage du C++ (notamment le couple C++/XAML) était pertinent.

Olivier
Olivier
4/1/2012 11:14:08 AM

@Romain:
Si tu ne connais pas c++ je ne vois pas d'intérêt direct à te former à ce langage pour travailler sous WinRT avec Xaml. C# est bien plus moderne et puisque tous ces langages sont gérés au final de la même façon par la plateforme, autant prendre celui qui est le mieux approprié.
D'autant que tu trouveras sur le web dès aujourd'hui et encore plus demain beaucoup plus d'exemples de codes en C# qu'en C++ ce qui est un point à ne jamais négliger.
C++ n'a été réintroduit que sous la pulsion de Sinofsky qui est un ringard. Mais ce langage n'intéresse plus grand monde. Utilise des valeurs sûres comme C#/Xaml ou bien, si tu veux absolument te former au "truc à la mode" utilise le couple Html5/JS (en sachant que le Html5 de WinRT ne fonctionne pas pour faire du web et qu'il présente des différences importantes avec le vrai Html5, ce qui, à mon sens, en détruit tout avantage).

Olivier
Olivier
4/1/2012 12:17:21 PM

@Aude: Tu as raison, il y a un paradoxe apparent entre conclure qu'il faut s'intéresser à WinRT et commener par dire que le marché grand public n'est pas forcément le plus porteur.

Mais ce n'est qu'apparence. Le but de la réflexion était de se demander "sur quoi se former aujourd'hui".

Pour ma part, et comme beaucoup de lecteurs de Dot.Blog je considère que la connaissance de Silverlight et WPF est acquise à un niveau plus ou moins grand d'expertise. Dès lors se former à ces plateformes n'est plus d'actualité, nous savons les faire fonctionner.

Si on reste sur le fait que l'avenir de Windows est la version 7 ou le bureau classic de Win8 en entreprise au moins, et qu'on dit qu'on évite le grand public, force est de constater que nos connaissances actuelles devraient nous suffire (je crois que WPF aura une carte importante à jouer dans ce cadre).

Du coup, nous n'avons rien à apprendre et on peut rentrer se coucher...

Or nous le savons aussi, même si Win8 devait être un échec partiel sur PC (surtout Metro Style) et principalement en entreprise, il n'en resterait pas moins vrai que Windows étant ce qu'il est et vu sa distribution, cela fera malgré tout pas mal d'utilisateurs (tablettes certainement). Et si WP8 tient ses promesses le couple téléphone/tablette pourrait en revanche séduire les entreprises qui utilisent pajoritairement du MS, alors même qu'on sait qu'aux USA le BYOD est à la mode avec l'IPad... (Bring You Own Device).
Du coup les entreprises pourraient être intéressées non pas spécialement par Win8 en desktop Metro Style mais par la cohérence avec les outils de dev Microsoft et la portabilité de WinRT entre tablettes, smartphones, et éventuellement PC sous Metro Style.

Et c'est là que je pense que nous pouvons rentabiliser nos compétences Silverlight / WPF en investissant sur WinRT et en proposant aux entreprises des solutions nouvelles. Des applications WinRT pour tablettes ARM par exemple connectées aux données de l'entreprise. La cohérence d'une solution totalement MS avec les mêmes langages (C#, Xaml) les mêmes outils (VS, Blend) peut, à mon sens, trouver un écho favorable.

Dans ce cadre là, s'intéresser à WinRT n'est plus si paradoxal.
D'autant que comme tu le soulignais, cet apprentissage pour des gens connaissant SL/WPF ne sera pas très compliqué.

Concernant MonoDroid (Mono for Android maintenant tu as raison, et MonoTouch sur Apple) le problème n'est pas que ce n'est "pas terrible".
D'une part il est vrai que ce n'est pas très avancé côté gestion de l'UI mais ça c'est un peu l'archaïsme de Android et d'iOS (quand on sait la richesse de Xaml)... Le problème est surtout que Mono for android est comme Mono... un projet que Novell à laissé tomber à moitié, et Xamarin n'est qu'une boite créée par un homme seul, l'initiateur de Mono, qui espère faire route de son côté avec des versions spécialisées de Mono. Il est trop isolé pour qu'on puisse avoir confiance dans l'avenir de ses solutions sur des produits aussi stratégiques que sont les outils de dev.
Sinon, C'est une solution pas idiote pour faire de l'Android et de l'iOS sans lâcher C#...
De même que j'évoque Ubuntu dans mon billet et que sans se lancer sur c++ et décortiquer le noyau de Linux, il existe Mono sur Linux, là encore nous n'avons pas grand chose à apprendre pour être opérationnel...
Même delphi Xe3, pour les vieux delphistes comme moi, peut s'avérer une bonne solution de dev pour Android sans se casser les pieds avec l' environnement très primitif de Google.

Bref, nous sommes dans un passage à vide, une période de mutation incertaine. Mais ceux qui vont rester les bras croisés sont certains d'être en retard lorsque le brouillard se sera dissipé.

La réflexion que je propose dans ce billet, et l'éventuelle direction WinRT, permet à chacun de nous de s'interroger peut-être plus rationnellement sur toutes ces directions possibles pour en choisir une ou deux et s'y préparer dès maintenant afin d'être dans le coup le moment venu. Certainement vers la fin 2012 début 2013.

C'est une attitude plus positive que de faire le gros dos et d'attendre que ça se tasse... Les premiers formés ont souvent plus de chance d'être ceux qui dirigeront les trainards et qui rafleront les bonnes opportunités, et on a tous besoin de se positionner au mieux pour gagner notre croute, salariés ou indépendants !

Christophe Argento
Christophe Argento
4/2/2012 2:45:47 AM

Très bon article avec une bonne manière de voir les choses comme d'habitude sur ce blog. Cependant j'ai l'impression qu'il y a un grand absent de ton analyse: le développement purement web. Avec html5 + C# et ASP.Net MVC, avec l'essor des solutions SAAS il permet aujourd'hui d'adresser la totalité des form factors et des OS tout en conservant les investissements déjà faits sur c# et le framework .Net.  

Marc
Marc
4/2/2012 1:42:42 PM

L'analyse est bien faite je partage pas mal de points de vue.
En tant qu'editeur de logiciel, je me pose les memes questions depuis un bon moment.
J'ai des client utilisant un mac a qui je demande d'installer parallel desktop ;)

Je pense qu'il manque une colonne dans le tableau, c'est la facilité de mise en oeuvre de l'interropérabilité.

Mon orientation pour l'instant c'est de m'investir de plus en plus sur Asp.Net MVC4 et de porter tout ce que j'avais comme services WCF en WebApi (Service REST) , je garde les memes applications pour l'instant je change juste de protocole et j'attends de voir venir.

A ce stade je suis tenté d'utiliser HTML5 pour la partie cliente. ça me regle le pb du form factor, et le versement à un market. En contrepartie mon application perdra obligatoirement en tout cas à court terme en ergonomie (difficile à faire passer à mes clients)

Disons pas d'impasse, mais un gros mur à franchir.

Olivier
Olivier
4/2/2012 6:24:15 PM

@Christophe: Tu as raison, je ne parle pas du Web, c'est un choix assumé.

J'ai déjà parlé, fait des confs, écrit dans des bouquins, sur ASP.NET, comment faire des composants avec, etc, il y a si longtemps...

Ca ne m'excite plus. C'est vieux. Je sais en faire, c'est bien. Aujourd'hui bien entendu que ASP.NET est un excellent choix. Mais j'ai l'impression d'avoir tout dit sur le sujet il y a presque dix ans de cela...

Quant à html/js/css, bof... c'est encore plus vieux. C'est une vieille voiture maquillée qu'on nous propose aujourd'hui. Un truc de garagiste véreux. Ca ne me branche vraiment pas. Ca, c'est même pas il y a dix, c'était il y a 20 ans que j'en parlais..

Bref, sans Silverlight le web ne m'intéresse pas.
Et ce n'est pas un canvas miteux et encore et encore du javascript et ce bricolage odieux qu'est CSS qui risquent de faire vibrer le geek que je suis...

Je n'ai donc rien à en dire de bien passionnant sur le sujet pour les lecteurs de Dot.Blog, c'est d'ailleurs pourquoi je n'en ai pas parlé Smile

Olivier
Olivier
4/2/2012 6:45:42 PM

@Marc: Comme je le répondais à Christophe, ASP.NET reste la seule solution propre pour faire du Web en ce moment en gardant un frontal Html standard.
Tes choix "d'attente" me paraissent donc sensés.

Refaire les UI en html5 pour la portabilité ?

Mais la portabilité avec quoi ? Le problème c'est qu'aujourd'hui les nouveaux form factors que sont les Smartphones et les tablettes, ça ne marche pas vraiment comme un PC où il est simple d'ouvrir un browser et de voir une "appli" web.

En réalité, aller sur le net avec un smartphone c'est un pis aller quand on se déplace mais guère plus. C'est un peu mieux sur une tablette je l'avoue.
Mais sur ces machines, pour avoir une vraie appli il faut développer en natif... sinon l'utilisateur a une expérience vraiment mauvaise. Il faut appeler le browser, bricoler pour trouver les favoris, appeler le site, taper deux fois sur l'écran pour agrandir un peu ... s'il y a de la frappe l'écran virtuel mange la moitié de la page...
Bref c'est pas le pied.
Surtout comparé à des applis natives, que ce soit Android, iOS ou WP7.

En réalité je vois mal l'intérêt de Html 5 alors même que toutes les nouvelles machines nécessitent des développements natifs qui n'utilisent pas html d'ailleurs !
C'est du xaml ou de la copie de xaml (du xml bricolé).
Rien n'est portable. Il faut choisir son camp, Apple, Google ou MS.

Autant Html pouvait être vendu comme "the" solution de portabilité il y a dix ans, quand il y avait la question de faire des applis qui tournent sur PC mais aussi sur Mac et éventuellement Linux.
Là oui, ça avait un sens. Mais la techno n'était pas vraiment prête (l'est-elle aujourd'hui d'ailleurs ? j'en doute sincèrement).

Mais l'arrivée des smartphones et des tablettes changent complètement la donne ! Html n'est absolument pas une solution portable acceptable en terme d'UX.

Du coup, personnellement, j'ai plutôt tendance à dire : ASP.NET en Html 3 ou 4 ajaxisé (peu importe comment on appelle ça pour être à la mode) pour tout ce qui est appli web, sans oublier que ces "applis" web sont très limitées en réalité (et nécessitent des serveurs à la hauteur).
Et pour le reste, il faut choisir son camp et se concentrer sur une techno. WinRT chez MS, ou Android ou iOS. Vouloir être expert dans les trois me semble peu raisonnable.
D'où le questionnement de ce billet qui, je le constate, trouve écho chez beaucoup de lecteurs...

On peut ajouter une colonne "facilité de mise en oeuvre", "interop" ou "portabilité" dans mes tableaux.
Comme je le disais dans le billet c'est un exemple à personnaliser selon les critères que chacun juge essentiel dans sa pratique du développement.

Mais je crains qu'il n'y ait que peu de réponses objectives à ces problématiques.

Html 5 ou 50 ne règle rien en matière de portabilité sur les smartphones et les tablettes. Aller sur le web avec ces machines n'offre pas une UX équivalente aux applis natives. Et pour le développeur il y a toute une différence entre diffuser un exécutable ou mettre en place pour chaque appli une ferme de serveurs rapides pour ne pas décevoir les utilisateurs...

Bref, on est dans une situation d'attente, pas une impasse en effet, juste on fait du sur place, on s'agite un peu pour dire qu'on est vivant, mais dans la réalité on attend tous qu'il "se passe quelque chose" ...
Quoi ?
"que ça se tasse", "que ça passe", "qu'un truc vraiment excitant sorte" "que WinRT soit un succès" que "WinRT se plante et que SL revienne", bref, n'importe quoi mais qu'il se passe enfin quelque chose offrant un peu de visibilité et surtout de la passion et de l'excitation car là, bof, on s'ennuie ferme en attendant le messie...

Jean-Marie Stawikowski
Jean-Marie Stawikowski
4/3/2012 12:27:25 PM

Je partage entièrement la vision d’Olivier, c’est-à-dire que pour moi le futur développeur d’applications  logicielles de type interface graphique clientes (PC, Tablettes, Smartphones, TV…)  n’auras plus que 4 choix :

1) HTML 5/JavaScript pour faire de pages web universelles = Applications graphique très pauvres.

2) iOS/Objective-C pour faire des Applications Apple Store = Applications très riches.

3) Android/Java pour faire des Applications  Google  Store = Applications très riches.

4) Windows 8 / C# / F# pour faire des Applications  Microsoft  Store = Applications très riches.

En fait il ne restera que 3 plateformes de type interface graphique clientes est ceci pour longtemps, c’est-à-dire : iOS, Android et Windows 8.

Je pense également que les problèmes des futur développeurs d’applications  logicielles de type interface graphique clientes, tel que les Tablettes, Smartphones et TV, sont la sécurité des données personnelles, c’est pour cela que le web riche (HTML5++) va disparaitre au profit des applications  de type "Applications  Store exclusifs", bien sûr il restera HTML5 pour les pages web pauvres.

Je pense que les solutions d’interopérabilité ce feront essentiellement sur les Data et le Cloud, voir par exemple le site Open Data Protocol (OData)  http://www.odata.org/

Donc: OData * ( iOS + Android + Windows 8 )

Olivier
Olivier
4/3/2012 6:49:31 PM

@Jean marie: on est d'accord.

Html ne sera que pour le web, c'est à dire des choses pauvres par essence (sauf rares exceptions), et pour le reste le choix va se durcir pour le développeur.

Dans un billet ancien j'avais déjà évoqué ce durcissement, le fait qu'il allait falloir "choisir son camp". C'est bien ce qui ce réalise.

Html 5 en tant que norme universel est mort avant même que le tooling soit à la hauteur...

L'émergence des marchés smartphones et tablettes tue cette universalité car ces machines ne sont pas basées sur un browser mais sur dev natif...

Le développeur jusqu'il y a peu pouvait tout ignorer et se concentrer sur les technos MS. Le monde entier était PC, donc Windows (a part marchés de niches).

Aujourd'hui le marché éclate avec des OS différents, des langages différents, trois grand blocs aussi forts les uns que les autres.
Il va être difficile d'ignorer iOS dans l'avenir, tout comme Android. A la limite il n'y a que Win8 qui n'a pas encore prouvé son existence sur le marché qui pourrait être zappé.. Mais il ne faut pas sous estimé MS malgré tout...

Donc 3 OS, je dirais même 4 puisque MS vient de créer Win8, le seul OS à double effet kisskool, Metro Style et le bureau classique qui va vivre longtemps (puisque seul moyen d'échapper au market place et d'écrire des softs hors sandbox).

Pour l'interop, c'est le cloud, en effet. C
omme stockage de données, pas tellement pour les applis je n'y crois pas (et quand on voit les études récentes le cloud est le cadet des soucis des DSI...).

En fait c'est ce qui se passe déjà maintenant : sur mon smartphone je fais une photo, elle synchronisée automatiquement avec ma DropBox, je peux l'afficher sur mon PC Windows, sur ma tablette Android...
J'écris un doc word sur mon PC Windows, je le pose dans dropbox et je peux le corriger sur mon téléphone ou ma tablette.

On a même ce genre de synchro totalement intégrée à l'OS avec Android, quand je fais une photo elle est envoyée automatiquement sur Google+. Je peux prendre une photo avec ma tablette, la retoucher sur mon PC et décider plus tard de la partager depuis mon téléphone.

Ca marche, c'est efficace, ça va se généraliser de façon évidente.

Mais côté développement, 'choisir son camp', c'est tout l'objet de ce billet, ça ne va pas ête simple car choisir c'est aussi éliminer des solutions, faire des "impasses"... et il ne faudra pas se tromper !

Christophe Argento
Christophe Argento
4/4/2012 6:49:13 PM

Je vous trouve un peu durs avec le web. Je suis tout à fait d'accord que le html5 n'est nettement pas à la hauteur du xaml et que le gap est énorme. Tout à fait d'accord aussi sur le fait que le multi plateformes avec html soit un doux rêve. Mais de là à parler d'interfaces pauvres je trouve ça un peu rude. Les possibilités existent et certaines applications purement web n'ont rien à envier à des applications clientes très poussées. Les possibilités sont là. Le problème réside plus dans le tooling, l'implémentation partielle au jour d'aujourd'hui et la formation/capacité des développeurs à prendre tout ça en main.  

Olivier
Olivier
4/4/2012 7:52:54 PM

@Christophe: En fait tout dépend de ce qu'on entend par "application".

Honnêtement je n'ai pour l'instant jamais vu d'applis web (sauf en Silverlight) qui arrivent à la cheville d'applications desktop sophistiquées. Mais tout dépend du sens qu'on donne à application et à partir de quand on considère que c'est sophistiqué bien entendu.
C'est un débat difficile car basé sur des définitions très flexibles.

Et puis je pense que html 5 est un buzz finissant. L'universalité de html 5 a été fauchée en plein décollage par la montée très rapide des mobiles. Et sur les tablettes et les smartphones aucune appli Web même super bien faite ne peut rivaliser avec la qualité d'UX qu'offre une application native.
Et hélas pour les amoureux de Html et de JS, aucun OS mobile sérieux présent sur le marché ne se programme de cette façon...

Comme l'avenir est aux unités mobiles bien plus que dans le web, il est temps d'enterrer le buzz html 5... Surtout qu'au moment où on parle, le rêve d'universalité est terminé alors mêmes que le tooling html 5 n'est pas encore au point... Autant dire que c'est cuit et bien cuit. En tout cas pour le buzz. Html 5 vivra comme html 3 ou 4 et comme viendra un jour html 6. Des standards du web, incontournables mais toujours utilisés avec 2 versions en arrière pour être sûr de ne louper aucun visiteur... alors avant que Html 5 n'envahisse la toile, les informaticiens auront bien plus de taff à faire pour iOS, Android ou WP8...

PierreMF
PierreMF
4/6/2012 6:51:56 PM

En lisant les commentaires j'ai l'impression un peu caricaturale qu'à part C#/XAML, tout le reste est sans intérêt...

PierreMF
PierreMF
4/12/2012 4:04:32 PM

Un lien intéressant liste les langages de développement utilisés par les principales applications et sites Web. C/C++ est de loin le plus utilisé, même pour certains sites Web (Facebook, Amazon...), C# est inexistant. http://www.lextrait.com/vincent/implementations.html

pechaire
pechaire
5/29/2012 2:08:13 PM

Ayant la double casquette .NET / Delphi, que penses-tu de Delphi X2 : la portabilité Windows/Mac Os/IOs, peut-être Android bientôt, le tout en code natif, semble en faire 1 solution assez unique...
Borland (on peut espérér qu'Embarcadero maintienne leur philosophie) a toujours fourni de bons environnements et n'a a ma connaissance jamais abandonné ses clients, contrairement à d'autres...

Olivier
Olivier
5/30/2012 12:02:20 AM

@PierrreMF: c'est une question d'interprétation... la liste est intéressante, mais elle intégre Sun Solaris, HP-UX, ou Symbian, etc. C'est à dire des choses qui ne concernent pas le développement d'applications dans le contexte qui nous intéresse, notamment la mobilité. Symbian est mort par exemple ce n'est pas un OS "d'avenir" dans le mobile... Et je n'ai pas vu encore de téléphone ou de tablette en HP-UX ou en Solaris.
Alors si on considère tous les OS du marché, C/C++ est peut être le plus utilisé mais c'est une vision assez faussée de la réalité qui est toute autre.
Pour les marchés qui nous intéressent ici il y a 3 OS : Windows, iOS et Android. Le premier se programme en C# majoritairement ou en Java, iOS est "une sorte" de C (objective-C) et Android est une "sorte de" Java (ce qui lui a permis de gagné le procès qu'Oracle lui faisait depuis deux ans, car jamais le langage n'est appelé Java).
Donc trois plateformes, trois langages, et s'il fallait absolument trouver celui couvrant le plus de cas, Java arrive en tête (si on compte Windows 7 et précédents, ainsi que Windows 8 WinRT avec JavaScript).

Bref, mon but dans ce billet n'était pas de présenter tous les OS du monde même les plus exotiques mais bien les 3 seuls qui ont de l'avenir sur PC et sur plateformes mobiles.
Le C joue un rôle, mais ce contexte il est loin d'être majoritaire.

Olivier
Olivier
5/30/2012 12:09:24 AM

@pechaire: Delphi X2 a certainement une carte à jouer car il couvre pas mal de cas. De ce que j'ai pu en voir ce n'est pas "affriolant" non plus.
Il est vrai que lorsqu'on a pris l'habitude de VS ou de Expression Blend pour concevoir des interfaces Xaml, la VCL et ce qu'elle est devenue ça fait un peu préhistorique.
Mais il faut saluer cette version de Delphi qui a l'avantage de répondre aux angoisses des développeurs, c'est une solution originale, car comme d'habitude Delphi n'est pas un produit lié à un OS. Il peut donc proposer une unification que Microsoft autant que Apple ou Google font tout pour détruire en construisant des digues infranchissables entre leurs OS et langages.
Je ne saurai juger de la qualité de X2 que je n'ai pas utilisé pour l'instant, il faudra voir à l'usage. Mais c'est peut être la chance d'une renaissance de Delphi, qui comme à une certaine époque pourrait apporter une réponse appropriée aux besoins des développeurs, là où MS et les autres se refusent de le faire.
Hélas Borland est mort, et peu d'entreprises que je connais ne font confiance à Embarcadero pour des développements chers et/ou à long terme.
Ca sera le seul frein à l'adoption de X2, un seul mais il est énorme : la confiance perdue en Delphi.

Nk54
Nk54
6/1/2012 9:36:49 AM

Comme à tes habitudes, super agréable à lire, arguments construits et comme je partages tes avis, je ne peux qu'adorer d'avantages.

Merci pour tout !

Olivier
Olivier
6/1/2012 2:12:33 PM

@NK54: Smile

paul
paul
8/6/2012 1:27:10 AM

Excellentissime ! Bravo. Un très grand merci pour nous faire partager tes réflexions et répondre aux questions que je me pose et pour lesquelles j'ai du mal à faire des choix. Question : suis-je le seul à ressentir de plus en plus de méfiance de la part des TPE et parfois PME pour l'adoption de techno microsoft (hors OS et Office bien sûr) ? En même temps, difficle de leur parler php avec browser, mais ils sont très très prudents et méfiants et ne veulent pas entendre parler d'azure par rexemple ni de sql server 2012 (tarifs ?). Vous avez aussi le même retour ? Ou c'est un épiphénomène et je me plante ?

Merci encore,
Paul

Olivier
Olivier
8/6/2012 12:07:55 PM

@Paul: je crois les entreprises sont frileuses par nature de ce point de vue. Rares sont celles ayant adopté une nouvelle version de Windows à sa sortie...
De plus les choix sont très difficiles comme je le dis dans ce billet.
Ajoutons à cela la crise et on obtient un cocktail peu propice à une adoption massive et immédiate de nouvelles technos... De MS ou d autres !
Naviguer dans cet océan d inconnus est bien la question du développeur en ce moment...

Add comment

  Country flag

biuquote
  • Comment
  • Preview
Loading