Algumas empresas, como a Blizzard, fazem software que continua a funcionar bem em versões futuras do Windows e com as mais novas versões de suas outras dependências de software. Outras empresas (principalmente aquelas que não são empresas de software hardcore) às vezes escrevem software que quebra com o lançamento de um novo sistema operacional ou outra dependência de software. O que as empresas de software hardcore sabem que as outras não? Quais são as principais causas dos problemas de compatibilidade com versões futuras?

Comentários

  • Você tem um exemplo de algo que falhou?
  • @Fosco Muitos jogos mais antigos, por exemplo, não podem ser reproduzidos em computadores modernos, alguns devido a mudanças no sistema operacional, outros devido a avanços de hardware.
  • @Fosco Eu ‘ já vi muitas coisas assim. Uma que se destaca particularmente para mim é um jogo de missão israelense chamado Granny X que se recusava a funcionar em qualquer coisa que não fosse ‘ t Windows 95 (nem mesmo no Windows 95 ++, também conhecido como Windows 98). Outros exemplos são antigos programas de astrologia que minha mãe usava, programas educacionais para crianças etc.
  • Diablo não ‘ t (ou não ‘ t até recentemente) funcionava no vista / 7 sem alguns detalhes. Da mesma forma, as cores foram alteradas no StarCraft sem desativar o shell do explorador em 7.

Resposta

A Blizzard escreveu um software que funciona bem com versões futuras do Windows (Starcraft ainda funciona no 7, por exemplo) …

ou a Microsoft escreveu “versões futuras” de software voltadas para o passado?

Algo como o WoW não é exatamente “voltado para o futuro”, uma vez que ainda está em desenvolvimento ativo. Outro software, como Starcraft / Warcraft / Diablo foi escrito para a época e ainda funciona porque a MS faz de tudo para habilitar software antigo em novos sistemas.

A Blizzard também tem a capacidade e a razão de para atualizar seus jogos antigos. Títulos muito populares que conduzem seu software atual.

Alguns softwares usam partes hackeadas / não padronizadas que não funcionam bem. Configurações exclusivas, que dependem de bugs “antigos” para operar, drivers que não são portados para novos sistemas, etc.

Comentários

  • +1 (6 anos depois …) Este artigo cracked.com/… afirma que enquanto fazia o Windows 95, a Microsoft tinha centenas de estagiários comprando todos os softwares que podiam encontrar e testando todos. Se o software não ‘ funcionou, eles modificaram o Windows até que funcionou. O motivo é que, se o software não ‘ funcionasse, os usuários não ‘ culpariam a XYZ Software Company, mas a Microsoft.
  • Sim … +50 pontos hoje com uma resposta de 6 anos. Cha-ching. E sim, a resposta ainda soa verdadeira – e ‘ é por isso que o Windows ainda reina sobre Mac e Linux: Compatibilidade com versões anteriores. Não ‘ não tenho confiança de que o software de 10 anos funcionará em um Mac ou no Ubuntu … Tenho um nível razoável de confiança de que funcionará no Windows.

Resposta

Vários motivos:

  1. Eles escrevem de acordo com padrões que continuam a ser suportado em futuros sistemas operacionais
  2. empresas de sistemas operacionais (por exemplo, MS) realmente colocam uma boa quantidade de código para oferecer suporte a software mais antigo
  3. grandes empresas de software populares tendem a ter relacionamentos formais ou informais com as empresas de sistema operacional, para que possam ver as coisas mais cedo.

Resposta

Aqui está minha experiência: muitas anos atrás, um produto no qual trabalhei começou a oferecer suporte a plug-ins de terceiros. Enviaríamos uma solicitação ao plug-in, ao qual ele deveria responder. O primeiro parâmetro no plug-in era um número que identificava qual solicitação estávamos fazendo. Naquele ponto, havia apenas uma solicitação . Ainda assim, documentamos que você deve verificar esse número e, se for um número que você não entendeu, não faça nada além de retornar um código de erro com o significado “Não entendo esta solicitação”. Simples o suficiente. A primeira versão do nosso lado tratamos isso corretamente. Mesmo ao enviar a primeira solicitação (a única que poderíamos enviar), verificamos se o plugin respondia “não entendo” e tratamos.

