Microsoft nie jest „kochany” i warto o tym pamiętać – polemika

Natknąłem się wczoraj na wpis zatytułowany "Co z tobą, kochany Microsofcie?", zwrócił on moją uwagę tym bardziej, że wywiązała się pod nim spora dyskusja, wskazująca na zainteresowanie tematem. Jako obserwator działań Microsoftu od swoich lat najmłodszych zawsze chętnie przyglądam się nie tylko wiadomościom, ale i opiniom. I choć jestem wielkim fanem rozwiązań technicznych tej firmy (szczególnie rodziny Windows Server), z dużą ostrożnością podchodzę do sentymentalnego podejścia wobec Microsoftu. Przede wszystkim dlatego, że pamiętam w jaki sposób Microsoft doszedł do swojej potęgi i jak zachowywał się wkrótce potem. Były to metody i postawy niemożliwe do usprawiedliwienia i żadna dawka marketingu nie zdoła tego przykryć. Doskonale rozumiem, że dla kogoś Microsoft może być źródłem dobrych wspomnień i najchętniej dokonywanym wyborem spośród firm informatycznych (ogólnie pojętych). To kwestia czysto osobistego odbioru. Jednak o wiele łatwiej o obiektywizm podczas oceny zachowania firmy w świetle obowiązującej etyki. Wtedy prędko można dostrzec, że Microsoft nie jest tworem, który należy podziwiać. Pozwolę sobie na krótką polemikę z przytoczonym tekstem oraz przypomnienie kilku kwestii, które być może umykają kolektywnej pamięci. 

Apogeum siły MSFT przypada na końcówkę dwudziestego wieku. Microsoft lat dziewięćdziesiątych to firma niepodzielnie panująca na rynku komputerów osobistych, a racji słabo rozwiniętej miniaturyzacji, komputery osobiste były pokaźną częścią tortu o nazwie „consumer electronics”. Dziś te czasy są już tylko wspomnieniem, a my żyjemy zasypani smartfonami. Firma z Redmond nie może polegać na swojej dawnej inercji ze względu na przegapienie rynku mobilnego, więc postanowiła być modna, ładna i atrakcyjna. W ten sposób ludzie nabierają się na produktową estetykę, ponieważ dziś liczy się wyłącznie opakowanie (również takie czysto semantyczne, narracyjne). Ale wystarczy cofnąć się o kilkanaście lat, najlepiej w środek procesu Comes v. Microsoft, gdy na sali sądowej tłumaczy się zestresowany Bill Gates, aby przypomnieć sobie, z kim mamy do czynienia. 

Miły Gates, semi-celebryta i filantrop, wsławił się jako doskonały i bezwzględny biznesmen, który opanował do perfekcji różne formy zamęczania konkurencji. Wykazywał swoją nieprzejednaną postawę jeszcze w czasach, gdy jego imperium komputerowe osiągało rozmiary garażowego start-upu. Wtedy właśnie powstał „list do hobbystów”, dobitnie krytykujący piractwo oprogramowania, ze szczególnym uwzględnieniem (rzecz jasna) swojego produktu, jakim był Altair BASIC. Postawa przedsiębiorcza Gatesa wpłynęła na zbudowanie w Microsofcie całego systematu kultury biznesowej, która przetrwała wyłącznie dzięki opieszałości i niedostosowaniu systemu prawnego USA oraz braku gotowości do potyczek sądowych w nieokrzepłej jeszcze Unii Europejskiej. Zestawmy kilka przykładów manifestacji owej kultury.

USA v. MSFT

mój główny wpis na ten temat: Plan maksimum - Internet Explorer

Pozew „Stany Zjednoczone versus Microsoft Corporation”, będący efektem forsownej promocji przeglądarki Internet Explorer 4.0. MSFT przegapił nie tylko rynek mobilny w roku 2007. Popełnił zbliżony błąd w kwestii Internetu około 10 lat wcześniej. Windows 95 wystartował bez domyślnie zainstalowanej obsługi stosu TCP/IP. Wspomniana decyzja okazała się błędna dosłownie chwilę po premierze, gdy wskutek piorunująco szybkiej popularyzacji Internetu ludzie na masową skalę instalowali na komputerach przeglądarkę Netscape. Autorzy Netscape poczuli się tak pewni siebie, że zaczęli wspominać o stworzeniu systemów żyjących wyłącznie w przeglądarce (brzmi znajomo?), co wyeliminowałoby Windows z komputerów osobistych. Widmo marginalizacji okazało się na tyle przerażające, że Microsoft natychmiast wydał dodatek Plus do Windows, uruchamiający obsługę TCP/IP oraz dodający Internet Explorera 1.0. Nowe wydanie Windows 95 (SR-2), osobliwie dostępne wyłącznie w zakupie wraz z nowym komputerem, zawierało nieusuwalnego Internet Explorera 2.0. W przygotowaniu były wersje IE3 i IE4, gromadzące pod parasolem wzajemnych zależności coraz więcej technologii. W przeciwieństwie do wbudowanego programu pocztowego (Exchange), który był jedynie „powłoką” na sterowniki poczty dostarczane przez pozostałe firmy komputerowe, jak AOL, Internet Explorer był całym kompletem. Zawierał zarówno interfejs-powłokę, jak i swój własny, niemożliwy do zastąpienia silnik rysujący (Spyglass). W czasach, gdy Internet nie był oczywistą opcją dla komputera osobistego, a przeglądarki konkurowały ze sobą, zaopatrzenie systemu we własną było jawną formą nadużywania swojej przewagi. Internet Explorer był niewątpliwie droższy, niż Netscape, ale to za Netscape trzeba było płacić, a IE było „za darmo” – klient wszak raz już zapłacił.

