it-swarm-es.com

¿Cuáles son las razones más comunes para la falta de compatibilidad hacia adelante?

Algunas compañías, como Blizzard, hacen que el software continúe funcionando bien en futuras versiones de Windows y con versiones más nuevas de sus otras dependencias de software. Otras empresas (en su mayoría, las que no son las compañías de software de hardcore), a veces escriben software que se rompe con una liberación de un nuevo sistema operativo u otra dependencia del software. ¿Qué saben las compañías de software Hardcore que los demás no? ¿Cuáles son las principales causas de los problemas de compatibilidad hacia adelante?

6
EpsilonVector

¿Blizzard Write Software que funciona bien con las futuras versiones de Windows (StarCraft aún se reproduce en 7 por ejemplo) ...

¿O escribió Microsoft "Versiones futuras" de software que está mirando hacia atrás?

Algo como WOW no es exactamente "mirando hacia adelante" ya que aún está en desarrollo activo. Otro software, como Starcraft/Warcraft/Diablo, se escribió por el momento y sucede que aún funciona porque la MS hace todo lo posible para habilitar el software antiguo en nuevos sistemas.

Blizzard también tiene la capacidad, y la razón, para actualizar sus viejos juegos. Títulos muy populares que impulsan su software actual.

Algunos programas utilizan piezas hackish/no estándar que no funcionan bien. Configuraciones únicas, dependientes de los errores "antiguos" para operar, los controladores que no están portados a nuevos sistemas, etc.

17
WernerCD

Muchas rasones:

  1. Escriben a las normas que siguen siendo apoyadas en el futuro de SO.
  2. Las compañías del sistema operativo (por ejemplo, MS) en realidad ponen una buena cantidad de código para apoyar el software anterior
  3. Las grandes casas de software populares tienden a tener relaciones formales o informales con las compañías del sistema operativo, por lo que pueden ver las cosas antes.
9
Martijn Verburg

Aquí está mi experiencia: hace muchos años, un producto en el que trabajé comenzó a apoyar complementos de terceros. Le enviaríamos una solicitud al complemento, que se suponía que debía responder. El primer parámetro en el complemento fue un número que identificó qué solicitud estábamos haciendo. En ese punto, solo hubo na solicitud. Aún documentamos que debe verificar este número, y si fue un número que no entendió, no haga nada más que devolver un código de error con el significado "No entiendo esta solicitud". Suficientemente simple. La primera versión de nuestro lado manejó esto correctamente. Incluso al enviar la primera solicitud (el único que podríamos enviar), verificamos si el plugin respondió "No entender" y lo manejamos.

Luego agregamos la segunda solicitud. Probado con los complementos antiguos que esperan que respondan "No entiendo esta solicitud". Todos los complementos realizaron la acción para la primera solicitud. Eso no es compatible con el reenvío :-( Estos complementos se habían enviado a los clientes y se estrellarían con una nueva versión de la aplicación.

Lo que hicimos: Pon el software en un contexto donde la primera solicitud podría realizarse sin daños. Envió una solicitud totalmente diferente. Si la respuesta no era "no entender", entonces sabíamos de entonces que el complemento fue escrito por los idiotas y no se hicieron solicitudes distintas de la que desarrollamos primero.

3
gnasher729

No puede asegurarse de "compatibilidad hacia adelante", depende de los fabricantes de OS y HW. Lo mejor que puede hacer al escribir software es asegurarse de que no está usando funciones desaprobadas o trucos no estándar.

2
AShelly

Creo que es solo que escribir un software compatible con adelantado requiere más esfuerzo. Si el esfuerzo (= costo) vale la pena la compatibilidad debe ser evaluada por la firma de liberación.

Por ejemplo, los esquemas de la base de datos pueden cambiar. Podrían ser migrados automáticamente (para la mejor experiencia de usuario) o ignorados (para un menor esfuerzo de desarrollo).

1
Joonas Pulakka

Algunos programadores leen la documentación y el código de escritura que usan el sistema operativo en la forma en que la documentación les dice. Otros programadores escriben código más rápido y depuran cualquier código que no funciona.

n buen ejemplo será el código que no puede hacer frente a las ventanas que tienen un número de versión de dos dígitos; no fallará las pruebas en Windows 8, pero cuando se usa en Windows 10 ...

Luego, tiene juegos que están escritos para ser lo más rápido posible, evitando el sistema operativo que no esté cuidando si trabajarán en unos pocos años ... ..

Tome un programador que se inclinó para programar el trabajo en el software UNIX en los días que cada proveedor tiene su propia versión de la unidad, ese programador estará muy acostumbrado a leer los estándares y solo dependiendo de lo que digan los estándares. Como tener que enviar su software en 6 versiones diferentes de UNIX le enseña rápidamente para tener cuidado. Compare esto con un programador que se enteró en VB, donde es común simplemente cambiar el código hasta que funcione ...... Pero coloque el "Programador de tipo UNIX" en la misma tarea que el "Programador Tipo de VB" y, a menudo, la persona que aprendió en VB producirá un resultado que se puede vender mucho más rápido.

Al entrevistar al personal, las personas tienden a elegir personas afines, por lo que una vez que una empresa tiene su primer personal, el nuevo personal tiende a pensar de la misma manera.

0
Ian