Em seguida, adicionamos a segunda solicitação. Testado com plug-ins antigos esperando que eles respondessem “Não entendo esta solicitação”. Todos os plug-ins executaram a ação da primeira solicitação. Isso não é compatível com versões futuras 🙁 Esses plug-ins foram enviados aos clientes e travariam com um novo versão do aplicativo.

O que fizemos: Colocamos o software em um contexto onde a primeira solicitação pudesse ser realizada sem danos. Enviamos uma solicitação totalmente diferente.Se a resposta não foi “t” não entendo “, então sabíamos que o plug-in foi escrito por idiotas e nenhuma solicitação além da que desenvolvemos primeiro foi feita.

Resposta

Você não pode “garantir a” compatibilidade futura “, isso depende dos fabricantes de SO e HW. A melhor coisa O que você pode fazer ao escrever software é garantir que não esteja usando recursos obsoletos ou truques não padrão.

Comentários

  • Não usar recursos obsoletos ou truques fora do padrão o levará muito longe. Por exemplo, Metal Marines, um jogo da era do Windows 3.1 (talvez, na verdade, Win 32s ) que renderiza objetos gráficos fora da janela principal do jogo, lançando mísseis na área de trabalho, obtendo um contexto de dispositivo e compartilhando com ele diretamente, ainda funciona no Windows XP e Windows 7. Acho que é um exemplo incrível de obtenção de compatibilidade progressiva por meio do compromisso da Microsoft ‘ com a compatibilidade com versões anteriores .

Resposta

Acho que escrever software compatível com o futuro exige mais esforço. Seja o esforço (= custo) vale a pena, a compatibilidade deve ser avaliada pela empresa de lançamento.

Por exemplo, os esquemas de banco de dados podem mudar. Eles podem ser migrados automaticamente (para melhor experiência do usuário) ou ignorados (para menos esforço de desenvolvimento) .

Resposta

Alguns programadores lêem a documentação e escrevem o código que usa o sistema operacional da maneira que a documentação diz para eles. Outros programadores escrevem código mais rápido e depuram qualquer código que não funcione.

Um bom exemplo será um código que não consegue lidar com janelas de dois dígitos número da versão; não falhará no teste do Windows 8, mas quando usado no Windows 10… ..

Então você tem jogos que são escritos para serem o mais rápidos possível , contornando o sistema operacional não se importando se eles funcionarão em alguns anos… ..

Pegue um programador que aprendeu a programar para trabalhar em software Unix nos dias em que cada fornecedor tinha sua própria versão de unidade, que o programador estará muito acostumado a ler os padrões e SOMENTE dependendo do que os padrões dizem. Como ter que distribuir seu software em 6 versões diferentes do Unix ensina rapidamente a ter cuidado. Compare isso com um programador que aprendeu em VB, onde é comum apenas mudar o código até que funcione … Mas coloque o “programador de tipo Unix” na mesma tarefa que o “programador de tipo VB” e muitas vezes a pessoa que aprendeu em O VB produzirá um resultado que pode ser vendido muito mais rápido.

Ao entrevistar funcionários, as pessoas tendem a escolher pessoas com pensamentos semelhantes, então, uma vez que uma empresa tem seus primeiros funcionários, os novos funcionários tendem a pensar da mesma forma.

Resposta

Eu acho que o principal motivo para a falta de compatibilidade futura seria a escassez de programadores ativos que por acaso também são clarividentes.

Comentários

  • Eu ‘ tenho vários pkunk programadores exatamente por esse motivo. Eu pago em Pootworms, que é incrivelmente barato.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *