O powstawaniu Windows. Jak tworzono najpopularniejszy system na świecie: Neptune
Makabryczne opóźnienia w tworzeniu Windows NT 5.0 oraz ciągle zmieniające się plany wydawnicze nie oznaczały, że Microsoft był pogrążony w całkowitym chaosie, wskutek którego w firmie nie powstawały żadne nowe rozwiązania. Przeciwnie, Microsoft końca lat 90-tych był firmą pełną innowacji, z których wiele osiągnęło dojrzałość dopiero wiele lat później. Ich historia często jest jednak przedstawiana dość pobieżnie.
31.08.2020 06:30
Dlatego tak dobrze znane są nieudane projekty (Cairo, Neptune, Longhorn), a za skuteczne inicjatywy uznaje się jedynie przymusową integrację internetu (zakończoną dominacją Internet Explorera) oraz rewolucyjny Windows 2000. To jednak myślenie za pomocą etykietek. Ambitnych, udanych przedsięwzięć było o wiele więcej. To, że nie powstały od razu (lub wersje Windows z nimi anulowano) nie oznacza, że nie stanowiły bardzo ważnego kamienia milowego w rozwoju Windows. Naprawić historięDoskonale widać to na przykładzie projektu Neptune. Jest on dziś znany głównie z bycia niewydaną wersją domową Windows 2000, anulowanym jego następcą oraz protoplastą projektu Whistler, czyli Windows XP. Nieco bardziej szczegółowe opracowania wspomną także o Centrach Aktywności oraz pracy wykonanej w ramach projektu Millennium. Bez wątpienia, Centra Aktywności to główny punkt programu w Neptune. Ale zajrzenie do wnętrza systemu pozwala się przekonać, nad czym Microsoft intensywnie pracował, chcąc wyrobić się na rok 2000. Zarówno w warstwie wizualnej, jak i programistycznej.
Kwestią, której potwierdzenie otrzymamy u każdego użytkownika komputerów Apple (i, co ważne, także wieloletnich jabłkowych "weteranów") jest to, że komputery PC zawsze były trudniejsze w obsłudze. Góra naleciałości historycznych sprawiała, że dopiero z upływem lat rozwiązano obrzydliwy problem zworek, przerwań i sterowników. Magistrale PCI i USB oraz automatyczna konfiguracja sterowników pojawiły się mniej więcej w połowie historii pecetów (zaczynającej się w 1981). Środowiska operacyjne również nie pomagały.
Każda nowa wersja Windows była w dawnych czasach przełomem pod względem użyteczności, ale wyłącznie ze względu na to, że wersja poprzednia była okropna. Windows 3.0 był sukcesem, bo poprzednicy dostarczali w zasadzie tylko czarno-biały tekst w kolorowych ramkach. Windows 95 był sukcesem ze względu na pasek zadań. Użytkownicy nie gubili uruchamianych programów, a nowicjusze wiedzieli "gdzie zacząć" (Start).
Lecz gdy komputery stawały się coraz bardziej multimedialne, użytkownicy byli stawiani np przed problemem w stylu "mam komputer i aparat cyfrowy – jak mam z niego zrzucić zdjęcia?". W systemie Windows 98 było to nietrywialne. Podpięcie aparatu nie kończyło się uruchomieniem pobierania zdjęć, a kreatorem instalacji sterownika. Mało przyjazny interfejs, trudny do zmuszenia do pobrania sterownika z internetu (często nieobecnego w Windows Update). Zazwyczaj oprogramowanie (anglojęzyczne) dostarczali producenci. Były to ciężkie, mało elastyczne kombajny.
Zadaniowy system
Dlatego Neptune miał oferować interfejs oparty o zadania. Zdjęcia? Proszę bardzo: uruchom Centrum Zdjęć i kliknij na "pobierz zdjęcia". Muzyka? Gotowe: Centrum Muzyki pozwala odtwarzać, zgrać z płyty i kupić w internecie muzykę. Pod spodem w systemie wciąż znajdowały się zaawansowane, pełnoprawne kreatory. Jednak już w 1999 roku pracowano nad tym, by zamiast "Okna powitalnego Kreatora importu fotografii i przezroczy" system oferował ładny przycisk "Pobierz zdjęcia".
Los Centrów Aktywności był marny. Językiem, w którym je pisano, był HTML. Rysujący je Internet Explorer, w wersji piątej otrzymawszy obsługę tzw. "aplikacji HTML" (HTA) był niewystarczający do tego, by stworzyć eleganckie, skuteczne i stabilne rozwiązania. Rozwijane w ramach projektu Millennium (to stamtąd bowiem pochodzą) Centra Aktywności zostały porzucone. Zaplecze techniczne wykorzystano tylko dla kilku interfejsów, Centrum Muzyki przerobiono na dedykowaną aplikację EXE (IE nie udźwignął interfejsu), a Windows XP wydano z klasycznymi kreatorami.
Dlatego też Centra Aktywności zapamiętano jako porażkę. A tymczasem dzięki wysiłkom zespołu Millennium otrzymaliśmy takie cuda, jak Windows Media Player, nowy Ekran Logowania, uniwersalny model WIA, Aktualizacje Automatyczne, Przywracanie Systemu i wbudowany komunikator. Można spotkać się z opinią, że Windows stałby się przyjazny w obsłudze kilka lat wcześniej dzięki Centrom, ale praktyka pokazuje, że to pomysł chybiony. Longhorn (i w konsekwencji Vista i 7) postawił na łatwą konfigurację urządzeń, ale przepływ pracy był oparty o klasyczne kreatory. Korzystały one po prostu z bardziej przyjaznego słownictwa.
Windows 8 wprowadził w zasadzie wszystkie założenia Neptune (pełnoekranowe interfejsy oparte o zadania, przezroczysta aktualizacja, szybkie uruchamianie, domyślna hibernacja), ale jego UI okazało się zbyt ułomne i niewystarczające nawet dla początkujących. Nieliczni już dziś użytkownicy Windows 8.1 zdecydowanie nie korzystają dziś z aplikacji Metro.
Java, ale od nas
Na tym zazwyczaj kończą się te pełniejsze opisy Neptune. Jest jednak pewien mało znany detal systemu Neptune, pokazujący kolejne, wielkie przedsięwzięcie w Redmond. Następcę środowiska COM, czyli podsystem COM+. Na sterydach. Neptune zawiera bowiem strzępy czegoś, co wygląda na .NET Framework.
Interfejsy oparte o zadania były ambitnym przedsięwzięciem zespołu konsumenckiego Windows. Model programowania oparty o HTML miał być koniem trojańskim, uzależniającym świat od Internet Explorera i był pokłosiem pospolitego ruszenia jeszcze z roku 1996. Ale w Microsofcie wiedziano, że Visual Basic i DHTML nie będą wystarczające do podbicia przyszłości. Na wiele sposobów były technologią lat 90-tych bez jasnej ścieżki rozwoju. Był to "pik Windows": produkt bardzo dobry, niemal idealny w swojej kategorii. Kategoria ta jednak odchodziła w przeszłość, a dowód na to był oczywisty i bardzo wyraźny. Java. Microsoft potrzebował czegoś takiego, jak Java. Nie udało mu się jej bowiem pokonać.
Neptune zawiera biblioteki DLL Fusion, środowiska ładowania aplikacji celujących w .NET CLR. Wersja ta nosi niewątpliwe znamiona bycia narzędziem .NET, ze względu na obsługę Assemblies oraz WinSxS oraz linkowanie do MSCOREE.DLL. Jakakolwiek wzmianka na temat MSCORLIB z roku 1999 powinna ciekawić, bowiem jest ona oddalona w czasie o rok od pierwszej wersji próbnej .NET i wiele miesięcy od ogłoszenia projektu w ogóle.
Bardzo opłacalna porażka
Opisy bibliotek sugerują, że nowy model programowania miał grać rosnącą rolę w kolejnych wersjach Windows. Fragmenty interfejsu i nowe funkcje miałyby być pisane w .NET, sugerowanym (wraz z MSI) jako rekomendowany sposób budowania i dystrybucji oprogramowania. A więc to nie Longhorn próbował stworzyć aplikacje oparte o .NET. Robił to już Neptune.
Ponieważ Windows nigdy nie otrzymał żadnego większego komponentu napisanego w .NET, próby zabawy z nim uznaje się za porażkę. Wadliwa wersja w Neptune, fiasko z Longhornem, wstydliwe przemianowanie "Windows.NET" na Windows XP i "Windows.NET Server" na Windows Server 2003 – na to wszystko można patrzeć jak na nieudaną próbę podbicia świata konkurentem Javy. Jednak bez owych porażek, .NET nie stałby się tym, czym jest dzisiaj: niezwykle atrakcyjnym, międzyplatformowym środowiskiem programowania.
Neptune przepadł w mrokach dziejów. System ten był tak bardzo eksperymentalny, że jego twórcy wydawali się wiedzieć, że nie ma on szans na wydanie. Nie zasługuje on jednak na miano porażki: był poligonem walki o lepszy produkt. Wraz z szalonym wyścigiem do Windows 2000, nowe interfejsy konsumenckie i środowiska programowania stworzone pod koniec XX-go wieku w Redmond, zdefiniowały kształt przyszłych systemów. Na niektóre z nich przyszło nam poczekać długie dwanaście lat.