Ale sprawa nie kończyła się tylko na tym. Microsoft oferował sprzedawcom zniżki za nieinstalowanie konkurencyjnych przeglądarek. Ponadto, wiele funkcji zostało sprzężonych z obecnością Internet Explorera w systemie: nowa wersja środowiska automatyzacji OLE była zależna od IE. Windows Media Player wymagał Internet Explorera do pracy. Office 97 technicznie go nie potrzebował, ale wymuszał jego instalację przy pierwszym uruchomieniu. Wreszcie Memphis, następca Windows 95, nie tylko zawierał usprawnienia w obsłudze nowych urządzeń (te bowiem przeportowano w dół do SR-2), ale był celowo zaprojektowany tak, by wiele jego elementów wymagało silnika rysującego HTML. Wymagały one w dodatku konkretnego silnika DHTML (Trident), którego nie dało się zastąpić niczym innym. Mimo, że technologia OCX pozwalałaby na taki zabieg, Memphis wykorzystywał nieudokumentowane funkcje IE. W dodatku jawnie „bronił się” przed instalacją alternatywnej przeglądarki. Mimo, że taki program dało się wykorzystać wyłącznie jako przeglądarkę, a nie jako cały „arsenał” i pęk technologii, jak IE – Memphis utrudniał zmianę przeglądarki i zmniejszał „discoverability” tych nowo zainstalowanych. Produkt miał zostać wydany jako Windows 98 i wielu nie podobało się, że aby w systemie działała Pomoc, musiał w nim być obecny Internet Explorer. Ze strony Microsoftu miały wręcz jawnie padać słowa o „odcięciu dopływu powietrza” do Netscape’a.

Pozew zakończył się dziwną ugodą, która oddaliła wyraźne przez chwilę ryzyko podziału firmy. Wbrew dość rażącym przewinieniom, cała sprawa nie była jednoznacznie odbierana jako „zły Microsoft kontra dobry Departament Sprawiedliwości”. Wiele osób wyrażało opinię, że USA zbyt mocno angażuje się w regulacje technologiczne i w przyszłości może być gorzej. Często jednak były to opinie formułowane wskutek błędnego utożsamienia Microsoftu z postępem technicznym. 

Trzy Razy E, czyli Java od Microsoftu

mój główny wpis na ten temat: Microsoftu przygody z Javą

Wśród parasola funkcji udostępnianych przez pakiet Internet Explorer znajdowała się też Java. Microsoft zaopatrzył system w „gotowość do uruchamiania apletów Javy bezpośrednio z pulpitu”, tworząc własną implementację maszyny wirtualnej (MSJVM). Była wyraźnie lżejsza i szybsza od referencyjnej Javy autorstwa firmy Sun, co wraz z dostępnością out-of-box przyczyniło się do jej popularyzacji. Jednak implementacja Javy w wykonaniu MSJVM była niekompletna, w czym Sun zaczął upatrywać celowości. Microsoft dodawał obsługę własnych mechanizmów zdalnego wywoływania procedur, pomijając te oferowane przez Sun. Ponadto, stworzył własny kompilator Javy, nazwany J++, rozszerzony o dodatki możliwe do stworzenia wyłącznie w Visual Studio, co z kolei sprzyjało wykorzystywaniu RPC, DHTML i ActiveX w konsekwencji zmieniało dotychczas wieloplatformowe programy w aplikacje dla Windows.

Microsoft został oczywiście pozwany przez firmę Sun i przegrał, w konsekwencji czego musiał usunąć wszystkie swoje Javy ze sprzedawanych produktów. Proces ten trwał aż pięć lat, ze względu na to, w jak wielu miejscach poupychano komponenty pakietu Internet Explorer.

Kerberos

