Alcune aziende, come Blizzard, realizzano software che continuano a funzionare bene nelle versioni future di Windows e con le più recenti versioni delle loro altre dipendenze software. Altre società (principalmente quelle che non sono società di software hardcore) a volte scrivono software che interrompe il rilascio di un nuovo sistema operativo o altra dipendenza dal software. Cosa sanno le aziende di software più esigenti che le altre non sanno? Quali sono le cause principali dei problemi di compatibilità con le versioni successive?
Commenti
- Hai un esempio di qualcosa che ha fallito?
- @Fosco Molti vecchi giochi, ad esempio, non sono riproducibili sui computer moderni, alcuni a causa di modifiche al sistema operativo, altri a causa di miglioramenti hardware.
- @Fosco ‘ ho visto molte cose del genere. Una che mi colpisce particolarmente è un gioco di ricerca israeliano chiamato Granny X che si rifiutava di funzionare in tutto ciò che non era ‘ t Windows 95 (nemmeno su Windows 95 ++, AKA Windows 98). Altri esempi sono vecchi programmi di astrologia che usava mia madre, programmi educativi per bambini, ecc.
- Diablo non ‘ t (o ‘ t fino a poco tempo fa) non funzionava su Vista / 7 senza alcun problema. Allo stesso modo, i colori erano alterati in StarCraft senza disattivarli la shell di explorer in 7.
Risposta
Blizzard ha scritto un software che funziona bene con le versioni future di Windows (Starcraft funziona ancora su 7 per esempio) …
o Microsoft ha scritto “versioni future” di software che guarda al passato?
Qualcosa come WoW non è “esattamente” lungimirante “poiché è ancora in fase di sviluppo attivo. Altro software, come Starcraft / Warcraft / Diablo è stato scritto per lepoca e sembra funzionare ancora perché MS fa di tutto per abilitare il vecchio software su nuovi sistemi.
Blizzard ha anche la capacità e la ragione, per aggiornare i suoi vecchi giochi. Titoli molto popolari che guidano il suo software attuale.
Alcuni software utilizzano parti hacker / non standard che non funzionano bene. Configurazioni uniche, che dipendono da “vecchi” bug per funzionare, driver che non sono portati a nuovi sistemi, ecc.
Commenti
- +1 (6 anni dopo …) Questo articolo cracked.com/… afferma che durante la realizzazione di Windows 95, Microsoft aveva centinaia di stagisti che uscivano a comprare ogni pezzo di software che potevano trovare e li provavano tutti. Se il software ‘ non funzionava, modificava Windows finché non funzionava. Il motivo è che, se il software ‘ non funzionasse, gli utenti non ‘ biasimerebbero XYZ Software Company, ma Microsoft.
- Sì … +50 punti oggi da una risposta di 6 anni. Cha-ching. E sì, la risposta suona ancora vera – ed è ‘ il motivo per cui Windows regna ancora su Mac e Linux: compatibilità allindietro. Non ‘ sono sicuro che un software vecchio di 10 anni funzionerà su un Mac o su Ubuntu … Ho un livello ragionevole di fiducia che funzionerà su Windows.
Risposta
Diversi motivi:
- Scrivono secondo standard che continuano ad essere supportati nei sistemi operativi futuri
- Le società di sistemi operativi (ad esempio MS) inseriscono effettivamente una buona quantità di codice per supportare il software più vecchio
- Le grandi software house popolari tendono ad avere relazioni formali o informali con le aziende di sistemi operativi, in modo che possano vedere le cose prima.
Answer
Ecco la mia esperienza: molti anni fa, un prodotto su cui ho lavorato ha iniziato a supportare plugin di terze parti. Avremmo inviato una richiesta al plugin, a cui avrebbe dovuto rispondere. Il primo parametro nel plugin era un numero che identificava la richiesta che stavamo facendo. A quel punto cera solo una richiesta . Tuttavia abbiamo documentato che dovresti controllare questo numero, e se era un numero che non hai capito, non fare altro che restituire un codice di errore con il significato “Non capisco questa richiesta”. Abbastanza semplice. La prima versione da parte nostra lo ha gestito correttamente, anche durante linvio della prima richiesta (lunica che avremmo mai potuto inviare) abbiamo verificato se il plugin rispondeva “non capisco” e labbiamo gestito.
Quindi abbiamo aggiunto la seconda richiesta. Testato con vecchi plug-in aspettandosi che rispondessero “Non capisco questa richiesta”. Tutti i plug-in hanno eseguito lazione per la prima richiesta. Non è compatibile con le versioni successive 🙁 Questi plug-in erano stati spediti ai clienti e si sarebbero bloccati con un nuovo versione dellapp.
Cosa abbiamo fatto: inserire il software in un contesto in cui la prima richiesta potrebbe essere eseguita senza danni. Inviata una richiesta completamente diversa.Se la risposta non era “t” non “non capisco”, allora sapevamo che il plugin era stato scritto da idioti e non venivano fatte richieste diverse da quella che avevamo sviluppato per prima.
Risposta
Non puoi “garantire la” compatibilità con le versioni successive “, dipende dai produttori di OS e HW. La cosa migliore ciò che puoi fare quando scrivi software è assicurarti di non usare funzionalità deprecate o trucchi non standard.
Commenti
- Non usare funzionalità deprecate o trucchi non standard ti porterà abbastanza lontano. Ad esempio, Metal Marines, un gioco dellera di Windows 3.1 (forse in realtà Win 32s ) che riproduce oggetti grafici al di fuori della finestra di gioco principale, lanciando missili sul desktop, ottenendo un contesto di dispositivo e partecipando direttamente ad esso, funziona ancora su Windows XP e Windows 7. Penso che sia un fantastico esempio di compatibilità con le versioni successive tramite limpegno di Microsoft ‘ per la retrocompatibilità .
Risposta
Penso che sia solo che scrivere software compatibile con il futuro richiede uno sforzo maggiore. Se lo sforzo (= costo) vale la compatibilità deve essere valutata dallazienda che lo rilascia.
Ad esempio, gli schemi di database possono cambiare. Potrebbero essere migrati automaticamente (per la migliore esperienza utente) o ignorati (per meno sforzi di sviluppo) .
Risposta
Alcuni programmatori leggono la documentazione e scrivono codice che utilizza il sistema operativo nel modo indicato dalla documentazione loro a. Altri programmatori scrivono il codice più velocemente ed eseguono il debug di qualsiasi codice che non funziona.
Un buon esempio sarà il codice che non può far fronte a finestre con due cifre numero della versione; non fallirà i test su Windows 8, ma se usato su Windows 10 … ..
Quindi hai giochi scritti per essere il più veloci possibile , aggirando il sistema operativo senza preoccuparsi se funzioneranno tra qualche anno … ..
Prendi un programmatore che si è spinto a programmare lavorando su software Unix nei giorni in cui ogni fornitore ha la propria versione di unità, che il programmatore sarà molto abituato a leggere gli standard e SOLO a seconda di ciò che dicono gli standard. Il fatto di dover spedire il software su 6 diverse versioni di Unix ti insegna rapidamente a stare attento. Confronta questo con un programmatore che ha imparato su VB, dove è comune cambiare il codice fino a quando non funziona ……. Ma metti il “programmatore di tipo Unix” sullo stesso compito del “programmatore di tipo VB” e spesso la persona che ha imparato su VB produrrà un risultato che può essere venduto molto più rapidamente.
Quando intervistano il personale, le persone tendono a scegliere persone che la pensano allo stesso modo, quindi una volta che unazienda ha il suo primo personale, il nuovo personale tende a pensare allo stesso modo.
Risposta
Penso che il motivo principale della mancanza di compatibilità con le versioni successive sarebbe la scarsità di programmatori attivi che sono anche chiaroveggenti.
Commenti
- I ‘ ne ho ricevuti diversi pkunk esattamente per questo motivo. Li pago in Pootworms, che è incredibilmente economico.