Dawid Bautsch Dev Blog

No category

Microsoft otwiera źródła programu WinFile

dbautsch

W kwietniu 2018 roku firma Microsoft otworzyła źródła programu Microsoft WinFile na licencji MIT.

W świecie oprogramowania otwartoźródłowego jest to jedna z najbardziej liberalnych licencji. To świetna wiadomość dla wszystkich wielbicieli klasycznego oprogramowania.

Repozytorium kodu znajduje się w serwisie GitHub https://github.com/Microsoft/winfile

WinFile to menadżer plików. Jego następcą jest eksplorator Windows. Program swoje korzenie ma jeszcze w 16 bitowych graficznych nakładkach na MS-DOS. Pierwszą wersją windowsa, która zawierała WinFile był Windows 3.0. Można go było znaleźć również wśród plików systemowych Windows 95. Był głównym menadżerem plików w systemie operacyjnym Windows NT 3.1 i trafił do tej wersji razem z wieloma innymi programami z 16 bitowego świata, ponieważ ta wersja Windows NT współdzieliła kod powłoki (shell) z Windows 3.1. Rolę głównego menadżera plików przestał pełnić dopiero po aktualizacji „new shell” dla Windows NT 3.51.

Ponieważ WinFile dla Windows NT 3.5 był programem w pełni 32 bitowym, oznacza to, że będzie uruchamiał się on również bez najmniejszych problemów pod kontrolą Windows 10 x64. Nie dotyczy to oczywiście jego 16 bitowych kompilacji, które z wiadomych powodów pod 64 bitowym systemem nie będą działać natywnie.

Obecnie program rozwijany jest przez bardzo duże grono programistów poprzez serwis GitHub. Wprowadzane są modyfikacje w kodzie źródłowym poprawiające kompatybilność z innymi kompilatorami (G++ dla Windows czyli MinGW), usuwane są martwe bloki kodu 16 bitowego. Wśród developerów znalazły się również osoby z Polski, które dostarczyły polskie napisy do programu.

W kodzie źródłowym udostępnionym za pomocą GitHub znajduje się solucja zgodna z Visual Studio 2017. Program napisany został w całości w języku C. Wśród najnowszych zmian można już jednak znaleźć kod napisany w języku C++. W mojej opinii nie jest to najlepsze rozwiązanie, program powinien zostać spójny, jednak commity zostały zaakceptowane przez Microsoft i w ten sposób weszły do brancha master.

Szybki review kodu WinFile pozwala mi ocenić, że jest to typowy projekt aplikacji 16 bitowej z czasów systemu Windows 3.x. Kod źródłowy naszpikowany jest stałymi rozlokowanymi w różnych plikach (powiązanych jednak z kodem który znajduje się w owym pliku). Autorzy programu niestety prawdopodobnie tworzyli go pod znaczną presją czasu, ponieważ wiele założeń, które były spełnione w latach dziewięćdziesiątych, dzisiaj już nie zadziałają. Powoduje to mnóstwo problemów związanych z kompatybilnością. W mojej ocenie znacznie lepiej tutaj broni się kod źródłowy aplikacji open-source z tamtej epoki (kod źródłowy systemu UNIX na przykład). Całe boki martwego (zakomentowanego) kodu, magiczne stałe w kodzie programu, kompilacja warunkowa za pomocą dyrektyw preprocesora. Na plus można zaliczyć komentarze, które chociaż trochę pozwalają odnaleźć się w tym projekcie.

Trudno mi to napisać, jednak technicznie na pewno nie warto się wzorować na tym projekcie. Edukacyjne walory są również bardzo wątpliwe. Aplikacja dzisiaj ma już wartość wyłącznie sentymentalną dla ludzi, którzy w tamtych latach intensywnie korzystali z narzędzi i systemów firmy Microsoft.

Być może kiedyś program poddam głębszej analizie oraz procesowi code review, jednak na chwilę obecną nie widnieje to na mojej liście „must be done”.

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Back to top