Podobny numer wywinięto podczas tworzenia rozwiązania Active Directory. Bezkonkurencyjne (do dziś) rozwiązanie oparte o usługę katalogową było z niecierpliwością oczekiwane przez rynek, ze względu na swoją potęgę funkcjonalną i jednoczesne oparcie o otwarty standard LDAP i kontenery X.500. System obsługiwał nawet uwierzytelnianie oparte o sprawdzony i szanowany system Kerberos! Jednakże, kontroler domeny Windows 2000 używał „rozszerzenia” protokołu Kerberos. Rozszerzenia własnościowego, a więc de facto niestandardowego protokołu, w konsekwencji czego jedynie stacje z Windows 2000 mogły poprawnie zgłaszać się do domeny NT 5.0. Problem rozwiązano poprzez kradzież, a następnie nieuprawione opublikowanie dokumentacji pokrytej klauzulą NDA na portalu Slashdot. Nie mogąc walczyć z zastaną sytuacją, Microsoft w końcu opublikował swoje rozszerzenia Kerberosa jako… standard RFC. 

Można wspominać o wielu innych przykładach podejścia „embrace – extend – extinguish”, polegającego na niszczącym zgodność rozszerzaniu otwartych protokołów. Microsoft ma lata praktyki w owej polityce, często stosując metodykę odwrotną: sam publikuje swój standard jako otwarty, a następnie oferuje własną, referencyjną implementację – ale niezgodną ze standardem. Doskonałym przykładem jest tutaj Office. Formaty zapisu plików OOXML są standardem ECMA. Taki LibreOffice może więc sobie po prostu wziąć taki standard i stworzyć na jego podstawie własną implementację (o ile nie jest ona celowo złożona i nie ma 6000 stron, które i tak pomijają niektóre kwestie, jak SmartArt). Sęk w tym, że Microsoft Office produkuje dokumenty niezgodne z OOXML, prowadząc tym samym do stworzenia równoległego standardu de facto, który już udokumentowany nie jest. Gdy do złożoności standardu i faktu nieprzestrzegania go dodamy jeszcze fakt, że wiele komponentów, jak OLE i taki detal jak czcionki jest chronionych prawem autorskim, kwestie standaryzacji stają się zabawne. 

MSN

mój główny wpis na ten temat: A gdy nikt nie patrzył, wyłączono MSN

Microsoftowi zdarzyło się też nie tylko żerować na cudzym standardzie, ale i na całej cudzej infrastrukturze! Ich spóźniony komunikator MSN Messenger początkowo nie był klientem protokołu MSNP, ten bowiem nie istniał. MSN gadał przez sieć firmy America Online (AOL). Z tym, że AOL dostarczał własny komunikator… MSN oferował dodatkowe funkcje, działające tylko w swoim kliencie (mimo korzystania z sieci AOL), wskutek tego ludzie woleli używać klienta, który umie obie rzeczy, a nie tylko jedną. AOL w końcu wykopał Microsoft ze swojej sieci, przypominając uprzejmie, że nieco bezczelnym jest czerpać zyski z reklam w kliencie korzystającym za darmo i bez pozwolenia z cudzej infrastruktury. MSFT musiał z tego powodu stworzyć własną sieć. Dziś oba komunikatory już nie działają, a MSN został formalnie (acz nie praktycznie) zastąpiony przez program Skype. 

Kod AARD

Cofając się w czasie nieco dalej, natkniemy się na całą historię z kodem AARD, umieszczonym w próbnych wersjach Windows 3.1. Windows w tamtych czasach funkcjonował jako dziwne coś pomiędzy programem-nakładką a systemem operacyjnym, w oparciu o uproszczoną postać architektury wykorzystanej w Windows 95. Środowisko Windows było programem dla systemu MS-DOS. Program ten jednak uruchamiał własne sterowniki do zarządzania pamięcią, a następnie po przejściu w tryb chroniony, ładował infrastrukturę sterowników VxD, pozwalających na komunikację ze sprzętem, a nawet uruchomienie samego MS-DOS (z którego przecież startowano!) jako programu-sesji. 

mój główny wpis na ten temat: Oprogramowanie pozagrobowe - długa śmierć MS-DOS

