Pergunta

Quando você está considerando um upgrade em uma ferramenta de desenvolvimento, o quão importante é compatibilidade com versões anteriores para você? Será que você ainda comprar o Visual Studio 2010 se necessário mudanças significativas em seu código-fonte? Onde está o ponto de inflexão para você em termos de compatibilidade com versões anteriores de negociação para novos recursos?

Foi útil?

Solução

Enquanto você perguntou isso do ponto de vista do desenvolvedor, eu acho que seria uma pergunta mais interessante, em referência ao software que você desenvolve. Então, eu vou responder a essa pergunta em seu lugar. :)

Hardware e software que é compatível com versões anteriores (e, mais importante, o futuro compatível) proporciona uma sensação de segurança para os seus usuários, especialmente quando se compra ou modernização de plataformas como o Windows. Se nada mais, o Windows é conhecida por sua atenção meticulosa aos compatibilidade com versões anteriores. Você pode executar programas escritos mais de uma década no Windows Vista com apenas problemas menores, desde que foram "bem escrito" (ou seja, não usar APIs não documentadas).

Por outro lado, a estrita atenção para compatibilidade com versões anteriores pode amarrar suas mãos quando você está tentando introduzir novas funcionalidades ou para revolucionar a plataforma. Apple sabia que tinha um OS morrendo, e em um de seus a maioria dos movimentos ousados, comprou a NeXT e decidiu fazer NeXTSTEP os novos MacOS. Uma das principais coisas que venderam as pessoas sobre a transição foi a camada clássico compatível com versões anteriores. Mais uma vez, quando a Apple decidiu mudar para chips Intel, um mecanismo para a execução de PowerPC Apps no Intel chamado Rosetta, junto com os binários Universal, permitiu que as pessoas circular livremente entre PowerPC e Intel, sem medo de perda de aplicação.

Uma coisa interessante é que, com a transição para Intel o ambiente Classic desapareceu, mas ninguém realmente se importa, porque eles tinham os anteriores 5 anos a transição longe do Mac OS 9. Por isso, é possível, eventualmente, perder o suporte para sistemas legados contanto como você tem uma maneira fácil de migrar para o novo sistema e dar tempo suficiente para fazê-lo seus usuários.

Outras dicas

Em uma ferramenta de desenvolvimento, se não fornecer compatibilidade total, com o meu código anterior, não vou comprá-lo e eu duvido que alguém faria. Francamente, não há nenhum ponto. Se eu já tenho um compilador que trabalha para construir o meu código fonte em código executável que funciona para mim, então eu vou usar isso. Por que se preocupar mudar meu código para se conformar com o que é, obviamente, para o ferramenteiro não um padrão? Se forçar mudanças de código fonte de uma versão para a outra, por que eles se preocupam em fazer a próxima versão compatível?

100% de compatibilidade para trás com fonte é um requisito. A única situação em que isso não é uma exigência total é quando os bits incompatíveis são extensões; ou seja, mudanças na API que são específicos para a ferramenta, como os plugins do Eclipse, etc. Mesmo assim, eu gostaria de compatibilidade, mas eu perceber que não pode ser totalmente esperado. Mas se você fornecer uma API para o desenvolvimento de base application / ferramenta, e não pode ser incomodado para manter a compatibilidade; bem, então você está claramente não sério sobre suas ferramentas, e eu não vou pagar o dinheiro sério para eles.

Para projetos de casa, compatibilidade com versões anteriores não é realmente importante. Para o escritório / empresa, é absolutamente crítico.

Depende do que ambientes que você precisa para apoiar e quais ferramentas de terceiros são usados ??que podem ou não ser compatabile.

Por exemplo, onde eu trabalho nós todos atualizado para VS2008 de VS2005, exceto para o nosso grupo BI como as ferramentas BI do SQL Server não eram compatíveis com VS2008. Uma vez que eles foram atualizados, eles atualizado para VS2008.

Ao olhar para VS specficially, tenha em mente que VS2008 pode direcionar o .NET 2.0, .NET 3.0 e .NET 3.5. O truque é perceber que ele realmente alvos NET 2.0 SP1 e .NET 3.0 SP1. Como tal, a atualização do IDE não deve exigir que você faça alterações em seu código.

Em genreal se você está desenvolvendo uma plataforma que irá ser constantemente utilizado por um grande número de outros usuários para construir seus próprios produtos, e pretende desenvolver a aplicação por um longo tempo, então é importante. Veja o PHP, Python, Eclipse e outros projetos de código aberto que colocam muita importância para compatibilidade com versões anteriores. Também é importan quando os serviços de desenvolvimento ou outras APIs abertas usado na arquitetura n-tier. Você pode ter todas as aplicações em uma empresa quebrando o tempo todo quando você mudar seus serviços.

Agora, se você está construindo uma aplicação de envoltório do psiquiatra ou um aplicativo bussiness, então não é tão importante, beacuse cada versão é separada de seus antecessores.

Uma vez que muitas mudanças estão acontecendo no campo de software e hardware, eu acho que é uma boa idéia para ser aberto para novas mudanças e melhores ferramentas enquanto você arquitecto sua solução. Por exemplo, não tivemos processadores multi core e placas gráficas high-end ou cartão de volta da rede em 90, então naturalmente os objetivos de otimização dos compiladores e as ferramentas eram diferentes. Mas, ao mesmo tempo estúdio Visual como ferramentas estão fazendo o seu melhor para acomodar as velhas estruturas e aplicativos.

Eu acho que se nós estamos olhando para a frente por um mundo melhor, devemos estar abertos a uma mudança constante até que esta indústria é super amadureceu. (Pode não acontecer em nosso tempo de vida embora :))

Definir "mudanças significativas". Eu iria para ele se as mudanças poderiam ser feitas com um cuidadosamente elaborado "procurar e substituir" mesmo se eles eram extensas.

No entanto, isso é o que I faria. Qualquer empresa que eu trabalhei para que se recusam a quaisquer alterações ao código existente.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top