Czytając wpis i poprzedni na blogu Petera, nie mogłem uwierzyć własnym oczom. W jaki sposób człowiek, który jest sterem całego ruchu jabberowego, może wyciągać aż tak błędne wnioski?
Całe rozważania zaczynają się od obserwacji, że społeczność XMPP/Jabber przeżywa obecnie kryzys. Jabber stracił swój impet, zaczyna pogrążać się w marazmie i dreptać w miejscu. Owszem, cel numer 1 – zatwierdzenie XMPP jako proponowanego standardu IETF, został osiągnięty, ale wygląda na to, że nie mamy koncepcji co dalej. XMPP nie zyskuje na popularności tak szybko jak powinien. Jak zyskiwał ją Jabber.
Wniosek Petera jest prosty – „brak oprogramowania”. Mógłby się wydawać słuszny – brakuje oprogramowania, które można używać, więc protokół jest mało popularny. Rozwiązanie – stworzyć, bądź propagować tworzenie większej ilości oprogramowania.
Jest to wniosek przeprowadzony bardzo na skróty, a zaproponowane rozwiązanie, jest raczej leczeniem objawowym symptomów, a nie przyczyn. Prawdziwa przyczyna leży dużo głębiej.
Przeanalizujmy po kolei wnioski Petera.
„Brak dobrych bibliotek klienckich.” – Zgadza się. Wszystkie biblioteki klienckie których próbowałem, nadają się właściwie do niczego. Chlubnym wyjątkiem jest perlowa biblioteka Net::Jabber (ale już nie Net::XMPP), której używanie jest prawdziwą przyjemnością. A dlaczego nie ma tych bibliotek. O tym za chwilę.
„Potrzebujemy wieloplatformowego klienta.” – Z tym się absolutnie nie zgodzę. To czego potrzebujemy, to dobry klient na każdą popularną platformę. Ale nie JEDEN klient! Każda platforma ma swoją specyfikę i możliwości, których wieloplatformowy klient po prostu nie wykorzysta dobrze, starając się działać tak samo na każdej. Klienty powinny wykorzystywać wszystkie cechy unikalne dla danej platformy i integrować się z nią zupełnie.
„Biblioteka do tworzenia serwerów w Pythonie” – O ile nie mam nic do samego języka, to tworzenie implementacji serwera w Pythonie jest pomysłem strasznym. Jeśli mówimy o popularności, to musimy celować w masy. A jakie masy może obsłużyć kod w języku interpretowanym? Oczywiście, jeśli chcemy żeby XMPP był nadal zabawkowym projektem garstki zapaleńców, to Python jest świetnym narzędziem do programowania zabawek. Zabawek, które na zawsze pozostaną zabawkami.
„Wybór języka programowania” – Nie wiem na jakiej planecie żyjecie wy, ale na mojej Ziemii najpopularniejszym językiem programowania jest C. Ktoś kto jest koderem, musi znać C. Umiejętność kodowania w C jest potrzebna również każdemu hackerowi. Gdziekolwiek się nie ruszysz, prędzej czy później trafisz na C. Tak naprawdę tylko kod ściśle maszynowy (w jego przenośnej formie języka C) pozwoli na obsłużenie mas, w zdobycie których podobnież celujemy.
Powoli dochodzę do moich wniosków.
XMPP nie zdobywa popularności tak szybko jak byśmy chcieli, przez nasze własne działania. Jest naszym ukochanym dzieckiem. Naszą zabaweczką. Próbowaliśmy z całych sił, żeby był doskonały. W najlepszych intencjach. Stworzyliśmy go jednak bez testowania naszych pomysłów. Bez sprawdzania, czy pasują do rzeczywistości.
Jabber był (i nadal jest) odpowiedzią na potrzeby prawdziwego życia. Kiedy pojawiała się potrzeba jakiejś funkcjonalności, zostawała zaspokajana za pomocą nowego elementu protokołu. Kluczem do sukcesu tego protokołu było to, że zaspokaja potrzeby pojawiające się w prawdziwym życiu. A XMPP? Zawsze gdy zabieram się za implementowanie jakiejś funkcjonalności tego protokołu, szybko pojawiają się pytania „Czy ja tego w ogóle potrzebuję??”, „Dlaczego mam to robić??”. Sądzę, że to właśnie stoi za brakiem klienckich bibliotek XMPP – nikomu się nie chce tego oprogramowywać.
Słabym punktem protokołu XMPP jest brak „implementacji referencyjnej”. Został zaprojektowany przy założeniach „to byłoby fajne”. A teraz, gdy próbujemy go implementować, okazuje się, że spełnianie wszystkich jego wymagań jest co najmniej drażniące. Wymagań, które zostałyby odrzucone, gdyby kiedykolwiek były testowane „w prawdziwym życiu”.
Poświęciliśmy nasz pragmatyzm dla ideologii, a teraz narzekamy, że produktywni, ale pragmatyczni koderzy nie chcą dołączyć do naszej społeczności. XMPP nie jest jednak odpowiedzią na ich potrzeby. A Jabber… protokół Jabber nadal jest.
Przyczyną braku popularności nie jest więc brak oprogramowania. Jest on raczej skutkiem. Skutkiem naszych własnych poczynań.
Próbując uczynić Jabbera lepszym, udało nam się go właściwie zabić…
Archiwalny news dodany przez użytkownika: Tomasz Sterna.
Kliknij tutaj by zobaczyć archiwalne komentarze.