Mimo swojego gigantycznego rozbudowania, Windows był jednak programem dla systemu MS-DOS, a otwarta architektura IBM PC doprowadziła nie tylko do powstania urządzeń-klonów, ale także sporej palety systemów „zgodnych z MS-DOS”, sprzedawanych między innymi przez firmy Novell, Digital Research i Caldera (pod nazwą DR-DOS). Klony DOS-a szczyciły się wysoką zgodnością z oryginałem, pozwalającą istotnie uruchamiać na nich nawet środowisko Windows. Wtem okazało się, że gdy ktoś chce korzystać z zalet Windowsów, wcale nie musi kupować DOS-a. Bill Gates wyraził osobisty niepokój i uaktywnił pana imieniem Jim Allchin, „That Vista Guy”. Allchin był wiernym wyznawcą morderczej kultury Microsoftu i prędko doprowadził, rękami Aarona Reynoldsa, do powstania palety testów pozwalających jednoznacznie sprawdzić czy program jest uruchamiany pod prawdziwym MS-DOS, czy pod klonem. Testy nie sprawdzały żadnych funkcji: dokonywały bezsensownej analizy bardzo specyficznych detali, jak miejsce tablic w pamięci. Owe detale nie przekładały się na funkcjonalność, były jedynie odciskiem palca, identyfikującym system operacyjny. Ukuto jednak naprędce narrację stanowiącą, że celem zachowania zgodności Windowsów z systemem konieczne jest, by system był uruchamiany na oryginalnym MS-DOS. Różnice między oryginałem a wariantem DR miały być nieznane i potencjalnie na tyle istotne, że świadczenie pomocy technicznej mogłoby się okazać niemożliwe. 

Test nazwano, od inicjałów autora, AARD i włączono do kodu instalatora Windows 3.1. Do tego dodano (na sztywno w tekście!) losowy numerek błędu 2761 i komunikat informujący, że instalacja się nie powiedzie. Błąd nie informował wprost, że winny jest DR-DOS. Po prostu tylko użytkownicy DR-DOS mieli okazję go kiedykolwiek ujrzeć. Kod odkryto i przeanalizowano, zrobiła się z tego duża afera i w finalnej wersji był on wyłączony, wskutek przekręcenia jednego bitu w kodzie WIN.COM. Zapewne nie miałoby to miejsca, gdyby nie pozew wytoczony przez Calderę, właściciela DR-DOS. Microsoft oczywiście przegrał i poszedł na ugodę, o wysokości 280 milionów dolarów. 

Windows 3.1 poszedł do klientów bez kodu AARD, ale i tak domyślnie działał na systemie MS-DOS. Wszak Microsoft bez żenady dodawał do swojego DOSa plik WINA20.386, plik przydatny wyłącznie dla posiadaczy Windows. Inni dostawcy musieli samodzielnie implementować tego typu kruczki. A nie mogli przecież znać wszystkich: mimo udokumentowania Windows API jako standardu, wszystkie produkty Microsoftu działające pod Windows 3.x korzystały z nieudokumentowanych API. Rodziło to teorie spiskowe na temat bezprawnej przewagi Microsoftu, wynikającej z niemożności wykorzystania pełnego potencjału Windows przez konkurentów. Pojawiały się też głosy, że kompilatory Microsoftu sprzedawane programistom są inne od tych używanych wewnętrznie w Microsofcie (w domyśle: celem zarezerwowania sobie tych wydajniejszych). Była to naturalnie prawda, ale z zupełnie innych powodów. 

Podsumowanie

Powyższe historie to jedyne wycinek drogi Microsoftu na szczyt. Była ona usłana tuzinami takich właśnie wydarzeń. Żadna porcja mody, żaden Fluent Design, modna fryzura Jona Belfiore ani pokazowy luz Dony Sarkar tego nie odczynią. Dziś Microsoft jest naturalnie zupełnie inną firmą. Steve Ballmer nie biega spocony, nie krzyczy „Developers!”, nie rzuca krzesłami i nie nazywa Linuksa rakiem. Nie ma już miejsca na postawę, którą wykazywano w ramach „corporate culture” przez bez mała trzydzieści lat.

Dalej mam zamiar korzystać z rozwiązań Microsoftu. Uwielbiam Active Directory, PowerShella i .NET. Codziennie używam wirtualizatorów Hyper-V i usług chmurowych, bo wszystkie z powyższych produktów uznaję za bezkonkurencyjne. Dlatego też zajmuję się zawodowo między innymi kontrolą wdrożeń Windowsów. Cenię MSFT i uznaję za wartościowego producenta oprogramowania. Ale nie odważyłbym się przy całym sentymencie, że jest to firma godna podziwu i szacunku. Nie powinna imponować, bo nie doszła do swojego statusu niczym, co byłoby imponujące. Oczywiście Microsoft w wykonaniu Nadelli jest zupełnie inny, niż Microsoft Gatesa i Ballmera. I dawny Microsoft nie byłby tak krwiożerczy, gdyby Satya Nadella był wtedy jego prezesem. Ale koniecznym jest pamiętać, o czym w zeszłym tygodniu mówiła Mary Jo Foley, że w tamtych czasach nie mogłyby zaistnieć okoliczności, w których Nadella zostaje CEO. 

  

Komentarze