Desde o final de 2010, há muitas vozes sobre a morte iminente de Silverlight. Então, mais e mais fatos mostraram que a Microsoft está realmente gradualmente desistindo do Silverlight. A razão fundamental é aproximadamente porque sente a pressão do HTML5, e a razão direta é que ela não alcançou muita vitória na competição com Flash.
Devido à popularidade do iPhone, os Jobs anunciaram com confiança que todos os plug-ins do navegador são "maus", então os navegadores do iOS rejeitam quaisquer plug-ins, incluindo flash e, claro, Silverlight. Então, quando o metrô no Win8 é realmente como empregos projetados e não suporta nenhum plug-ins, ainda não podia acreditar que meus óculos estavam quebrados. Por que a Microsoft se tornou tão não confiante e independente?
1. Por que o HTML5 não pode substituir Silverlight (ou flash)Qualquer produto é uma ferramenta. Eu não sou o designer do Silverlight e não tenho sentimentos especiais por isso. Se houver uma tecnologia melhor que possa substituí -la, isso é ótimo. Serei o primeiro a se levantar para apoiar um novo produto. Mas a questão é: o HTML5 pode realmente substituir Silverlight?
O Silverlight é um cliente de gordura desenvolvido na linguagem C# (ou vb.net). Essa linhagem determina seu processo de desenvolvimento de maneira inaturna. A estrutura do programa deve ser exatamente a mesma dos aplicativos do Windows. Na verdade, vai um passo adiante. A linhagem herdada pela Silverlight da WPF faz com que o MVVM funcione muito ideal. Esse conjunto completo de produtos constitui uma poderosa cadeia ecológica baseada na estrutura .NET, MVVM como modelo organizacional e linguagem de alto nível como linguagem de desenvolvimento. O Silverlight unifica a tecnologia de desenvolvimento do cliente e do servidor e preenche a lacuna entre diferentes navegadores.
Mais do que isso. O Silverlight é especialmente útil no modelo de trabalho da SOA. Sua profunda integração com o WCF torna simples e elegante desenvolver um poderoso programa da Web orientado a serviços.
E quanto ao HTML5? Ele aprimora os recursos de processamento gráfico, adiciona recursos de streaming e também adiciona outras funções práticas. No entanto, isso ainda está longe de Ria. É inútil para engenharia de software, desempenho e eficiência de desenvolvimento.
Primeiro de tudo, da perspectiva da linguagem e da estrutura, as vantagens da linguagem de alto nível, a digitação forte e a orientação a objetos não exigem explicação desnecessária. A história do software nas últimas décadas tem sido evidência de ferro, e excelentes padrões de design são ainda mais importantes para a legibilidade, manutenção, segurança e flexibilidade do software. Em relação a isso, basicamente não há necessidade de "prova" extra. Todo mundo que aprendeu a programação deve conhecer o significado e o papel dos padrões de design.
HTML5 não é "HTML em si". De fato, há um protagonista chamado JavaScript que é quase ignorado pelas pessoas. Em todos os lugares onde são discutidos as maravilhosas perspectivas e os recursos de plataforma cruzada do HTML5, quase ninguém mencionou o nome de JavaScript. No entanto, de fato, várias funções e comportamentos dinâmicos no HTML devem ser implementados inteiramente por JS. O HTML5, como uma solução de aplicativo da Web, deve realmente ser chamado de solução "HTML5 e JavaScript".
De fato, se você pensar mais com mais cuidado, descobrirá que o JavaScript, que foi deliberadamente escondido nos bastidores das pessoas, é o verdadeiro protagonista número um, e o HTML5 é apenas um papel de apoio.
Há pouco tempo, a Microsoft mostrou um jogo chamado "Cutting Ride" que afirma ser implementado com o HTML5. O jogo é realmente surpreendente. No entanto, quem trabalha no desenvolvimento da Web deve perceber imediatamente que, na implementação deste jogo, o HTML5 é responsável por quanto JavaScript explica? Em qual idioma é seu código funcional? A resposta é tão simples e clara. Em vez de dizer que este jogo é usado para exibir o HTML5, acho melhor exibir JavaScript.
Quando se trata de jogos, você deve estar familiarizado com as versões populares da Web de jogos on -line na China nos últimos anos. As funções poderosas são completamente realizadas pelo JS? Isso me faz sentir entorpecido se eu pensar sobre isso. Independentemente de ser possível, mesmo que possa ser feito, você realmente não acha que essa é uma grande regressão na história da programação? ---- Após tantos anos de desenvolvimento, idiomas de alto nível foram substituídos por idiomas de script?
De fato, os jogos são apenas um exemplo. À medida que os aplicativos da Web se tornam cada vez mais populares, as pessoas precisam de aplicativos de clientes mais fortes, mais delicados, mais altos e mais complexos, o que significa escalas de programação maiores. Para "soluções HTML5", de fato, isso significa que todas as expectativas do usuário devem ser implementadas por meio de JavaScript e, para aplicativos grandes, isso pode significar milhões de linhas de código. ---- Na programação nessa escala, JS é comparável ao C#poderoso?
Não é só isso.
Por exemplo, o projeto da minha empresa, o aplicativo da Web se concentra nas redes da área local e não considera as limitações da Internet. ---- Este é realmente um cenário de uso para muitos aplicativos da Web. Em LANs, os plug-ins do cliente como o Silverlight podem obter uma comunicação de alto desempenho (fluxos de dados binários) e processamento de dados. Esta é uma barreira à linhagem HTML5 com base na interpretação do texto simples. Seu desempenho nunca pode ser maior que os plug-ins.
Além do desempenho da comunicação, também existem desempenho de efeito dinâmico. O Silverlight pode usar a aceleração de hardware diretamente, enquanto o HTML5 depende do navegador; portanto, assim como o desempenho da comunicação, ele será menor que o Silverlight e não há possibilidade mais alta.
Existe alguma eficiência de desenvolvimento (custo de tempo)? O Silverlight baseado no .NET pode usar completamente as poderosas funções do Visual Studio. Os desenvolvedores geralmente não sentem a diferença entre isso e o desenvolvimento de um programa Windows. A estrutura .NET encapsula um grande número de funções prontas, controles ricos, experiência familiar de programação e poderoso suporte de depuração.
Também estamos familiarizados com o desenvolvimento de JS. Embora o VS tenha fortalecido continuamente seu apoio ao JS ao longo dos anos, em comparação com a enorme estrutura .NET e o tempo de execução .NET maduro e o depurador, é apenas uma linguagem de script. Não importa a gordura de um mouse, ele não será mais pesado que um elefante. Este é o senso comum básico.
2. Onde está html5Deixando de lado os problemas práticos acima, onde está o HTML5?
Primeiro de tudo, o HTML requer suporte ao navegador. O HTML5 em si é apenas um padrão e sua implementação depende do navegador. Por várias razões, cada navegador sempre tem parte de sua própria "personalidade". O HTML4 não está isento de padrões, mas os fatos à sua frente demonstraram totalmente como os fabricantes de navegadores tratarão esse padrão. Não há razão para provar que a era do HTML5 pode resolver completamente esse problema.
Em segundo lugar, ainda existem apenas alguns que suportam navegadores HTML5. Ainda é um longo caminho para eliminar todos os navegadores antigos. E pode -se prever que, em cinco ou dez anos, o mercado será preenchido com várias versões de navegadores, e cada navegador será um pouco diferente. Além disso, há quanto tempo foi lançado o IE9 da Microsoft? O IE10 foi lançado. Embora o IE10 e o IE9 sejam navegadores que suportam HTML5, existem muitas diferenças visíveis. Entre os navegadores ainda vivos, a Microsoft sozinha possui 5 produtos diferentes do IE6 ao IE10.
Terceiro, a criação de um poderoso aplicativo da Web não apenas requer maturidade na tecnologia básica, mas também requer um grande número de bibliotecas de classes. O próprio HTML5 não é maduro o suficiente, e a criação de aplicativos da Web complexos com base no HTML5 (JS) carece de persuasão suficiente e suporte da biblioteca de classes. Se os navegadores futuros puderem realmente explicar JS como Silverlight ou Flash, será um processo muito longo, muito menos eu pessoalmente acho que isso é impossível.
Comparado à imaturidade do HTML5, o Silverlight é um produto acabado na sua frente. Eu me preocupo com o que acontecerá dez ou vinte anos depois. Isso é porque estou cheio e não tenho nada para fazer.
3. Win8 e o futuroBem, admito que se preocupar com o que acontecerá dez ou vinte anos depois não significa necessariamente que você está cheio e não tem nada a fazer. Então vamos dar uma olhada no futuro.
O Win8 é realmente equivalente ao Win7+Metro. Ou seja, reserve o modo de desktop que seja compatível com o Win7, o modo Metro é o verdadeiro Win8.
No entanto, o que é o metrô? O modo do metrô abandona a janela, WPF e até .NET. A um preço tão grande, na verdade ele replica o sistema operacional móvel. Não é apenas completamente innovativo de aparência, mas o Windows Application Store também expressa seu amor pela Apple diretamente. Considerando o design anormal do metrô ... uma vez duvidei se o Win8 foi desenvolvido sob a orientação de empregos.
Embora o modo metrô pareça um pouco refrescante, um computador pessoal não é um console de jogo. Mais pessoas precisam usar um computador para trabalhar ou fazer algo semelhante ao escritório. Quanto mais eles o usam, mais eles acham o quão doloroso é ter um modo de metrô sem janelas. É tão comum que as pessoas usem dois ou mais aplicativos ao mesmo tempo. Além disso, como o tamanho do monitor continua aumentando, o monitor realmente tem a capacidade de exibir mais informações a cada ano, mas o Metro diz aos usuários: não, todas as suas telas só podem ser usadas para exibir um aplicativo. Você quer conversar com QQ enquanto assiste filmes? Querida, isso não é permitido ...
Os computadores não são telefones celulares. Os designers do Win8 não entendiam uma verdade tão simples. Não se pode dizer que o metrô do Win8 não tem utilidade, mas é realmente extremamente limitado em uso.
Portanto, a direção futura de desenvolvimento do Windows definitivamente não será um metrô chato, mas um modo de janela clássica.
Depois de entender isso, você pode acreditar que o futuro não desativarei os plug-ins. Mesmo que o metrô ainda seja parasitário no sistema operacional como uma aberração deformada no Win9, isso não causará tempestade. O modo Win7 baseado em desktop é o rei e, desde que o navegador não desative os plug-ins, não há dúvida sobre a disponibilidade de Silverlight ou Flash. Embora talvez a Microsoft não lançasse o Silverlight 6 novamente, e daí? O Silverlight ainda funcionará bem dentro de pelo menos dez anos, como o que acontecerá dez anos depois ... Na verdade, a maior parte do código não durará tanto tempo.
4. A natureza da tecnologia do computadorHá um velho chinês dizendo que "esqueça os ancestrais da numerologia". Para aplicativos da Web, acho que o gênio da tecnologia está esquecendo os ancestrais da numerologia. Eles estão fantasiando cegamente sobre plataformas cruzadas, mas esqueça para que tecnologia de computador é usada?
Os computadores são uma ferramenta e todo o seu histórico de desenvolvimento é apenas para servir os usuários. Uma tecnologia que apenas traz uma experiência melhor para os usuários é valiosa e pode derrotar tecnologias antigas. É irracional e estúpido fixar o futuro da Web em JavaScript de baixo nível, timbro, difícil de controlar, JavaScript de baixo desempenho (o HTML é basicamente usado para apresentar conteúdo estático, e os aplicativos da Web se concentram na dinâmica e não estática) é uma idéia tola. Quando Jobs orgulhosamente alegou que todos os plug-ins são "maus", eu concordei que sua filosofia ("dicção") fazia sentido, mas quando ele contava esse dicionário, ele esqueceu seu "ancestral". (Os aplicativos devem servir os usuários)
Uma tecnologia não pode suprimir as necessidades do usuário apenas porque pode economizar mão de obra e deve consumir mais recursos de computador do usuário desnecessários. Pelo contrário, se puder melhorar o desempenho, salvar recursos, obter melhores resultados e melhorar a experiência do usuário, não importa quanto esforço seja necessário, isso deve ser feito.
De fato, existem muitas funções que o JS+HTML não pode alcançar, e o JS+HTML é extremamente ruim em segurança. (Quem pode garantir a segurança das compras on-line?) É impossível desativar os plug-ins, não apenas à sua frente, mas também em dez anos. Pense na necessidade de um ambiente da Web mais forte e seguro para os usuários, você sabe que os plug-ins só podem ser restritos, mas eles não podem ser proibidos. (Alguns plug-ins confusos são realmente irritantes, mas eles são proibidos de comer peixes porque têm espinhos? É sempre estúpido desistir de comer por causa de sufocamento)
O Flash é um plug-in muito excelente e poderoso, mas não é ideal no ecossistema da Microsoft, por isso não é realista usar o Flash em vez do Silverlight. Desculpe a tecnologia da Microsoft ou o Silverlight é apenas.
Na verdade, eu pessoalmente acho que o futuro da Web deve se basear no modo SOA de vários clientes. As funções são implementadas por serviço e a interface do usuário é implementada por diferentes plataformas usando a tecnologia mais apropriada. Não é razoável perseguir cegamente as plataformas cruzadas. A tela do telefone celular determina que seu modo de exibição e operação deve ser diferente do do computador.
5. xaml, ligação de matriz e MVVMEste tópico tem sido um pouco ruim, mas ainda tenho que mencioná -lo. O novo método de desenvolvimento do Win8 Metro App, que pode ser chamado de Silverlight6, ainda usa o XAML e usa semelhante à "estrutura .NET restrita" como Silverlight como uma estrutura de programação. Alguns programas Silverlight podem até ser compilados diretamente em aplicativos Win8 sem alterar nenhuma linha.
Não estou otimista com o Win8 e seu aplicativo MetroL, mas acredito que XAML e MVVM duram para sempre, o WPF não morrerá e a tecnologia usada pelo Silverlight não morrerá.
Em certo sentido, mesmo que o Silverlight5 seja realmente a última versão, pode -se considerar que o Silverlight acabou de mudar seu nome e renasceu em novas tecnologias.
6. Atitude da MicrosoftA Microsoft interrompeu o desenvolvimento do Silverlight, mas a Microsoft nunca anunciou explicitamente que o projeto Silverlight será abandonado. Este é um fenômeno muito interessante. Os regulamentos atuais da Microsoft "não têm permissão para mencionar isso". Se a Microsoft está realmente determinada a desistir, por que você precisa fazer com que um "não seja permitido mencioná -lo" finge ser um avestruz?
Eu acho que a Microsoft também está assistindo. Eles estão assistindo se o plug-in do navegador realmente não terá perspectivas. Se outros plug-ins, incluindo flash, estão morrendo lentamente no futuro, a Microsoft naturalmente desistirá de Silverlight. Pelo contrário, se o plug-in do navegador for comprovado muito confortável e não houver sinal de morte, eles poderão reiniciar o projeto Silverlight a qualquer momento e lançar o Silverlight6.
Então, acho que mesmo que a reencarnação e o renascimento de Silverlight não sejam consideradas, mesmo o próprio produto Silverlight (e esse nome) provavelmente será ressuscitado no futuro.
Portanto, para desenvolvedores da Web que vivem sob o céu da Microsoft, a escolha do Silverlight pode obter funções mais poderosas mais rapidamente e elegantemente. Por que não escolher Silverlight?