r   e   k   l   a   m   a
r   e   k   l   a   m   a

Największy problem w rozwoju jądra Windows: programiści boją się wychylać?

Strona główna Aktualności

Dwa dni temu w serwisie Hacker News pojawił się całkiem interesujący wpis – refleksja nad stanem Windows. Jego autor, w czasie, gdy większość mediów ekscytuje się ułożeniem kafelków w interfejsie Modern UI, poruszył problem znacznie poważniejszy, choć na pewno nie tak medialny, dotyczący stanu prac nad jądrem Windows, najwyraźniej zaniedbanym, przynajmniej w porównaniu do tego, jaką atencją otoczone jest jądro Linuksa. Wpis wywołał sporą dyskusję, w której anonimowo udzielił się też jeden z deweloperów jądra NT, ujawniając rzeczy, których Microsoft na pewno nie chciałby wyjawić publicznie.

Rozwijanie oprogramowania za zamkniętymi drzwiami może mieć swoje zalety, ale kto wówczas usłyszy o wadach? Marc Bevand, autor kontrowersyjnego wpisu na Hacker News, przekonany jest, że ewolucja jądra NT przebiega zbyt powoli, znacznie wolniej niż w wypadku Linuksa, system Microsoftu jest też znacznie słabiej testowany, niż Linux – szczególnie w takich kwestiach jak optymalizacja systemu plików, dostrajanie stosu TCP/IP pod sieci bezprzewodowe czy testy planistów I/O i procesów. W efekcie, gdy obciążenia robocze przycisną Windows do podłogi, system ten zwalnia znacznie bardziej, niż gdy podobnie przyciśnie się Linuksa.

Oczywiście taki wpis potraktować można było jako prowokacje trolla, ale dyskusja, jaka się wywiązała, dowiodła, że coś jest na rzeczy. Autor tłumaczył, że za każdym razem, gdy pisał multiplatformową aplikację w C czy Javie, zawsze gorzej działała ona na Windows, bez względu na wersję systemu. Prawie nigdy nie udawało się uzyskać porównywalnej wydajności; powodem tego były nie tylko usterki, których usunięcie zajmuje zbyt wiele czasu, ale też często same założenia projektowe stosu sieciowego i sterowników Windows, w których daje się odczuć brak innowacji. Architektura software'owa, którą wykorzystywali do obsługi ruchu sieciowego 10/100 Mbps nie skaluje się do 1000 Mbps – sugeruje Bevand.

Potem zrobiło się jeszcze ciekawiej. Korzystając z Tora, anonimowy użytkownik, przedstawiający się jako programista jądra Windows, opublikował wpis ujawniający nie tylko naturę problemów prac nad jądrem Windows, ale całą społeczną dynamikę rozwoju oprogramowania w Microsofcie. Na dowód tego, że jest tym, za kogo się podaje, przedstawił wartość funkcji skrótu dla jednej z wersji źródła wskazanego przez siebie pliku w aktualnym jądrze Windows. Kilka godzin później wpis zniknął z serwisu, najwyraźniej usunięty przez samego autora, ale został zachowany na blogu Bevanda, wraz z dodatkowym komentarzem, łagodzącym wydźwięk oryginalnego wpisu. Nawet jednak w złagodzonej wersji, oskarżenia pozostają poważne.

Anonimowy programista przyznaje, że w wielu scenariuszach Windows okazuje się mniej wydajny, niż konkurencyjne systemy operacyjne. Winę za to ponoszą przede wszystkim realia panujące w Microsofcie – nikt nie stara się o ulepszenia dla samych ulepszeń, w imię chwały, jak to się widzi w świecie Linuksa. Wszystko podporządkowane jest celom biznesowym, nie ma żadnego oficjalnego czy nieoficjalnego programu ulepszania wydajności systemu. Jest tak, jak było kiedyś z bezpieczeństwem: zaczęliśmy dbać o bezpieczeństwo, bo Windows XP przed SP3 stał się egzystencjalnym zagrożeniem dla biznesu. Niska wydajność nie jest egzystencjalnym zagrożeniem dla biznesu.

