Depuis la fin de 2010, il y a eu de nombreuses voix sur la mort imminente de Silverlight. Ensuite, de plus en plus de faits ont montré que Microsoft abandonne progressivement Silverlight. La raison fondamentale est à peu près parce qu'elle ressent la pression de HTML5, et la raison directe est qu'elle n'a pas remporté beaucoup de victoire dans la concurrence avec Flash.
En raison de la popularité de l'iPhone, Jobs a annoncé avec confiance que tous les plug-ins de navigateur sont "mauvais", donc les navigateurs iOS rejettent tous les plug-ins, y compris Flash, et bien sûr, Silverlight. Ensuite, lorsque le Metro-Ie dans Win8 est vraiment comme des travaux conçus et ne supporte aucun plug-ins, je ne pouvais toujours pas croire que mes lunettes étaient cassées. Pourquoi Microsoft est-il devenu si peu confiant et indépendant?
1. Pourquoi HTML5 ne peut pas remplacer Silverlight (ou Flash)Tout produit est un outil. Je ne suis pas le concepteur de Silverlight et je n'ai aucun sentiment spécial pour cela. S'il existe une meilleure technologie qui peut le remplacer, c'est génial. Je serai le premier à défendre pour soutenir un nouveau produit. Mais la question est la suivante: HTML5 peut-il vraiment remplacer Silverlight?
Silverlight est un gros client développé dans la langue C # (ou VB.NET). Cette lignée détermine son processus de développement dans ses portes. La structure du programme doit être exactement la même que celle des applications Windows. En fait, cela va plus loin. La lignée héritée de Silverlight de WPF rend MVVM très idéal. Cet ensemble complet de produits constitue une puissante chaîne écologique basée sur .NET Framework, MVVM en tant que modèle organisationnel et langage de haut niveau en tant que langue de développement. Silverlight unifie la technologie de développement du client et du serveur et comble l'écart entre les différents navigateurs.
Plus que cela. Silverlight est particulièrement utile dans le modèle de travail SOA. Son intégration profonde avec WCF rend simple et élégant pour développer un programme Web puissant et axé sur le service.
Et HTML5? Il améliore les capacités de traitement des graphiques, ajoute des capacités de streaming et ajoute également d'autres fonctions pratiques. Cependant, c'est encore loin de Ria. Il est inutile pour l'ingénierie logicielle, les performances et l'efficacité de développement.
Tout d'abord, du point de vue du langage et de la structure, les avantages du langage de haut niveau, du dactylographie et orientés objet ne nécessitent aucune explication inutile. L'histoire des logiciels au cours des dernières décennies a été des preuves en fer, et d'excellents modèles de conception sont encore plus importants pour la lisibilité, la maintenabilité, la sécurité et la flexibilité des logiciels. À ce sujet, il n'y a essentiellement pas besoin de "preuve" supplémentaire. Tous ceux qui ont appris la programmation devraient connaître l'importance et le rôle des modèles de conception.
HTML5 n'est pas "HTML lui-même". En fait, il existe un protagoniste nommé JavaScript qui est presque ignoré par les gens. Dans tous les endroits où l'on parle des perspectives merveilleuses et des caractéristiques multiplateformes de HTML5, presque personne n'a mentionné le nom de JavaScript. Cependant, en fait, diverses fonctions et comportements dynamiques dans HTML doivent être implémentés entièrement par JS. HTML5, en tant que solution d'application Web, devrait en fait être appelé la solution "html5 et javascript".
En fait, si vous y réfléchissez plus attentivement, vous constaterez que JavaScript, qui a été délibérément caché dans les coulisses par les gens, est le vrai protagoniste numéro un, et HTML5 n'est en fait qu'un rôle de soutien.
Il n'y a pas si longtemps, Microsoft a montré un jeu appelé "Cutting Rope" qui prétend être mis en œuvre avec HTML5. Le jeu est en effet surprenant. Cependant, toute personne qui travaille dans le développement Web devrait immédiatement se rendre compte que dans l'implémentation de ce jeu, HTML5 explique à quel point JavaScript représente-t-il? Dans quelle langue est son code fonctionnel? La réponse est si simple et claire. Plutôt que de dire que ce jeu est utilisé pour afficher HTML5, je pense qu'il vaut mieux afficher JavaScript.
En ce qui concerne les jeux, vous devriez être familier avec les versions Web populaires des jeux en ligne en Chine ces dernières années. Les fonctions puissantes sont complètement réalisées par JS? Cela me fait du sang si j'y pense. Peu importe que ce soit possible, même si cela peut être fait, ne pensez-vous pas vraiment que c'est une régression majeure de l'histoire de la programmation? ---- Après tant d'années de développement, des langues de haut niveau ont été remplacées par des langues de script?
En fait, les jeux n'en sont qu'un exemple. À mesure que les applications Web deviennent de plus en plus populaires, les gens ont besoin d'applications clients plus fortes, plus délicates et plus complexes, ce qui signifie tous des échelles de programmation plus grandes. Pour "Solutions HTML5", cela signifie en fait que toutes les attentes des utilisateurs doivent être implémentées via JavaScript, et pour les grandes applications, cela peut signifier des millions de lignes de code. ---- En programmation à cette échelle, JS est-il comparable au puissant C #?
Ce n'est pas seulement ça.
Par exemple, le projet de mon entreprise, l'application Web se concentre sur les réseaux locaux et ne tient pas compte des limites d'Internet. ---- C'est en fait un scénario d'utilisation pour de nombreuses applications Web. Dans LANS, les plug-ins de clients comme Silverlight peuvent obtenir une communication à très haute performance (flux de données binaires) et le traitement des données. Il s'agit d'une barrière à la lignée HTML5 basée sur l'interprétation du texte brut. Ses performances ne peuvent jamais être plus élevées que les plug-ins.
En plus des performances de communication, il existe également des performances d'effet dynamiques. Silverlight peut directement utiliser l'accélération matérielle, tandis que HTML5 s'appuie sur le navigateur, donc tout comme les performances de communication, il ne sera plus bas que Silverlight, et il n'y a pas de possibilité plus élevée.
Y a-t-il une efficacité de développement (coût du temps)? Silverlight basé sur .NET peut utiliser complètement les fonctions puissantes de Visual Studio. Les développeurs ne ressentent souvent pas la différence entre cela et le développement d'un programme Windows. Le Framework .NET résume un grand nombre de fonctions prêtes à l'emploi, de contrôles riches, une expérience de programmation familière et un puissant support de débogage.
Nous connaissons également le développement de JS. Bien que VS renforce continuellement son support pour JS au fil des ans, par rapport à l'énorme framework .NET et à la runtime et à son débogueur .NET matures, ce n'est qu'un langage de script. Peu importe à quel point une souris est grasse, elle ne sera pas plus lourde qu'un éléphant. C'est un bon sens de base.
2. Où est HTML5Mettre de côté les problèmes pratiques ci-dessus, où est HTML5?
Tout d'abord, HTML nécessite une prise en charge du navigateur. HTML5 lui-même n'est qu'une norme, et sa mise en œuvre dépend du navigateur. Pour diverses raisons, chaque navigateur a toujours une partie de sa propre "personnalité". HTML4 n'est pas sans normes, mais les faits devant vous ont pleinement démontré comment les fabricants de navigateurs traiteront cette norme. Il n'y a aucune raison de prouver que l'ère de HTML5 peut complètement résoudre ce problème.
Deuxièmement, il n'y en a encore que quelques-uns qui prennent en charge les navigateurs HTML5. Il est encore loin d'éliminer tous les anciens navigateurs. Et on peut prédire que dans cinq ou dix ans, le marché sera rempli de différentes versions de navigateurs, et chaque navigateur sera quelque peu différent. De plus, combien de temps IE9 de Microsoft a-t-il été lancé? IE10 a été publié. Bien que IE10 et IE9 soient tous deux des navigateurs qui prennent en charge HTML5, il existe de nombreuses différences visibles. Parmi les navigateurs encore vivants, Microsoft a seul 5 produits différents de IE6 à IE10.
Troisièmement, la création d'une puissante application Web nécessite non seulement la maturité de la technologie de base, mais nécessite également un grand nombre de bibliothèques de classe. HTML5 lui-même n'est pas assez mature, et la création d'applications Web complexes basées sur HTML5 (JS) manque de persuasion et de support de bibliothèque de classe. Si les futurs navigateurs peuvent vraiment expliquer JS comme Silverlight ou Flash, ce sera un très long processus, et encore moins je pense personnellement que c'est impossible.
Par rapport à l'immaturité de HTML5, Silverlight est un produit fini devant vous. Je m'inquiète de ce qui se passera dix ou vingt ans plus tard. C'est parce que je suis rassasié et que je n'ai rien à faire.
3. Win8 et l'avenirEh bien, j'avoue que s'inquiéter de ce qui se passera dix ou vingt ans plus tard ne signifie pas nécessairement que vous êtes plein et que vous n'avez rien à faire. Voyons ensuite l'avenir.
Win8 est en fait équivalent à Win7 + Metro. C'est-à-dire, mettre de côté le mode de bureau qui est en arrière compatible avec Win7, le mode Metro est le vrai Win8.
Cependant, qu'est-ce que le métro? Le mode Metro abandonne la fenêtre, le WPF et même .net. À un prix aussi élevé, il reproduit en fait le système d'exploitation mobile. Non seulement il est complètement innovant en apparence, mais le magasin d'applications Windows exprime également directement son amour pour Apple. Compte tenu de la conception anormale de Metro-ie ... Je doutais une fois si Win8 avait été élaboré sous la direction de Jobs.
Bien que le mode de métro soit un peu rafraîchissant, un ordinateur personnel n'est pas une console de jeu. Plus de gens doivent utiliser un ordinateur pour travailler ou faire quelque chose de similaire à Office. Plus ils l'utilisent, plus ils trouvent à quel point il est douloureux d'avoir un mode de métro sans fenêtre. Il est si courant que les gens utilisent deux ou plusieurs applications en même temps. De plus, comme la taille du moniteur continue d'augmenter, le moniteur a en fait la possibilité d'afficher plus d'informations chaque année, mais Metro dit aux utilisateurs: non, tous vos écrans ne peuvent être utilisés que pour afficher une application. Voulez-vous discuter avec QQ en regardant des films? Cher, ce n'est pas autorisé ...
Les ordinateurs ne sont pas des téléphones mobiles. Les concepteurs de Win8 ne comprenaient pas une vérité aussi simple. On ne peut pas dire que le métro de Win8 ne soit pas utile, mais il est en effet extrêmement limité dans les utilisations.
Par conséquent, la direction future de développement des fenêtres ne sera certainement pas un métro terne, mais un mode de fenêtre classique.
Une fois que vous comprenez cela, vous pouvez croire que l'avenir, je ne désactiverai pas les plug-ins. Même si le métro est toujours parasite dans le système d'exploitation comme un monstre déformé dans Win9, il ne provoquera aucune tempête. Le mode Win7 basé sur le bureau est le roi, et tant que le navigateur ne désactive pas les plug-ins, il n'y a aucun doute sur la disponibilité de Silverlight ou Flash. Bien que peut-être que Microsoft ne lancera plus Silverlight 6, alors quoi? Silverlight fonctionnera toujours bien dans au moins dix ans, comme pour ce qui se passera dix ans plus tard ... en fait, la plupart du code ne durera pas si longtemps.
4. La nature de la technologie informatiqueIl y a un vieux chinois qui dit que "oublie les ancêtres de la numérologie". Pour les applications Web, je pense que le génie de la technologie oublie les ancêtres de la numérologie. Ils fantasment aveuglément sur les plate-formes multiples, mais oublient à quoi sert la technologie informatique?
Les ordinateurs sont un outil, et l'ensemble de l'historique de développement est uniquement pour servir les utilisateurs. Une technologie qui n'apporte qu'une meilleure expérience aux utilisateurs est précieuse et peut vaincre les anciennes technologies. Il est déraisonnable et stupide d'épingler l'avenir du Web sur le JavaScript de bas niveau, sans dactylographie, difficile à contrôler et à basse performance (HTML est essentiellement utilisé pour présenter un contenu statique, et les applications Web se concentrent sur la dynamique plutôt que statique) est une idée stupide. Lorsque Jobs a fièrement affirmé que tous les plug-ins sont "mauvais", j'ai convenu que sa philosophie ("diction") avait du sens, mais quand il a compté ce dictionnaire, il a oublié son "ancêtre". (Les applications doivent servir les utilisateurs)
Une technologie ne peut pas supprimer les besoins des utilisateurs simplement car il peut économiser la main-d'œuvre et doit consommer plus de ressources informatiques utilisateur inutile. Au contraire, s'il peut améliorer les performances, économiser des ressources, obtenir de meilleurs résultats et améliorer l'expérience utilisateur, peu importe l'effort qu'il faut, cela doit être fait.
En fait, il existe de nombreuses fonctions que JS + HTML ne peut pas atteindre, et JS + HTML est extrêmement médiocre en matière de sécurité. (Qui peut garantir la sécurité des achats en ligne?) Il est impossible de désactiver les plug-ins, non seulement devant vous, mais aussi dans dix ans. Pensez simplement à la nécessité d'un environnement Web plus fort et plus sûr pour les utilisateurs, vous savez que les plug-ins ne peuvent être restreints, mais ils ne peuvent pas être interdits. (Certains plug-ins désordonnés sont vraiment ennuyeux, mais sont-ils interdits de manger du poisson parce qu'ils ont des épines? Il est toujours stupide d'abandonner à manger à cause de l'étouffement)
Flash est un plug-in Web très excellent et puissant, mais il n'est pas idéal dans l'écosystème de Microsoft, il est donc en fait irréaliste d'utiliser Flash au lieu de Silverlight. Abandonnez entièrement la technologie de Microsoft, soit Silverlight est uniquement.
En fait, je pense personnellement que l'avenir du Web devrait être basé sur le mode SOA de plusieurs clients. Les fonctions sont implémentées par service et l'interface utilisateur est implémentée par différentes plateformes en utilisant la technologie la plus appropriée. Il est déraisonnable de poursuivre aveuglément des plate-formes multiples. L'écran du téléphone mobile détermine que son mode d'affichage et de fonctionnement doit être différent de celui de l'ordinateur.
5. XAML, liaison du tableau et MVVMCe sujet a été un peu mauvais, mais je dois toujours le mentionner. La nouvelle méthode de développement de l'application Metro Win8, qui peut en fait être appelée Silverlight6, utilise toujours XAML, et il utilise similaire au «Framework restreint» comme Silverlight en tant que cadre de programmation. Certains programmes Silverlight peuvent même être compilés directement dans les applications Win8 sans changer de ligne.
Je ne suis pas optimiste à propos de Win8 et de son application Metrol, mais je crois que XAML et MVVM dureront pour toujours, WPF ne mourra pas et la technologie utilisée par Silverlight ne mourra pas.
Dans un sens, même si Silverlight5 est vraiment la dernière version, on peut considérer que Silverlight vient de changer son nom, et il a renommé dans la nouvelle technologie.
6. L'attitude de MicrosoftMicrosoft a arrêté le développement de Silverlight, mais Microsoft n'a jamais annoncé explicitement que le projet Silverlight sera abandonné. C'est un phénomène très intéressant. Les réglementations actuelles de Microsoft ne sont "pas autorisées à le mentionner". Si Microsoft est vraiment déterminé à abandonner, pourquoi devez-vous faire un "pas autorisé à le mentionner" pour faire semblant d'être une autruche?
Je pense que Microsoft regarde également. Ils regardent si le plug-in du navigateur n'aura vraiment aucune perspective. Si d'autres plug-ins, y compris Flash, meurent lentement à l'avenir, Microsoft abandonnera naturellement Silverlight. Au contraire, si le plug-in du navigateur se révèle très confortable et qu'il n'y a aucun signe de décès, il peut redémarrer le projet Silverlight à tout moment et lancer Silverlight6.
Donc, je pense que même si la réincarnation et la renaissance de Silverlight ne sont pas prises en compte, même le produit Silverlight lui-même (et ce nom) est susceptible d'être ressuscité à l'avenir.
Par conséquent, pour les développeurs Web vivant sous le ciel de Microsoft, le choix de Silverlight peut atteindre des fonctions plus puissantes plus rapidement et plus élégamment. Pourquoi ne pas choisir Silverlight?