Noen selskaper, som Blizzard, lager programvare som fortsetter å fungere godt i fremtidige versjoner av Windows og med nyere versjoner av deres andre programvareavhengigheter. Andre selskaper (hovedsakelig de som ikke er hardcore programvareselskaper) skriver noen ganger programvare som bryter med en utgivelse av et nytt operativsystem eller annen programvareavhengighet. Hva vet hardcore programvareselskapene at de andre ikke vet? Hva er de viktigste årsakene til problemer med fremoverkompatibilitet?
Kommentarer
- Har du et eksempel på noe som mislyktes?
- @Fosco Mange eldre spill, for eksempel, kan ikke spilles av på moderne datamaskiner, noen på grunn av OS-endringer, noen på grunn av maskinvarefordringer.
- @Fosco Jeg ‘ har sett mange sånne ting. En som spesielt skiller seg ut for meg er et israelsk søkespill kalt Granny X som nektet å jobbe med noe som ikke var ‘ t Windows 95 (ikke engang på Windows 95 ++, AKA Windows 98). Andre eksempler er gamle astrologiprogrammer moren min brukte, pedagogiske programmer for barn osv.
- Diablo ikke ‘ t (eller fungerte ikke ‘ t inntil nylig) på vista / 7 uten litt finagling. På samme måte ble fargene bugged i StarCraft uten å deaktivere utforskerskallet i 7.
Svar
Skrev Blizzard programvare som fungerer bra med fremtidige versjoner av Windows (Starcraft spiller fremdeles på 7 for eksempel) …
eller skrev Microsoft «fremtidige versjoner» av programvare som ser bakover?
Noe som WoW er ikke akkurat «fremoverlent» siden det fortsatt er i aktiv utvikling. Annen programvare, som Starcraft / Warcraft / Diablo, ble skrevet for tiden og fungerer tilfeldigvis fremdeles fordi MS går ut av deres måte å aktivere gammel programvare på nye systemer.
Blizzard har også muligheten og begrunnelsen, å oppdatere sine gamle spill. Veldig populære titler som driver den nåværende programvaren.
Noen programvare bruker hackish / ikke-standardiserte deler som ikke fungerer bra. Unike oppsett, avhengig av «gamle» bugs for å betjene, drivere som ikke blir portet til nye systemer osv.
Kommentarer
- +1 (6 år senere …) Denne artikkelen cracked.com/… sier at mens Microsoft produserte Windows 95, hadde hundrevis av praktikanter å kjøpe hver programvare de kunne finne og teste dem alle. Hvis programvaren ikke fungerte ‘, endret de Windows til det gjorde det. Årsaken var at hvis programvaren ikke ‘ ikke fungerte, ville ikke brukerne ‘ klandre XYZ Software Company, men Microsoft.
- Ja … +50 poeng i dag fra et 6 år gammelt svar. Cha-ching. Og ja, svaret ringer fortsatt – og det ‘ hvorfor Windows fremdeles regjerer over Mac og Linux: Bakoverkompatibilitet. Jeg har ikke ‘ jeg har ikke tillit til at 10 år gammel programvare vil fungere på en Mac eller på Ubuntu … Jeg har et rimelig nivå av tillit til at den vil fungere i windows.
Svar
Flere grunner:
- De skriver til standarder som fortsatt er støttet i fremtidige operativsystemer
- OS-selskaper (f.eks. MS) legger faktisk inn mye kode for å støtte eldre programvare.
- Store populære programvarehus har en tendens til å ha formelle eller uformelle forhold til OS-selskapene, så de får se ting tidligere.
Svar
Her er min erfaring: Mange år siden begynte et produkt som jeg jobbet med å støtte tredjeparts plugins. Vi sendte en forespørsel til plugin-en, som den skulle svare på. Den første parameteren i plugin-programmet var et nummer som identifiserte hvilken forespørsel vi kom med. På det tidspunktet var det bare en forespørsel Vi fremdeles dokumenterte at du skulle sjekke dette nummeret, og hvis det var et nummer du ikke forstod, må du ikke gjøre noe annet enn å returnere en feilkode med betydningen «Jeg forstår ikke denne forespørselen». Enkel nok. Den første versjonen på vår side håndterte dette riktig. Selv når vi sendte den første forespørselen (den eneste vi noen gang kunne sende), sjekket vi om pluginet svarte «forstår ikke» og håndterte det.
Så la vi til den andre forespørselen. Testet med gamle plugins som forventer at de vil svare «Jeg forstår ikke denne forespørselen.» Alle plugins utførte handlingen for den første forespørselen. Det er ikke kompatibel videre 🙁 Disse pluginsene ble sendt til kunder og ville krasje med en ny appversjon.
Hva vi gjorde: Sett programvaren i en kontekst der den første forespørselen kunne utføres uten skade. Sendte en helt annen forespørsel.Hvis svaret ikke var «ikke» ikke forsto, så visste vi fra da av at programtillegget ble skrevet av idioter, og ingen andre forespørsler enn den vi utviklet først ble gjort.
Svar
Du kan ikke sikre «fremoverkompatibilitet», det er opp til OS- og HW-produsentene. Det beste du kan gjøre når du skriver programvare, er for å sikre at du ikke bruker foreldede funksjoner eller ikke-standard triks.
Kommentarer
- Hvis du ikke bruker deprimerte funksjoner eller ikke-standard triks, tar du deg ganske langt. For eksempel Metal Marines, et Windows 3.1-epokespill (kanskje faktisk Win 32s ) som gjengir grafiske objekter utenfor hovedspillvinduet, og skyter raketter over skrivebordet, ved å få en enhetskontekst og feste med den direkte, fungerer fortsatt på Windows XP og Windows 7. Jeg synes det er et fantastisk eksempel på å få fremoverkompatibilitet via Microsofts ‘ s forpliktelse til bakoverkompatibilitet .
Svar
Jeg tror det bare er at det å skrive frem kompatibel programvare krever mer innsats. (= kostnad) er verdt kompatibiliteten må evalueres av det utgivende firmaet.
For eksempel kan databaseskjemaer endres. De kan migreres automatisk (for best brukeropplevelse) eller ignoreres (for mindre utviklingsinnsats) .
Svar
Noen programmerere leser dokumentasjonen og skriver koden som bruker operativsystemet på den måten dokumentasjonen forteller dem til. Andre programmerere skriver koden raskere og feilsøker hvilken som helst kode som ikke fungerer.
Et godt eksempel vil være kode som ikke kan takle vinduer som har to sifre versjonsnummer; det vil ikke mislykkes med testing på Windows 8, men når det brukes på Windows 10… ..
Så har du spill som er skrevet for å være så raske som mulig , omgå operativsystemet og ikke bry seg om de vil jobbe om noen år …
Ta en programmerer som lente seg til å jobbe med Unix-programvare de dagene hver leverandør har sin egen versjon av enheten, at programmerer vil være veldig vant til å lese standardene og KUN, avhengig av hva standardene sier. Som å måtte sende programvaren din på 6 forskjellige versjoner av Unix, lærer du deg raskt å være forsiktig. Sammenlign dette med en programmerer som lærte på VB, der det er vanlig å bare endre koden til den fungerer … Men sett «Unix type programmerer» på samme oppgave som «VB type programmerer» og ofte den som lærte på VB vil produsere et resultat som kan selges mye raskere.
Når de intervjuer ansatte, har folk en tendens til å velge likesinnede, så når et selskap har de første få medarbeiderne, har nye ansatte en tendens til å tenke på samme måte.
Svar
Jeg tror den viktigste grunnen til manglende fremoverkompatibilitet ville være mangelen av fungerende programmerere som også tilfeldigvis er klarsynte.
Kommentarer
- Jeg ‘ har flere pkunk programmerere av akkurat denne grunn. Jeg betaler dem i Pootworms, noe som er utrolig billig.