Struktura, w ramach której pracują programiści Windows sprawia, że opiekunowie poszczególnych komponentów są otwarcie wrodzy względem wszystkich pochodzących łatek. Programista, który przyjmie taką łatkę, ryzykować ma rozgniewaniem swojego szefa – bo trzeba będzie tę łatkę utrzymywać i usprawiedliwiać przed architektami niezaplanowane zmiany projektowe. Ryzykuje też rozgniewaniem testerów, którzy właśnie zostali zmuszeni do dodatkowej pracy i rozgniewaniem menedżerów projektu, bo właśnie wszystkie terminy zostały przesunięte. Bardzo łatwo jest w tej sytuacji powiedzieć „nie”, bardzo mało powodów, by powiedzieć „tak”. Gdy więc, jak pisze anonimowy programista, deweloper Linuksa wprowadzi poprawki, zwiększające szybkość listowania katalogów o 5 procent, spotka się z podziękowaniami i pochwałami. W świecie Windows tak dobrze nie jest – jeśli zrobisz coś takiego, a nie jesteś w odpowiednim zespole, to nawet jeśli uda się przemycić kod, od swojego szefostwa żadnych pochwał nie usłyszysz. Jedynie największe osiągnięcia są dostrzegane przez firmową wierchuszkę, a te wszystkie małe, przyrostowe ulepszenia są w najgorszym razie szkodliwe dla kariery programisty, w najlepszym razie neutralne.

Drugim powodem problemów w Redmond jest to, jak trudno utrzymać w takich warunkach utalentowanych ludzi. Podobno Google i inne wielkie firmy wyciągają z Microsoftu najlepszych, podczas gdy Microsoft zastępować ich musi młodymi ludźmi świeżo po studiach, często bystrymi i zdolnymi, ale nie znającymi historii rozwoju komponentów za które odpowiadają, nie rozumiejących powodów podejmowania kiedyś tych, a nie innych decyzji – więc nie chcących też podejmować ryzyka związanego z dotykaniem tego, co już działa. Lepiej jest więc wymyślać dla nich nowe rzeczy, niż naprawiać stare. To dosłowne wytłumaczenie PowerShella – wielu z nas chciało ulepszyć cmd.exe, ale nie mogło – pisze autor.

Takich smakołyków jest w tekście więcej (Wspierajmy linki symboliczne ale upewnijmy się, że nikt nie może z nich korzystać, by nikt nas nie oskarżył o luki w bezpieczeństwie (…) kod NTFS to napędzany opium wiktoriański horror używający globalnych rekursywnych blokad i ustrukturyzowanej obsługi wyjątków do przepływu sterowania) i autor, choć twierdzi że wciąż pod niektórymi względami jądro NT jest lepsze od Linuksa, to długo to już nie potrwa, właśnie z wspomnianych wyżej powodów personalnych.

Czy autor przesadził? W oczach społeczności Wolnego Oprogramowania Microsoft odgrywa w pewnym sensie rolę Związku Radzieckiego. W czasach Zimnej Wojny na zachodnich uniwersytetach funkcjonowała cała dziedzina wiedzy, zwana kremlinologią, związana z odgadywaniem sekretów tego, co dzieje się za murami Kremla. Na podstawie najmniejszych nawet sygnałów snuto całe teorie o zależnościach w politbiurze, planach Pierwszego Sekretarza i działalności jego oponentów. Tutaj podobnie – z jednej anonimowej wypowiedzi wyciąga się daleko idące wnioski, niekoniecznie jednak błędne. W porównaniu do publicznego spektaklu, którym jest rozwój Linuksa, o rozwoju Windows wiemy po prostu bardzo mało – i to, że Microsoft taki nacisk w publicznej komunikacji kładzie na sprawy drugorzędne (jak np. Modern UI) wcale nie pomaga rozwiać wątpliwości co do dalszych losów systemu.

r   e   k   l   a   m   a
© dobreprogramy
r   e   k   l   a   m   a
r   e   k   l   a   m   a

Komentarze

r   e   k   l   a   m   a
r   e   k   l   a   m   a
Czy wiesz, że używamy cookies (ciasteczek)? Dowiedz się więcej o celu ich używania i zmianach ustawień.
Korzystając ze strony i asystenta pobierania wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.