Blog (2)
Komentarze (4)
Recenzje (0)
@arek_91Programy a systemy operacyjne

Programy a systemy operacyjne

16.08.2010 23:37

Witam, jest to mój pierwszy wpis. Na co dzień nie prowadzę żadnych publikacji. Jestem świeżo upieczonym maturzystą, który spędza swój wolny czas na nauce programowania i ważniejszych aspektów związanych z dziedziną tworzenia gier.

Zastanawia mnie dlaczego na systemy Windows tworzone jest najwięcej komercyjnego oprogramowania. Czy te systemy aż tak się różnią, że Linux nie zdoła uruchomić komercyjnych programów czy gier? Nie, jeżeli deweloperzy nie dadzą mu szansy.

Punkt widzenia producentów oprogramowania

Systemy operacyjne Microsoft Windows są obecne najpopularniejszymi systemami instalowanymi na komputerach klasy PC i to na nim deweloperzy skupiają swoją uwagę. Mimo, iż Linux ma wielu zwolenników, to dla producenta jest to tylko jakiś niewielki odsetek. Nie będą tracić czasu, ani pieniędzy, żeby przepisywać program na systemy, których udział na rynku światowym nie przekracza kilku procentów.

Punkt widzenia użytkowników

Część użytkowników PC to laicy. Dostali metalową skrzynkę, do której podłączony jest telewizor, plastikową deskę z przyciskami i czymś małym co rusza tą strzałką na ekranie. Jakoś działa, a jak nie, to dzwoni do serwisu. Jak taka osoba ma wiedzieć, co to jest Linux, nie mówiąc już o zainstalowaniu jego? Część ma problem z przejściem z IE6, a to tylko przeglądarka! Nie można wymuszać na nich zmiany systemu, "dlatego, bo jest fajny, ale Word nie zadziała".

Są użytkownicy, którzy mają większe pojęcie o tym co się dzieje w ich systemie, ale cenią swój czas, wolą zapłacić i mieć święty spokój, niż tracić czas na instalację jakiegoś Wine i sprawdzanie, czy program zadziała, czy zawiesi się minutę przed zapisaniem. Grają w najnowsze komercyjne tytuły, których nie uruchomią bezpośrednio na Linuksie. Właśnie to, że "na Linuksie nie ma programów" najczęściej dyskwalifikuje dla nich ten system.

Nie mam tutaj na celu szufladkować użytkowników różnych systemów operacyjnych. Każdy użytkownik powinien mieć swoje zdanie, który system mu bardziej odpowiada. Jednakże uważam, że dostępność oprogramowania nie powinna mieć wpływu na tę decyzję, jednakże zwykły użytkownik często nie ma takiej możliwości.

Wniosek

Powstaje więc błędne koło, które tylko producenci oprogramowania mogą przełamać, tworząc porty swoich programów na więcej systemów. Niestety tworzą oni źródła nieprzenośne między platformami.

Co sprawia, że źródło jest nieprzenośne?

Obecnie najczęściej używanym językiem do tworzenia programów, w tym gier, jest C++. Dla tego języka mamy szeroki wybór kompilatorów na różne systemy. Kod napisany z użyciem tego języka i używającego standardowych bibliotek, jest najczęściej w pełni przenośny między kompilatorami i systemami.

Wszystko pięknie, ale bez systemowego API nie mamy dostępu do, nawet najprostszych, funkcji systemu operacyjnego, jak np: - graficzny interfejs, oparty na oknach i kontrolkach; - zaawansowana obsługa plików i folderów; - używanie sieci do wysyłania i pobierania pakietów

W momencie dodania systemowego API do programu, kończy się bezproblemowa przenośność danego kodu. Zaś kiedy dochodzi do przepisania aplikacji, funkcje sterujące danym systemem muszą zostać zastąpione przez polecenia dla nowego systemu. Zajmuje to sporo czasu, gdyż nieraz trzeba przepisać prawie cały program, a w źle zorganizowanym kodzie może wprowadzić wiele zamieszania i doprowadzać do błędów. A przecież wystarczyłoby użyć jakieś gotowej uniwersalnej biblioteki. Wtedy przenoszenie kodu sprowadzi się do ponownej kompilacji na nowy system bez żadnych zmian w kodzie.

Wybrane dla Ciebie
Komentarze (23)