Niektóre firmy, takie jak Blizzard, tworzą oprogramowanie, które nadal dobrze działa w przyszłych wersjach systemu Windows i nowszych wersje ich innych zależności oprogramowania. Inne firmy (głównie te, które nie są hardkorowymi firmami programistycznymi) czasami piszą oprogramowanie, które zrywa z wydaniem nowego systemu operacyjnego lub innego oprogramowania zależnego. Co wiedzą najbardziej zaangażowani producenci oprogramowania, czego nie wiedzą inni? Jakie są główne przyczyny problemów ze zgodnością w przód?
Komentarze
- Czy masz przykład czegoś, co się nie powiodło?
- @Fosco Wiele starszych gier, na przykład, jest niemożliwych do odtworzenia na nowoczesnych komputerach, niektóre z powodu zmian w systemie operacyjnym, inne z powodu rozwoju sprzętu.
- @Fosco ' Widziałem wiele takich rzeczy. Jedną, która szczególnie mnie wyróżnia, jest izraelska gra o zadaniach o nazwie Babcia X, która odmówiła pracy w czymkolwiek, co nie było ' t Windows 95 (nawet nie w Windows 95 ++, AKA Windows 98). Inne przykłady to stare programy astrologiczne używane przez moją matkę, programy edukacyjne dla dzieci itp.
- Diablo nie ' t (lub do niedawna ' t do niedawna) działały na Vista / 7 bez żadnych nakładek. Podobnie, kolory były błędne w StarCraft bez wyłączania powłoka eksploratora w 7.
Odpowiedź
Czy Blizzard napisał oprogramowanie, które dobrze współpracuje z przyszłymi wersjami systemu Windows (na przykład Starcraft nadal działa na 7) …
czy też Microsoft napisał „przyszłe wersje” oprogramowania, które wybiegają wstecz?
Coś takiego jak WoW nie jest dokładnie „wybiegające w przyszłość”, ponieważ wciąż jest w fazie rozwoju. Inne oprogramowanie, takie jak Starcraft / Warcraft / Diablo, zostało napisane na jakiś czas i zdarza się, że nadal działa, ponieważ MS robi wszystko, co w jego mocy, aby włączyć stare oprogramowanie na nowych systemach.
Blizzard ma również możliwość i powód, zaktualizować swoje stare gry. Bardzo popularne tytuły, które napędzają obecne oprogramowanie.
Niektóre programy używają hakerskich / niestandardowych części, które nie działają dobrze. Unikalne konfiguracje, działanie polegające na „starych” błędach, sterowniki, które nie są przenoszone do nowych systemów itp.
Komentarze
- +1 (6 lat później …) Ten artykuł cracked.com/… stwierdza, że podczas tworzenia Windows 95 Microsoft miał setki stażystów, którzy kupowali każde znalezione oprogramowanie i testowali je wszystkie. Jeśli oprogramowanie nie ' nie działało, modyfikowano system Windows, aż zadziałało. Powodem jest to, że gdyby oprogramowanie nie ' nie działało, użytkownicy nie ' nie obwinialiby firmy XYZ Software, ale Microsoft.
- Tak … +50 punktów dzisiaj od 6-letniej odpowiedzi. Cha Ching. I tak, odpowiedź wciąż brzmi prawdziwie – i to ' jest powodem, dla którego Windows wciąż króluje nad Macami i Linuksem: wsteczna kompatybilność. Nie ' nie mam pewności, że 10-letnie oprogramowanie będzie działać na Macu lub Ubuntu … Mam rozsądną pewność, że będzie działać w systemie Windows.
Odpowiedź
Z kilku powodów:
- Piszą zgodnie ze standardami, które nadal są obsługiwane w przyszłych systemach operacyjnych
- Firmy zajmujące się systemami operacyjnymi (np. MS) faktycznie wprowadziły dużo kodu, aby wspierać starsze oprogramowanie
- Duże popularne firmy programistyczne mają zwykle formalne lub nieformalne relacje z firmom OS, więc mogą zobaczyć rzeczy wcześniej.
Odpowiedź
Oto moje doświadczenie: wiele lata temu produkt, nad którym pracowałem, zaczął obsługiwać wtyczki innych firm. Wyślemy żądanie do wtyczki, na którą miała odpowiedzieć. Pierwszym parametrem wtyczki był numer identyfikujący żądanie, które wysłaliśmy. W tym momencie było tylko jedno żądanie . Mimo to udokumentowaliśmy, że powinieneś sprawdzić ten numer, a jeśli był to numer, którego nie rozumiesz, nie rób nic, tylko zwróć kod błędu o znaczeniu „Nie rozumiem tego żądania”. Wystarczająco proste. Pierwsza wersja z naszej strony poradziliśmy sobie z tym poprawnie. Nawet wysyłając pierwsze żądanie (jedyne, jakie mogliśmy kiedykolwiek wysłać) sprawdziliśmy, czy wtyczka odpowiedziała „nie rozumiem” i obsłużyliśmy ją.
Następnie dodaliśmy drugie żądanie. Przetestowano ze starymi wtyczkami, oczekując, że odpowiedzą „Nie rozumiem tego żądania”. Wszystkie wtyczki wykonały akcję dla pierwszego żądania. To nie jest zgodne z przyszłymi wersjami 🙁 Te wtyczki zostały wysłane do klientów i ulegały awarii z nowym wersja aplikacji.
Co zrobiliśmy: umieść oprogramowanie w kontekście, w którym pierwsze żądanie może zostać wykonane bez uszkodzeń. Wysłałem zupełnie inne żądanie.Jeśli odpowiedź nie brzmiała „t” nie „nie rozumiem”, wtedy wiedzieliśmy, że wtyczka została napisana przez idiotów i żadne inne prośby niż te, które opracowaliśmy jako pierwsze, nie zostały złożone.
Odpowiedź
Nie możesz zapewnić „kompatybilności w przód”, zależy to od twórców systemu operacyjnego i sprzętu. Najlepsza rzecz co możesz zrobić podczas pisania oprogramowania, to upewnić się, że nie używasz przestarzałych funkcji lub niestandardowych sztuczek.
Komentarze
- Niewykorzystanie pozbawionych funkcji lub niestandardowych sztuczek zajmie dużo czasu. Na przykład Metal Marines, gra z ery systemu Windows 3.1 (może w rzeczywistości Win 32s ), która renderuje obiekty graficzne poza głównym oknem gry, wystrzeliwując pociski na pulpit, dzięki pobieraniu kontekstu urządzenia i bezpośredniej zabawie z nim, nadal działa w systemach Windows XP i Windows 7. Myślę, że to wspaniały przykład uzyskania zgodności z poprzednimi wersjami dzięki zobowiązaniu firmy Microsoft ' do kompatybilności wstecznej .
Odpowiedź
Myślę, że pisanie do przodu zgodnego oprogramowania wymaga więcej wysiłku. Wartość (= koszt) jest warta, że zgodność musi zostać oceniona przez firmę wydającą.
Na przykład schematy bazy danych mogą się zmieniać. Można je migrować automatycznie (dla najlepszego doświadczenia użytkownika) lub zignorować (dla mniejszego wysiłku programistycznego) .
Odpowiedź
Niektórzy programiści czytają dokumentację i piszą kod, który używa systemu operacyjnego w sposób, który mówi je do. Inni programiści piszą kod szybciej i debugują każdy kod, który nie działa.
Dobrym przykładem może być kod, który nie radzi sobie z dwucyfrowymi oknami numer wersji; nie przejdzie testów w systemie Windows 8, ale gdy jest używany w systemie Windows 10… ..
W takim razie masz gry napisane tak, aby były jak najszybsze , omijając system operacyjny, który nie przejmuje się tym, czy będzie działał za kilka lat… ..
Weźmy programistę, który polegał na programowaniu działającym na oprogramowaniu uniksowym w czasach, gdy każdy dostawca miał własną wersję jednostki, która programista będzie bardzo przyzwyczajony do czytania standardów i TYLKO w zależności od tego, co mówią standardy. Ponieważ konieczność wysyłania oprogramowania w 6 różnych wersjach systemu Unix szybko uczy cię ostrożności. Porównaj to z programistą, który nauczył się na VB, gdzie często po prostu zmienia się kod, aż zadziała …… Ale umieść „programistę typu Unix” na tym samym zadaniu, co „programista typu VB” i często osobę, która uczyła się na VB da wyniki, które można sprzedać znacznie szybciej.
Podczas rozmów z pracownikami ludzie zwykle wybierają podobnie myślących ludzi, więc gdy firma ma pierwszych kilku pracowników, nowi pracownicy mają tendencję do myślenia w ten sam sposób.
Odpowiedź
Myślę, że głównym powodem braku zgodności z poprzednimi wersjami byłby brak pracujących programistów, którzy są również jasnowidzami.
Komentarze
- Ja ' mam kilka pkunk programistom właśnie z tego powodu. Płacę im w Pootworms, co jest niesamowicie tanie.