Żaden nowy system operacyjny już nie powstanie [OPINIA]
Zbliżamy się powoli do etapu, na którym żaden system operacyjny nie działa poprawnie. Na swoje urządzenia narzekają użytkownicy Windowsów, Maków, Androidów i iPhone'ów. Wkrótce nastąpi pełna synergia: wymiana systemu na inny nic nie da, bo każdy będzie sprawiał inne problemy.
Może czas na coś nowego? Coś co zerwie z olbrzymim bagażem kompatybilności wstecznej i zostanie od początku do końca napisane wg sensownych praktyk i z uwzględnieniem zdrowego rozsądku - czyli na przykład bez obsługi pasków przewijania w trybie jądra? Owszem, zapewne świat czeka z niecierpliwością na coś nowego. Problem w tym, że najpewniej się nie doczeka. Stworzenie nowego systemu operacyjnego ogólnego przeznaczenie i skuteczne wdrożenie do na rynek jest już bowiem niemożliwe.
Łatwo tu marudzić na ogólny spadek jakości tworzonego oprogramowania (choć wcale nie jest on tak oczywisty, jak się wydaje) i brak fachowców. Można złośliwie insynuować, że Microsoft (lub Apple, Google i Amazon) po prostu nie ma ludzi, rękami których mógłby powstać tak zaawansowany projekt. Kusi także podważanie dzisiejszego cywilizacyjnego kapitału intelektualnego: nie latamy wszak na Księżyc i zajmujemy się głównie produkcją tandety.
Nikt nie umie pisać systemów
Ale problem z niemożnością stworzenia nowego systemu operacyjnego nie jest nowy. Ma już jakieś 30 lat, a nawet więcej. W latach osiemdziesiątych, IBM walczył o zmodernizowanie systemu PC-DOS, co się swoją drogą nie udało. A i wtedy nie celował on w procesor 386, a w poprzednika. Procesor 386 nie otrzymał systemu ogólnego przeznaczenia (a XENIX i inne dziwolągi się nie liczą) przez wiele lat od swojej premiery.
Microsoft nie był w stanie stworzyć systemu zdolnego wykorzystać 386 w pełni przez dobre kilka lat. Klasyczny Windows wykorzystywał jedynie kilka cech nowego procesora, ale nie był 32-bitowy. Sprawę miał rozwiązać NT, ale pracowano nad nim przez 5 lat. A i tak dopiero 8 lat później dało się go nazwać systemem "ogólnego przeznaczenia". Choć i wtedy notorycznie cierpiał na brak obsługi najnowszych standardów. Oprogramowanie nie nadążało za sprzętem.
Dziś platforma programowania rozwija się w o wiele bardziej przewidywalny sposób, a nowe standardy wprowadzane są przy jednoczesnym bardzo silnym wsparciu w kwestii sterowników i obsługi w systemach. Czy doprowadziło to do wznowienia prac nad nowymi systemami? Nie. Ostatnie głośne pomysły, jak HarmonyOS, okazują się rozczarowujące: dla przykładu, telefoniczna wersja owego systemu (a raczej "przedsięwzięcia") jest zbliżona do Androida o wiele bardziej niż przyznawano na początku.
API, głupcze!
Powód jest prosty: dla klienta liczy się nie system, a API: środowisko umożliwiające uruchamianie oprogramowania. API są wielkie i nie wszystkie są tak elegancko przenośne, jak .NET i Java. API systemu Windows jest zdecydowanie nieprzenośne i Microsoft uznaje, że nie warto próbować. System "dźwigający" środowisko programowania Windows mógłby być inżynieryjnie o wiele "lepszy", lżejszy i prostszy, ale jeżeli zacznie wywoływać problemy ze zgodnością, nikt nie będzie chciał go używać.
Ale problem jest też z samymi systemami, niezależnie od API "na górze". Nowy system oznacza nowe sterowniki. Nikt nie chce pisać kodu do obsługi sprzętu dla nieznanych systemów, bo nikt ich nie używa, a nikt ich nie używa, bo twórcy sprzętu nie chcą pisać dla nich osobnego kodu. To błędne koło czyni innowację niemożliwą.
API takiego, na przykład, Androida da się z niego wyrżnąć i osadzić na czymś innym (Microsoft właśnie nad tym pracuje), ale tym "czymś innym" raczej nie będzie nic nowego. Nowości nie mają szans na popularyzację, a przy takiej złożoności i mnogości sprzętu, droga do stabilnego wydania okazałaby się nieprzyzwoicie długa i kręta.
Dlatego najnowszy Windows może być wyposażony w pasek zadań czyniący go de facto nieużywalnym i zużywać 3 gigabajty pamięci nie robiąc nic, a macOS może rozłączać słuchawki, zawieszać się na 12-rdzeniowych procesorach i nie ładować baterii w środy. I nic nie zagrozi ich pozycji, bo konkurencji nikt nie zdąży napisać.
Powłoki, nie systemy
Zresztą, otwarta pozostaje kwestia tego, ile problemów z dzisiejszymi systemami to problemy naprawdę z systemami. Windows 11 wydaje się mieć głównie problemy ze swoimi żenującymi Modern-aplikacjami i powłoką. Gdy system zostanie z nich ogolony i otrzymamy coś na kształt Windows Server lub Windows PE, okaże się, że jest to całkiem solidny fundament. To zabawki na wierzchu sprawiają problemy. Osadzenie ich na innym systemie przeniesie na niego te same problemy.
Wreszcie, mimo feerii żenujących problemów w zabezpieczeniach windowsowych staroci, jak Spooler, NTLM i tym podobne, wcale nie jest oczywiste że nowy kod byłby bezpieczniejszy tylko dlatego, że jest nowy. Argumenty za przepisywaniem wielu rzeczy od zera "żeby było ładnie", często są poprawne jedynie teoretycznie: są fajnym zagadnieniem inżynieryjnym, ale bywają po prostu wymówką biorącą się z faktu, że kod jest łatwiej pisać niż czytać (łatwiej tworzyć nowy niż rozumieć i utrzymywać obecny).
Nie zanosi się na żadne przenosiny skostniałych API na inne systemy. Dlatego "nowy Windows oparty o Linuksa" to kompletnie odrealniona koncepcja. Nie zanosi się także na przepisanie całego świata na przenośne API: program księgowy z 2005 i oprogramowanie obsługi wycofanego ze sprzedaży CNC lub tomografu nie otrzyma nagle nowej wersji w C# z interfejsem w ASP.NET.
Na większe zmiany zanosi się dopiero wtedy, gdy nie będzie się już dało robić mniejszych tranzystorów. Bo nawet podmiana x86 na ARM nie wywołuje rewolucji. Czekają nas więc dziesiątki nowych Windowsów, o tych samych wadach, które znamy dzisiaj i które znaliśmy 15 lat temu.