Vissa företag, som Blizzard, tillverkar programvara som fortsätter att fungera bra i framtida versioner av Windows och med nyare versioner av deras andra programberoende. Andra företag (mestadels sådana som inte är hardcore-mjukvaruföretag) skriver ibland programvara som bryts med en version av ett nytt operativsystem eller annat programberoende. Vad vet hardcore-mjukvaruföretagen att de andra inte gör? Vilka är de främsta orsakerna till framåtkompatibilitetsproblem?
Kommentarer
- Har du ett exempel på något som misslyckades?
- @Fosco Många äldre spel kan till exempel inte spelas upp på moderna datorer, vissa på grund av OS-ändringar, andra på grund av maskinvaruförskott.
- @Fosco Jag ’ har sett massor av sådana saker. En som särskilt sticker ut för mig är ett israeliskt questspel som heter Granny X som vägrade att arbeta i något som inte var ’ t Windows 95 (inte ens på Windows 95 ++, AKA Windows 98). Andra exempel är gamla astrologiprogram som min mor använde, utbildningsprogram för barn osv.
- Diablo inte ’ t (eller fungerade ’ t tills nyligen) på vista / 7 utan lite finagling. På samma sätt var färgerna buggerade i StarCraft utan att inaktivera explorer-skalet i 7.
Svar
Skrev Blizzard programvara som fungerar bra med framtida versioner av Windows (Starcraft spelar fortfarande på 7 till exempel) …
eller skrev Microsoft ”framtida versioner” av programvara som ser bakåt?
Något som WoW är inte exakt ”framåtblickande” eftersom det fortfarande är i aktiv utveckling. Annan programvara, som Starcraft / Warcraft / Diablo, skrevs för tillfället och råkar fortfarande fungera eftersom MS gör allt för att aktivera gammal programvara på nya system.
Blizzard har också förmågan och anledningen, för att uppdatera sina gamla spel. Mycket populära titlar som driver dess nuvarande programvara.
En del programvara använder hackiga / icke-standardiserade delar som inte fungerar bra. Unika inställningar, beroende av ”gamla” buggar för att fungera, drivrutiner som inte portas till nya system etc.
Kommentarer
- +1 (6 år senare …) Den här artikeln cracked.com/… säger att Microsoft gjorde hundratals praktikanter när de tillverkade Windows 95 och köpte alla programvaror de kunde hitta och testade dem alla. Om programvaran inte fungerade ’ ändrade de Windows tills det gjorde det. Anledningen var att om programvaran inte ’ inte fungerade skulle användarna inte ’ skylla på XYZ Software Company, men Microsoft.
- Ja … +50 poäng idag från ett 6-årigt svar. Cha-ching. Och ja, svaret ringer fortfarande – och det är ’ varför Windows fortfarande regerar över Mac och Linux: bakåtkompatibilitet. Jag vet inte ’ att 10-årig programvara kommer att fungera på en Mac eller på Ubuntu … Jag har en rimlig grad av förtroende för att den kommer att fungera i windows.
Svar
Flera skäl:
- De skriver till standarder som fortsätter att vara stöds i framtida OS
- OS-företag (t.ex. MS) lägger faktiskt in en hel del kod för att stödja äldre programvara
- Stora populära programvaruhus tenderar att ha formella eller informella relationer med OS-företagen, så de får se saker tidigare.
Svar
Här är min erfarenhet: Många år sedan, en produkt som jag arbetade med började stödja plugins från tredje part. Vi skickade en begäran till pluginprogrammet, som det skulle svara på. Den första parametern i plugin-programmet var ett nummer som identifierade vilken begäran vi gjorde. Vid den tiden fanns det bara en begäran Ändå dokumenterade vi att du skulle kontrollera detta nummer, och om det var ett nummer som du inte förstod, gör inget annat än att returnera en felkod med betydelsen ”Jag förstår inte denna begäran”. Enkelt nog. Den första versionen på vår sida hanterade detta korrekt. Även när vi skickade den första förfrågan (den enda vi någonsin kunde skicka) kontrollerade vi om plugin svarade ”förstår inte” och hanterade det.
Sedan lade vi till den andra begäran. Testat med gamla plugins som förväntar sig att de skulle svara ”Jag förstår inte denna begäran”. Alla plugins utförde åtgärden för den första begäran. Det är inte framåtkompatibelt 🙁 Dessa plugins har skickats till kunder och skulle krascha med ett nytt appversion.
Vad vi gjorde: Sätt programvaran i ett sammanhang där den första begäran kunde utföras utan skada. Skickade en helt annan begäran.Om svaret inte var ”t” förstår inte ”så visste vi från och med då att plugin var skrivet av idioter och inga andra förfrågningar än den vi utvecklade först gjordes.
Svar
Du kan inte säkerställa ”framåtkompatibilitet”, det är upp till OS- och HW-tillverkarna. Det bästa du kan göra när du skriver programvara är för att säkerställa att du inte använder föråldrade funktioner eller icke-standardiserade tricks.
Kommentarer
- Om du inte använder svaga funktioner eller icke-standardiserade tricks tar du dig ganska långt. Till exempel Metal Marines, ett spel i Windows 3.1-eran (kanske faktiskt Win 32s ) som gör grafiska objekt utanför huvudfönstret och lanserar missiler över skrivbordet, genom att få en enhetskontext och festa med den direkt, fungerar fortfarande på Windows XP och Windows 7. Jag tycker det är ett fantastiskt exempel på att få framåtkompatibilitet via Microsofts ’ s engagemang för bakåtkompatibilitet .
Svar
Jag tror att det bara är att skriva framåtkompatibel programvara tar mer ansträngning. (= kostnad) är värt att kompatibiliteten måste utvärderas av det släppande företaget.
Till exempel kan databasscheman ändras. De kan migreras automatiskt (för bästa användarupplevelse) eller ignoreras (för mindre utvecklingsarbete) .
Svar
Vissa programmerare läser dokumentationen och skriver koden som använder operativsystemet på det sätt som dokumentationen säger dem att. Andra programmerare skriver kod snabbare och felsöker alla koder som inte fungerar.
Ett bra exempel är kod som inte klarar av fönster med två siffror versionsnummer; testet misslyckas inte på Windows 8, men när det används i Windows 10 … ..
Då har du spel som är skrivna för att vara så snabba som möjligt , kringgå operativsystemet och bryr sig inte om de kommer att fungera om några år …
Ta en programmerare som lutade sig till program som arbetar på Unix-programvaran de dagar som varje leverantör har sin egen version av enheten, det programmeraren kommer att vara mycket van att läsa standarderna och ENDAST beroende på vad standarderna säger. Som att behöva leverera din programvara på 6 olika versioner av Unix lär du dig snabbt att vara försiktig. Jämför detta med en programmerare som lärde sig på VB, där det är vanligt att bara ändra koden tills den fungerar …… Men sätt “Unix-typ programmerare” på samma uppgift som “VB-typ programmerare” och ofta den person som lärde sig på VB kommer att producera ett resultat som kan säljas mycket snabbare.
När man intervjuar personal tenderar människor att välja likasinnade människor, så när ett företag har sin första personal, tenderar ny personal att tänka på samma sätt.
Svar
Jag tror att den främsta orsaken till brist på framåtkompatibilitet skulle vara bristen av arbetande programmerare som också råkar vara klarsynta.
Kommentarer
- Jag ’ har flera pkunk programmerare av exakt denna anledning. Jag betalar dem i Pootworms, vilket är otroligt billigt.