Desde finales de 2010, ha habido muchas voces sobre la inminente muerte de Silverlight. Entonces, cada vez más hechos han demostrado que Microsoft está renunciando gradualmente a Silverlight. La razón fundamental es más o menos porque siente la presión de HTML5, y la razón directa es que no ha logrado mucha victoria en la competencia con Flash.
Debido a la popularidad del iPhone, Jobs anunció con confianza que todos los complementos de los navegadores son "malvados", por lo que los navegadores de iOS rechazan cualquier complemento, incluido Flash y, por supuesto, Silverlight. Luego, cuando el metro-II en Win8 es realmente como trabajos diseñados y no admite ningún complemento, todavía no podía creer que mis anteojos estuvieran rotas. ¿Por qué Microsoft se volvió tan desconfiado e independiente?
1. Por qué HTML5 no puede reemplazar a Silverlight (o flash)Cualquier producto es una herramienta. No soy el diseñador de Silverlight y no tengo sentimientos especiales por ello. Si hay una mejor tecnología que puede reemplazarla, es genial. Seré el primero en defenderme para apoyar un nuevo producto. Pero la pregunta es, ¿puede HTML5 realmente reemplazar a Silverlight?
Silverlight es un cliente gordo desarrollado en el lenguaje C# (o VB.NET). Este linaje determina su proceso de desarrollo de manera innata. La estructura del programa debe ser exactamente la misma que la de las aplicaciones de Windows. De hecho, va un paso más allá. El linaje heredado por Silverlight de WPF hace que MVVM funcione muy ideal. Este conjunto completo de productos constituye una poderosa cadena ecológica basada en el marco .NET, MVVM como modelo organizacional y lenguaje de alto nivel como lenguaje de desarrollo. Silverlight unifica la tecnología de desarrollo del cliente y el servidor, y llena el vacío entre diferentes navegadores.
Más que eso. Silverlight es especialmente útil en el modelo de trabajo SOA. Su profunda integración con WCF hace que sea simple y elegante desarrollar un poderoso programa web orientado a servicios.
¿Qué pasa con HTML5? Mejora las capacidades de procesamiento de gráficos, agrega capacidades de transmisión y también agrega otras funciones prácticas. Sin embargo, esto todavía está lejos de RIA. Es inútil para la ingeniería de software, el rendimiento y la eficiencia del desarrollo.
En primer lugar, desde la perspectiva del lenguaje y la estructura, las ventajas del lenguaje de alto nivel, la tipificación fuerte y la orientación de objetos no requieren ninguna explicación innecesaria. La historia del software en las últimas décadas ha sido evidencia de hierro, y los excelentes patrones de diseño son aún más importantes para la legibilidad, la mantenibilidad, la seguridad y la flexibilidad del software. Con respecto a esto, básicamente no hay necesidad de una "prueba" adicional. Todos los que han aprendido la programación deberían conocer el significado y el papel de los patrones de diseño.
HTML5 no es "HTML en sí". De hecho, hay un protagonista llamado JavaScript que casi es ignorado por la gente. En todos los lugares donde se habla de las maravillosas perspectivas y las características multiplataforma de HTML5, casi nadie mencionó el nombre de JavaScript. Sin embargo, de hecho, JS debe implementar completamente varias funciones y comportamientos dinámicos en HTML. HTML5, como solución de aplicación web, en realidad debe llamarse solución "HTML5 y JavaScript".
De hecho, si lo piensas con más cuidado, encontrarás que JavaScript, que ha sido oculto deliberadamente detrás de escena por las personas, es el verdadero protagonista número uno, y HTML5 es en realidad un papel secundario.
No hace mucho tiempo, Microsoft mostró un juego llamado "Corte de cuerda" que afirma ser implementado con HTML5. El juego es realmente sorprendente. Sin embargo, cualquiera que trabaje en el desarrollo web debe darse cuenta de inmediato de que en la implementación de este juego, HTML5 representa cuánto representa JavaScript. ¿En qué idioma se encuentra su código funcional? La respuesta es tan simple y clara. En lugar de decir que este juego se usa para mostrar HTML5, creo que es mejor mostrar JavaScript.
Cuando se trata de juegos, debe estar familiarizado con las versiones web populares de los juegos en línea en China en los últimos años. Las poderosas funciones son completamente realizadas por JS? Me hace sentir entumecido si lo pienso. Independientemente de si es posible, incluso si se puede hacer, ¿no crees que esta es una regresión importante en el historial de programación? ---- ¿Después de tantos años de desarrollo, los idiomas de alto nivel han sido reemplazados por idiomas de secuencias de comandos?
De hecho, los juegos son solo un ejemplo. A medida que las aplicaciones web se vuelven cada vez más populares, las personas necesitan aplicaciones de clientes más fuertes, más delicadas, de mayor rendimiento y más complejas, que significan escalas de programación más grandes. Para "soluciones HTML5", de hecho, esto significa que todas las expectativas del usuario deben implementarse a través de JavaScript, y para grandes aplicaciones, esto puede significar millones de líneas de código. ---- En la programación a esta escala, ¿es JS comparable a C#poderoso?
No es solo eso.
Por ejemplo, el proyecto de mi empresa, la aplicación web se centra en las redes de área local y no considera las limitaciones de Internet. ---- Este es en realidad un escenario de uso para muchas aplicaciones web. En LAN, los complementos de clientes como Silverlight pueden lograr una comunicación de muy alto rendimiento (flujos de datos binarios) y procesamiento de datos. Esta es una barrera para el linaje HTML5 basado en la interpretación del texto plano. Su rendimiento nunca puede ser más alto que los complementos.
Además del rendimiento de la comunicación, también hay un rendimiento del efecto dinámico. Silverlight puede usar directamente la aceleración de hardware, mientras que HTML5 se basa en el navegador, por lo que al igual que el rendimiento de la comunicación, solo será más bajo que Silverlight, y no hay mayores posibilidades.
¿Hay alguna eficiencia de desarrollo (costo de tiempo)? Silverlight basado en .NET puede usar completamente las potentes funciones de Visual Studio. Los desarrolladores a menudo no sienten la diferencia entre esto y el desarrollo de un programa de Windows. .NET Framework encapsula una gran cantidad de funciones preparadas, controles ricos, experiencia de programación familiar y potente soporte de depuración.
También estamos familiarizados con el desarrollo de JS. Aunque VS ha estado fortaleciendo continuamente su soporte para JS a lo largo de los años, en comparación con el enorme marco .NET y el tiempo de ejecución y el depurador .NET maduro, es solo un lenguaje de secuencias de comandos. No importa cuán gordo sea un ratón, no será más pesado que un elefante. Este es el sentido común básico.
2. ¿Dónde está HTML5?Dejando de lado los problemas prácticos anteriores, ¿dónde está HTML5?
En primer lugar, HTML requiere soporte del navegador. HTML5 en sí es solo un estándar, y su implementación depende del navegador. Por varias razones, cada navegador siempre tiene parte de su propia "personalidad". HTML4 no está exento de estándares, pero los hechos frente a usted han demostrado completamente cómo los fabricantes de navegadores tratarán este estándar. No hay razón para demostrar que la era de HTML5 puede resolver completamente este problema.
En segundo lugar, todavía hay unos pocos que admiten los navegadores HTML5. Todavía es un largo camino de eliminar todos los navegadores antiguos. Y se puede predecir que en cinco o diez años, el mercado estará lleno de varias versiones de navegadores, y cada navegador será algo diferente. Además, ¿cuánto tiempo se ha lanzado el IE9 de Microsoft? IE10 ha sido lanzado. Aunque IE10 e IE9 son ambos navegadores que admiten HTML5, hay muchas diferencias visibles. Entre los navegadores que aún viven, Microsoft solo tiene 5 productos diferentes de IE6 a IE10.
En tercer lugar, construir una poderosa aplicación web no solo requiere madurez en la tecnología básica, sino que también requiere una gran cantidad de bibliotecas de clases. HTML5 en sí no es lo suficientemente maduro, y la construcción de aplicaciones web complejas basadas en HTML5 (JS) carece de suficiente persuasión y soporte de biblioteca de clases. Si los futuros navegadores realmente pueden explicar JS como Silverlight o Flash, será un proceso muy largo, y mucho menos creo que eso es imposible.
En comparación con la inmadurez de HTML5, Silverlight es un producto terminado frente a usted. Me preocupa lo que sucederá diez o veinte años después. Eso es porque estoy lleno y no tengo nada que hacer.
3. Win8 y el futuroBueno, admito que preocuparse por lo que sucederá diez o veinte años más tarde no significa necesariamente que esté lleno y que no tenga nada que hacer. Entonces echemos un vistazo al futuro.
Win8 es en realidad equivalente a Win7+Metro. Es decir, dejar de lado el modo de escritorio que es compatible con Win7, el modo Metro es el verdadero Win8.
Sin embargo, ¿qué es Metro? El modo Metro abandona la ventana, WPF e incluso .NET. A un precio tan grande, en realidad replica el sistema operativo móvil. No solo es completamente innovador en apariencia, sino que la tienda de aplicaciones de Windows también expresa su amor por Apple directamente. Teniendo en cuenta el diseño anormal de Metro-II ... una vez dudé de si Win8 se desarrolló bajo la guía de trabajos.
Aunque el modo Metro se ve un poco refrescante, una computadora personal no es una consola de juegos. Más personas tienen que usar una computadora para trabajar o hacer algo similar a la oficina. Cuanto más lo usan, más encuentran lo doloroso que es tener un modo de metro sin ventanas. Es muy común que las personas usen dos o más aplicaciones al mismo tiempo. Además, debido a que el tamaño del monitor continúa aumentando, el monitor en realidad tiene la capacidad de mostrar más información cada año, pero Metro le dice a los usuarios: No, todas sus pantallas solo se pueden usar para mostrar una aplicación. ¿Quieres chatear con QQ mientras miras películas? Querido, eso no está permitido ...
Las computadoras no son teléfonos móviles. Los diseñadores de Win8 no entendían una verdad tan simple. No se puede decir que el metro de Win8 no sea de nada, pero de hecho es extremadamente limitado en uso.
Por lo tanto, la dirección de desarrollo futura de Windows definitivamente no será un metro aburrido, sino un modo de ventana clásico.
Una vez que comprenda esto, puede creer que el futuro no deshabilitaré los complementos. Incluso si el metro sigue siendo parásito en el sistema operativo como un monstruo deformado en Win9, no causará tormenta. El modo Win7 basado en el escritorio es el rey, y mientras el navegador no deshabilite los complementos, no hay duda sobre la disponibilidad de Silverlight o Flash. Aunque tal vez Microsoft no lanzará Silverlight 6 nuevamente, ¿y qué? Silverlight seguirá funcionando bien en al menos diez años, ya que por lo que sucederá diez años después ... de hecho, la mayor parte del código no durará tanto.
4. La naturaleza de la tecnología informáticaHay un viejo dicho chino que "olvida a los antepasados de la numerología". Para las aplicaciones web, creo que el genio de la tecnología está olvidando a los antepasados de la numerología. Están fantaseando ciegamente en las plataformas cruzadas, pero ¿olvidan para qué se usa la tecnología informática?
Las computadoras son una herramienta, y todo su historial de desarrollo es solo para servir a los usuarios. Una tecnología que solo aporta una mejor experiencia a los usuarios es valiosa y puede derrotar a las viejas tecnologías. Es irrazonable y estúpido fijar el futuro de la Web en JavaScript de bajo nivel, tintinoso, difícil de controlar, JavaScript de bajo rendimiento (HTML se usa básicamente para presentar contenido estático, y las aplicaciones web se centran en dinámica en lugar de estática) es una idea tonta. Cuando Jobs afirmó con orgullo que todos los complementos son "malvados", estuve de acuerdo en que su filosofía ("dicción") tenía sentido, pero cuando contó este diccionario, olvidó su "antepasado". (Las aplicaciones deben servir a los usuarios)
Una tecnología no puede suprimir las necesidades del usuario solo porque puede ahorrar mano de obra, y debe consumir más recursos informáticos de los usuarios innecesarios. Por el contrario, si puede mejorar el rendimiento, ahorrar recursos, lograr mejores resultados y mejorar la experiencia del usuario, sin importar cuánto esfuerzo se necesite, debe hacerse.
De hecho, hay muchas funciones que JS+HTML no puede lograr, y JS+HTML es extremadamente pobre en seguridad. (¿Quién puede garantizar la seguridad de las compras en línea?) Es imposible deshabilitar los complementos, no solo frente a usted, sino también en diez años. Solo piense en la necesidad de un entorno web más fuerte y seguro para los usuarios, usted sabe que los complementos solo pueden estar restringidos, pero no se pueden prohibir. (Algunos complementos desordenados son realmente molestos, pero ¿se les prohíbe comer pescado porque tienen espinas? Siempre es estúpido dejar de comer debido a la asfixia)
Flash es un complemento web muy excelente y potente, pero no es ideal en el ecosistema de Microsoft, por lo que en realidad no es realista usar Flash en lugar de Silverlight. O renuncia a la tecnología de Microsoft por completo o Silverlight es solo.
De hecho, personalmente creo que el futuro de la Web debe basarse en el modo SOA de múltiples clientes. Las funciones son implementadas por el servicio, y la interfaz de usuario es implementada por diferentes plataformas utilizando la tecnología más apropiada. No es razonable perseguir ciegamente las plataformas cruzadas. La pantalla del teléfono móvil determina que su modo de visualización y operación debe ser diferente de la de la computadora.
5. XAML, ANILLACIÓN DE MATRAY Y MVVMEste tema ha sido un poco malo, pero todavía tengo que mencionarlo. El nuevo método de desarrollo de la aplicación Win8 Metro, que en realidad puede llamarse Silverlight6, todavía usa XAML y usa similar al "marco .NET restringido" como Silverlight como un marco de programación. Algunos programas de Silverlight incluso se pueden compilar directamente en aplicaciones Win8 sin cambiar ninguna línea.
No soy optimista sobre Win8 y su aplicación Metrol, pero creo que XAML y MVVM durarán para siempre, WPF no morirá y la tecnología utilizada por Silverlight no morirá.
En cierto sentido, incluso si Silverlight5 es realmente la última versión, se puede considerar que Silverlight acaba de cambiar su nombre, y ha renacido en la nueva tecnología.
6. Actitud de MicrosoftMicrosoft detuvo el desarrollo de Silverlight, pero Microsoft nunca anunció explícitamente que el proyecto Silverlight será abandonado. Este es un fenómeno muy interesante. Las regulaciones actuales de Microsoft "no están permitidas para mencionarlo". Si Microsoft está realmente decidido a rendirse, ¿por qué tienes que hacer un "no permitido mencionarlo" para fingir ser un avestruz?
Creo que Microsoft también está mirando. Están observando si el complemento del navegador realmente no tendrá perspectivas. Si otros complementos, incluido Flash, están muriendo lentamente en el futuro, entonces Microsoft naturalmente renunciará a Silverlight. Por el contrario, si se demuestra que el complemento del navegador es muy cómodo y no hay señales de muerte, pueden reiniciar el proyecto Silverlight en cualquier momento y lanzar Silverlight6.
Entonces, creo que incluso si no se consideran la reencarnación y el renacimiento de Silverlight, incluso el producto Silverlight en sí (y este nombre) es probable que resucite en el futuro.
Por lo tanto, para los desarrolladores web que viven bajo el cielo de Microsoft, elegir Silverlight puede lograr funciones más poderosas de manera más rápida y elegante. ¿Por qué no elegir Silverlight?