Sommige bedrijven, zoals Blizzard, maken software die goed blijft werken in toekomstige versies van Windows en met nieuwere versies van hun andere softwareafhankelijkheden. Andere bedrijven (meestal niet-hardcore softwarebedrijven) schrijven soms software die breekt met een release van een nieuw besturingssysteem of andere softwareafhankelijkheid. Wat weten de hardcore softwarebedrijven dat de anderen niet weten? Wat zijn de belangrijkste oorzaken van compatibiliteitsproblemen?
Opmerkingen
- Heb je een voorbeeld van iets dat is mislukt?
- @Fosco Veel oudere games zijn bijvoorbeeld niet speelbaar op moderne computers, sommige vanwege OS-wijzigingen, sommige vanwege hardware-vooruitgang.
- @Fosco Ik ‘ heb veel van dat soort dingen gezien. Een dat me vooral opviel, is een Israëlisch speurtochtspel genaamd Granny X dat weigerde te werken in iets dat niet ‘ t Windows 95 (zelfs niet op Windows 95 ++, AKA Windows 98). Andere voorbeelden zijn oude astrologieprogrammas die mijn moeder gebruikte, educatieve programmas voor kinderen, enz.
- Diablo doet het niet ‘ t (of werkte niet ‘ t tot voor kort) op vista / 7 zonder enig gedoe. Evenzo werden de kleuren in StarCraft lastig gevallen zonder uit te schakelen de verkenner-shell in 7.
Answer
Heeft Blizzard software geschreven die goed werkt met toekomstige versies van Windows (Starcraft speelt bijvoorbeeld nog steeds op 7) …
of heeft Microsoft “toekomstige versies” van software geschreven die achterwaarts gericht zijn?
Zoiets als WoW is niet echt “toekomstgericht” omdat het nog in actieve ontwikkeling is. Andere software, zoals Starcraft / Warcraft / Diablo, is voor die tijd geschreven en werkt nog steeds omdat MS er alles aan doet om oude software op nieuwe systemen in te schakelen.
Blizzard heeft ook de mogelijkheid, en reden, om zijn oude spellen bij te werken. Zeer populaire titels die de huidige software aansturen.
Sommige software maakt gebruik van hackachtige / niet-standaard onderdelen die niet goed werken. Unieke instellingen, afhankelijk van “oude” bugs om te werken, stuurprogrammas die niet worden overgedragen naar nieuwe systemen, enz.
Reacties
- +1 (6 jaar later …) Dit artikel cracked.com/… stelt dat tijdens het maken van Windows 95, Microsoft honderden stagiaires had die elk stukje software kochten dat ze konden vinden en ze allemaal testten. Als de software ‘ niet werkte, hebben ze Windows aangepast totdat het wel werkte. De reden hiervoor is dat als de software niet ‘ niet werkte, de gebruikers ‘ niet XYZ Software Company de schuld zouden geven, maar Microsoft.
- Ja … +50 punten vandaag van een 6-jarig antwoord. Cha Ching. En ja, het antwoord klinkt nog steeds waar – en het ‘ is waarom Windows nog steeds koning is over Mac en Linux: achterwaartse compatibiliteit. Ik heb geen ‘ er geen vertrouwen in dat 10 jaar oude software zal werken op een Mac of op Ubuntu … ik heb een redelijk niveau van vertrouwen dat het zal werken in Windows.
Antwoord
Verschillende redenen:
- Ze schrijven volgens standaarden die nog steeds ondersteund in toekomstige besturingssystemen
- OS-bedrijven (bijv. MS) hebben feitelijk veel code ingevoerd om oudere software te ondersteunen.
- Grote populaire softwarebedrijven hebben de neiging om formele of informele relaties te hebben met de OS-bedrijven, zodat ze dingen eerder te zien krijgen.
Antwoord
Hier is mijn ervaring: veel jaren geleden begon een product waaraan ik werkte, plug-ins van derden te ondersteunen. We zouden een verzoek naar de plug-in sturen, waarop deze moest antwoorden. De eerste parameter in de plug-in was een nummer dat identificeerde welk verzoek we deden. Op dat moment was er slechts één verzoek . Toch hebben we gedocumenteerd dat je dit nummer moet controleren, en als het een nummer was dat je niet begreep, doe dan niets anders dan een foutcode terug te sturen met de betekenis “Ik begrijp dit verzoek niet”. Simpel genoeg. De eerste versie van onze kant hebben we dit correct afgehandeld. Zelfs bij het verzenden van het eerste verzoek (het enige dat we ooit konden verzenden) hebben we gecontroleerd of de plug-in reageerde met “begrijp het niet” en hebben we het afgehandeld.
Vervolgens hebben we het tweede verzoek toegevoegd. Getest met oude plug-ins in de verwachting dat ze zouden reageren met “Ik begrijp dit verzoek niet”. Alle plug-ins voerden de actie uit voor het eerste verzoek. Dat is niet voorwaarts compatibel 🙁 Deze plug-ins waren naar klanten verzonden en zouden crashen met een nieuwe app-versie.
Wat we deden: de software in een context plaatsen waarin het eerste verzoek zonder schade kon worden uitgevoerd. Een totaal ander verzoek verzonden.Als het antwoord “niet” niet begrepen “was, wisten we vanaf dat moment dat de plug-in was geschreven door idioten en dat er geen andere verzoeken werden gedaan dan degene die we eerst hadden ontwikkeld.
Answer
Je kunt “geen” voorwaartse compatibiliteit “garanderen, het is aan de OS- en hardwaremakers. je kunt er bij het schrijven van software voor zorgen dat je geen verouderde functies of niet-standaard trucs gebruikt.
Reacties
- Het niet gebruiken van speciale functies of niet-standaard trucs zal je behoorlijk ver brengen. Bijvoorbeeld Metal Marines, een spel uit het Windows 3.1-tijdperk (misschien eigenlijk Win 32s ) dat grafische objecten weergeeft buiten het hoofdvenster van de game en raketten op het bureaublad lanceert, door een apparaatcontext te krijgen en er rechtstreeks mee te feesten, werkt nog steeds op Windows XP en Windows 7. Ik denk dat dit een geweldig voorbeeld is van het verkrijgen van compatibiliteit via Microsoft ‘ s toewijding aan achterwaartse compatibiliteit .
Answer
Ik denk dat het gewoon is dat het schrijven van compatibele software meer moeite kost. (= kosten) is de moeite waard als de compatibiliteit moet worden geëvalueerd door het vrijgevende bedrijf.
Databaseschemas kunnen bijvoorbeeld veranderen. Ze kunnen automatisch worden gemigreerd (voor de beste gebruikerservaring) of worden genegeerd (voor minder ontwikkelingsinspanning) .
Answer
Sommige programmeurs lezen de documentatie en schrijven code die het besturingssysteem gebruiken zoals de documentatie vertelt hen naar. Andere programmeurs schrijven sneller code en debuggen code die niet werkt.
Een goed voorbeeld is code die niet overweg kan met vensters met twee cijfers versienummer; het zal testen op Windows 8 niet mislukken, maar bij gebruik op Windows 10… ..
Dan heb je games die zo snel mogelijk zijn geschreven , het besturingssysteem omzeilen en er niet om geven of ze over een paar jaar zullen werken … ..
Neem een programmeur die leunde om te programmeren met Unix-software in de dagen dat elke leverancier zijn eigen versie van het apparaat had, dat programmeur zal erg gewend zijn aan het lezen van de standaarden en ALLEEN afhankelijk van wat de standaarden zeggen. Als u uw software op 6 verschillende versies van Unix moet verzenden, leert u snel om voorzichtig te zijn. Vergelijk dit met een programmeur die heeft geleerd op VB, waar het gebruikelijk is om gewoon de code te wijzigen totdat het werkt …… Maar zet de “Unix-type programmeur” op dezelfde taak als de “VB-type programmeur” en vaak de persoon die heeft geleerd op VB zal een resultaat opleveren dat veel sneller verkocht kan worden.
Bij het interviewen van personeel kiezen mensen vaak voor gelijkgestemde mensen, dus zodra een bedrijf de eerste paar personeelsleden heeft, hebben nieuwe medewerkers de neiging om na te denken op dezelfde manier.
Antwoord
Ik denk dat de belangrijkste reden voor een gebrek aan voorwaartse compatibiliteit het gebrek is van werkende programmeurs die toevallig ook helderziend zijn.
Reacties
- Ik ‘ heb er verschillende pkunk programmeurs om precies deze reden. Ik betaal ze in Pootworms, wat ongelooflijk goedkoop is.