BitKeeper

Jakaś dziwna sprawa z tym BitKeeperem. W skrócie: darmowa wersja klienta znika, a główne repozytorium źródeł jądra Linuksa nie jest już przechowywane w BK.

Czy tak się musiało stać? Większość twierdzi, że tak (,,a nie mówiłem”). Przynajmniej przy takim podejściu Larry’ego McVoya. Straszliwą naiwnością było sądzić, że nikt nie będzie przeprowadzał reverse engineeringu — przecież to tak, jak z wordowym formatem doc — gdyby nikt tego nie używał, nikt nie próbowałby odcyfrować formatu. Jak wiadomo tak nie jest i mimo niechęci Microsoftu, format jest rozszyfrowywany. Po decyzji Linusa o użyciu BK, było wiadomo, że popularność tego narzędzia wzrośnie i znajdą się łamacze.

Wiele osób zabierało się do reverse engineeringu. Na ogół z marnym skutkiem; części śmiałków zaczęły wystarczać narzędzia konwertujące do CVS/Subversion udostępniane przez BitMovera. W końcu do BitKeepera usiadł Andrew Tridgell (aka tridge), m.in. współautor i główny deweloper Samby, autor rsync. Wiadomo było, że opensource’owy klient o niemal pełnej funkcjonalności jest jedynie kwestią czasu. Wiedział o tym też Larry. I zrobił, co zrobił.

Zabranie licencji firmie OSDL i wycofanie Linuksa z BK spowoduje znaczny spadek zainteresowania BK ze strony większości środowiska OS i próby reverse engineeringu zapewne znikną — to, o co chodzi teraz Larry’emu, bo pewnie większość swoich celów już osiągnął. Udoskonalił produkt we współpracy z najbardziej wymagającymi klientami. Dostał dużo dobrego (choć nie zawsze) PR. Zyskał nowych klientów, nowe referencje. Trzy lata temu prawie nikt nie słyszał o firmie BitMover, a teraz będzie jej się nieźle wiodło.

Sądzę, że nie tylko Larry McVoy zyskał na tym trzyletnim związku. Linux miał dobre narzędzie do kontroli wersji i przez ostatnie 3 lata tempo rozwoju wyraźnie wzrosło (kerneltrap pisze, że dwukrotnie). Dodatkowo Linus wydaje się być już przekonanym, że narzędzie do kontroli wersji jest niezbędne do skutecznego rozwoju.

No i wreszcie nastąpił wysyp narzędzi do kontroli wersji. Poza CVS jest i Subversion, jest SVK, jest GNU Arch, jest Bazaar, jest DARCS, jest monotone (faworyzowane przez Linusa). Pewnie przeżyją dwa lub trzy narzędzia, ale może CVS w końcu przestanie być najpopularniejszym narzędziem oferowanym we wszystkich ,,hostowniach”.

Zastanawia mnie też naiwność ludzi robiących reverse engineering BitKeepera. W przypadku samby i formatu doc, Microsoft nie jest w stanie zdecydować się na krok ,,całkowicie przestajemy obsługiwać starą wersję formatu/protokołu, teraz potrzebna jest nowa wersja aplikacji/systemu”. BitMover może coś takiego zrobić. Część repozytoriów różnych projektów jest przechowywana u nich. Nic nie stoi na przeszkodzie zmienić protokół/format, przekonwertować repozytorium i rozdać wszystkim klientom nową wersję programu (wraz z ewentualnym narzędziem do konwersji repozytorium). Nie umiem powiedzieć, jak trudne to by było, natomiast wyrzuciłoby całą pracę wykonaną przez reverse engineerów do kosza.

Czy narzędzie do kontroli wersji w dużym rozproszonym projekcie powinno mieć otwartą licencję i źródła? Chyba jednak tak. Al Viro napisał na lkml, że nie był w stanie wytłumaczyć Larry’emu swoich potrzeb (albo Larry nie był w stanie ich zrozumieć), a to była jedyna droga do wprowadzenia tych udogodnień do BitKeepera. Widać więc, że poza argumentami ideologicznymi, były argumenty techniczne przeciw używaniu zamkniętego programu. I jest to jedyny argument za otwartością SCM, który mnie przekonuje. Generalizując: otwartość jest ważna w przypadku narzędzi dla programistów. W przypadku narzędzi skierowanych do ,,zwykłych” użytkowników, nie jest to kluczowym argumentem (osobiście nie udało mi się do tej pory skorzystać z dostępności źródeł OpenOffice.org czy Firefoksa).

Na koniec dobra wiadomość. Wygląda na to, że nawet w przypadku tak wielkiego projektu, jakim jest Linux, daje się zmieniać narzędzie SCM i związany z nim sposób rozwoju oprogramowania. Sądzę, że wiele projektów zostaje przy CVS, bo tak zawsze było i zmiana tego jest trudna. Być może, gdy zamienniki CVS będą szerzej dostępne na sourceforge, savannah, berlios, gna i innych, i będą wskazywane jako podstawowe, rozpocznie się migracja od CVS.

Reklamy

Skomentuj

Proszę zalogować się jedną z tych metod aby dodawać swoje komentarze:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Wyloguj /  Zmień )

Zdjęcie na Google

Komentujesz korzystając z konta Google. Wyloguj /  Zmień )

Zdjęcie z Twittera

Komentujesz korzystając z konta Twitter. Wyloguj /  Zmień )

Zdjęcie na Facebooku

Komentujesz korzystając z konta Facebook. Wyloguj /  Zmień )

Połączenie z %s