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

Dwa dni temu w serwisie Hacker News pojawił się całkieminteresujący wpis – refleksja nad stanem Windows. Jego autor, wczasie, gdy większość mediów ekscytuje się ułożeniem kafelkóww interfejsie Modern UI, poruszył problem znacznie poważniejszy,choć na pewno nie tak medialny, dotyczący stanu prac nad jądremWindows, najwyraźniej zaniedbanym, przynajmniej w porównaniu dotego, jaką atencją otoczone jest jądro Linuksa. Wpis wywołałsporą dyskusję, w której anonimowo udzielił się też jeden zdeweloperów jądra NT, ujawniając rzeczy, których Microsoft napewno 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, autorkontrowersyjnego wpisu na Hacker News, przekonanyjest, że ewolucja jądra NT przebiega zbyt powoli, znaczniewolniej niż w wypadku Linuksa, system Microsoftu jest też znaczniesłabiej testowany, niż Linux – szczególnie w takich kwestiachjak optymalizacja systemu plików, dostrajanie stosu TCP/IP pod siecibezprzewodowe czy testy planistów I/O i procesów. W efekcie, gdyobciążenia robocze przycisną Windows do podłogi, system tenzwalnia znacznie bardziej, niż gdy podobnie przyciśnie sięLinuksa.Oczywiście taki wpis potraktować można było jako prowokacjetrolla, ale dyskusja, jakasię wywiązała, dowiodła, że coś jest na rzeczy. Autortł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 tylkousterki, których usunięcie zajmuje zbyt wiele czasu, ale teżczęsto same założenia projektowe stosu sieciowego i sterownikówWindows, w których daje się odczuć brak innowacji. Architekturasoftware'owa, którą wykorzystywali do obsługi ruchu sieciowego10/100 Mbps nie skaluje się do 1000 Mbps – sugerujeBevand. Potem zrobiło się jeszczeciekawiej. 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ądremWindows, ale całą społeczną dynamikę rozwoju oprogramowania wMicrosofcie. Na dowód tego, że jest tym, za kogo się podaje,przedstawił wartość funkcji skrótu dla jednej z wersji źródławskazanego przez siebie pliku w aktualnym jądrze Windows. Kilkagodzin później wpis zniknął z serwisu, najwyraźniej usuniętyprzez samego autora, ale został zachowany na bloguBevanda, wraz z dodatkowym komentarzem, łagodzącym wydźwiękoryginalnego wpisu. Nawet jednak w złagodzonej wersji, oskarżeniapozostają poważne.[img=winkernel]Anonimowy programista przyznaje,że w wielu scenariuszach Windows okazuje się mniej wydajny, niżkonkurencyjne systemy operacyjne. Winę za to ponoszą przedewszystkim realia panujące w Microsofcie – nikt nie stara się oulepszenia dla samych ulepszeń, w imię chwały, jak tosię widzi w świecie Linuksa. Wszystkopodporządkowane jest celom biznesowym, nie ma żadnego oficjalnegoczy nieoficjalnego programu ulepszania wydajności systemu. Jest tak,jak było kiedyś z bezpieczeństwem: zaczęliśmy dbać obezpieczeństwo, bo Windows XP przed SP3 stał się egzystencjalnymzagrożeniem dla biznesu. Niska wydajność nie jest egzystencjalnymzagrożeniem dla biznesu. Struktura, w ramach której pracująprogramiści Windows sprawia, że opiekunowie poszczególnychkomponentów są otwarcie wrodzy względem wszystkich pochodzącychłatek. Programista, który przyjmie taką łatkę, ryzykować marozgniewaniem swojego szefa – bo trzeba będzie tę łatkęutrzymywać i usprawiedliwiać przed architektami niezaplanowanezmiany projektowe. Ryzykuje też rozgniewaniem testerów, którzywłaśnie zostali zmuszeni do dodatkowej pracy i rozgniewaniemmenedżerów projektu, bo właśnie wszystkie terminy zostałyprzesunięte. Bardzo łatwo jest w tej sytuacji powiedzieć „nie”,bardzo mało powodów, by powiedzieć „tak”. Gdy więc, jak piszeanonimowy programista, deweloper Linuksa wprowadzi poprawki,zwiększające szybkość listowania katalogów o 5 procent, spotkasię z podziękowaniami i pochwałami. W świecie Windows tak dobrzenie jest – jeśli zrobisz coś takiego, a nie jesteś w odpowiednimzespole, to nawet jeśli uda się przemycić kod, od swojegoszefostwa żadnych pochwał nie usłyszysz. Jedynie największeosiągnięcia są dostrzegane przez firmową wierchuszkę, a tewszystkie małe, przyrostowe ulepszenia są w najgorszym razieszkodliwe dla kariery programisty, w najlepszym razie neutralne.Drugim powodem problemów w Redmondjest to, jak trudno utrzymać w takich warunkach utalentowanychludzi. Podobno Google i inne wielkie firmy wyciągają z Microsoftunajlepszych, podczas gdy Microsoft zastępować ich musi młodymiludźmi świeżo po studiach, często bystrymi i zdolnymi, ale nieznającymi historii rozwoju komponentów za które odpowiadają, nierozumiejących powodów podejmowania kiedyś tych, a nie innychdecyzji – więc nie chcących też podejmować ryzyka związanego zdotykaniem tego, co już działa. Lepiej jest więc wymyślać dlanich nowe rzeczy, niż naprawiać stare. To dosłownewytłumaczenie PowerShella – wielu z nas chciało ulepszyćcmd.exe, ale nie mogło – pisze autor.Takich smakołyków jest w tekściewięcej (Wspierajmy linki symboliczne ale upewnijmy się, że niktnie może z nich korzystać, by nikt nas nie oskarżył o luki wbezpieczeństwie (…) kod NTFS to napędzany opium wiktoriańskihorror używający globalnych rekursywnych blokad i ustrukturyzowanejobsługi wyjątków do przepływu sterowania) i autor, choćtwierdzi że wciąż pod niektórymi względami jądro NT jest lepszeod Linuksa, to długo to już nie potrwa, właśnie z wspomnianychwyżej powodów personalnych.Czy autor przesadził? W oczachspołeczności Wolnego Oprogramowania Microsoft odgrywa w pewnymsensie rolę Związku Radzieckiego. W czasach Zimnej Wojny nazachodnich uniwersytetach funkcjonowała cała dziedzina wiedzy,zwana kremlinologią, związana z odgadywaniem sekretów tego, codzieje się za murami Kremla. Na podstawie najmniejszych nawetsygnałów snuto całe teorie o zależnościach w politbiurze,planach Pierwszego Sekretarza i działalności jego oponentów. Tutajpodobnie – z jednej anonimowej wypowiedzi wyciąga się dalekoidące wnioski, niekoniecznie jednak błędne. W porównaniu dopublicznego spektaklu, którym jest rozwój Linuksa, o rozwojuWindows wiemy po prostu bardzo mało – i to, że Microsoft takinacisk w publicznej komunikacji kładzie na sprawy drugorzędne (jaknp. Modern UI) wcale nie pomaga rozwiać wątpliwości co do dalszychlosów systemu.

Źródło artykułu:www.dobreprogramy.pl
Wybrane dla Ciebie
Komentarze (154)