Niepewna przyszłość menedżera e-booków Calibre: co zrobić, gdy stary język lepszy niż nowy?

Niepewna przyszłość menedżera e-booków Calibre: co zrobić, gdy stary język lepszy niż nowy?13.11.2018 23:03

Python jest niewątpliwie jednym znajważniejszych języków programowania. Ale Python Pythonowinierówny – za nieco ponad 13 miesięcy jego wersja 2.7 zostanieoficjalnie porzucona na rzecz Pythona 3, nie do końca z nimkompatybilnego. Ma to poważne konsekwencje dla stworzonego w tymjęzyku oprogramowania. Większość deweloperów bierze się zaprzepisywanie swoich aplikacji na nowe czasy. Ale niektórzynajwyraźniej wierzą, że sprawdzonych rozwiązań lepiej nieruszać. Należy do nich Kovid Goyal, twórca calibre, świetnegonarzędzia do zarządzania biblioteką e-booków.

Zegar odliczania do końca ery Pythona 2 bezwzględnie odliczasekundy do 1 stycznia 2020 roku, kiedy to podziękujemy temuzasłużonemu językowi programowania za wierną służbę i tysiąceznakomitych projektów software’owych. W teorii nie powinno być ztego powodu dramatu. Większość popularnych pakietów zrepozytoriów działa już Pythonie 3, przenoszenie kodu na nowąwersję języka jest bardzo dobrze udokumentowane,autorzy najważniejszego napisanego w Pythonie oprogramowaniazobowiązali się doporzucenia wsparcia dla Pythona 2 przed nastaniem 2020 roku.

Działa – nie ruszaj?

Jeden się postawił. Calibre (które znajdziecie w naszej bazieoprogramowania na Windowsai macOS-a)jest programem bez konkurencji w swojej kategorii. Pozwala nie tylkona zarządzanie katalogiem posiadanych e-booków, ale też na wygodnąkonwersję między przeróżnymi formatami, budowanie własnychksiążek, edytowanie ich, a za pomocą dodatkowych wtyczek nawetusuwanie zabezpieczeń DRM. Calibre jest też napisane w większościw Pythonie 2.7 z licznymi rozszerzeniami w języku C.

Zarazem jednak Calibre nie jest zbyt pięknie napisanym programem,ma spore problemy z bezpieczeństwem i wydajnością. Jest regularniepoprawiany, ale nigdy chyba nie przepisany od nowa. Poza samymtwórcą, Kovidem Goyalem mało kto przy nim cokolwiekrobi. I raczej się to nie zmieni, tym bardziej, że Goyalzamierza trzymać się tego co już zrobił z godnym lepszej sprawyuporem.

W zeszłym roku Darwin Wu zgłosiłpoważny problem z Calibre: Python 2 idzie na emeryturę, a więcczas na przejście na Pythona 3. Odpowiedź autora programu byłazaskakująca: nie, nie idzie. Jestem w stanie sam utrzymaćPythona 2. To znacznie mniej roboty niż migrowanie całej bazy koduCalibre.

Niezły żart? Niekoniecznie.Takie propozycje migracji były zgłaszane już kilkukrotniewcześniej,za każdym razem odrzucane, i nie bez podstaw. Przepisanie półmiliona linii kodu na nową wersję języka, która jak autortwierdzi gorzej sobie radzi w zastosowaniach, w których błyszczyPython 2, po prostu nie bardzo ma sens. Python 3 po prostu zupełnieinaczej niż Python 2 traktuje ciągi znaków (zmienne łańcuchowestring), co czyni go gorszym w przetwarzaniu pakietów sieciowych czyformatów plików.

Zrób to sam

Co więcej, w tej oczekiwanejkonwersji nikt tak naprawdę nie chciał Goyalowi pomóc. Wnajlepszymrazie zaoferowano mu moc obliczeniową do uruchomienia narzędziaautomatycznej konwersji 2to3,produkującego jak można sobie wyobrazić kod takiej sobie jakości,i wprowadzającego liczne regresje.

Sytuacja jest patowa. Możnasobie wyobrazić, że Goyal będzie samodzielnie łatać przezkolejne lata Pythona 2.7 tylko na potrzeby swojego Calibre. Sęk wtym, że eksperci nie raz już zwracali uwagę na bardzo swobodnepodejście tego programisty do kwestii bezpieczeństwa –najsłynniejsze było oczywiście wprowadzeniew imię wygody montowania systemów plików z czytników e-bookówzmian, programie, które pozwalały każdemu użytkownikowi uzyskaćuprawnienia administracyjne. Gdy pojawiły się pierwsze zgłoszenialuk wraz z gotowymi exploitami, Goyal zamiast naprawić problemwypisywał jedynie sarkastyczne komentarze. Czy sarkazm broni przezatakami?

A przecież Calibre jestprogramem, który z konieczności będzie miał do czynienia zplikami z zewnątrz, w tym być może uzłośliwionymi e-bookami.Działając na Pythonie 2.7 z niezałatanymi porządnie dziurami możepo prostu stać się zagrożeniem dla każdego swojego użytkownika.Porządne załatanie tych dziur jest zaś zdecydowanie ponad siłyjednego człowieka. Jeszcze do niedawna można było się spodziewać,że Red Hat pomoże w utrzymaniu Pythona 2.x przez kolejne lata (wkońcu za to płacą klienci), ale dziś po kupieniu Red Hata przezIBM-a wcale nie jest to takie pewne. Poza tym mało kto jest w stanieskorzystać z pakietów Pythona dostarczanych dla systemów RHEL czyCentOS.

W tej sytuacji wydaje się nam,że jest tylko jedno wyjście – Tauthon.Tauthon, pierwotnie nazywany Pythonem 2.8, jest jednym z najbardziejbezpośrednich sposobów na utrzymanie Pythona 2 przy życiu. To nicinnego niż fork Pythona 2.7.15, w pełni kompatybilny z oficjalnąwersją języka, do której stopniowo wprowadzane są najlepszefunkcje Pythona 3, takie jak składnia async/await czy argumentytylko w postaci słów kluczowych. Czy Goyal mógłby zdecydować sięna coś takiego?

Szanowna Użytkowniczko! Szanowny Użytkowniku!
×
Aby dalej móc dostarczać coraz lepsze materiały redakcyjne i udostępniać coraz lepsze usługi, potrzebujemy zgody na dopasowanie treści marketingowych do Twojego zachowania. Twoje dane są u nas bezpieczne, a zgodę możesz wycofać w każdej chwili na podstronie polityka prywatności.

Kliknij "PRZECHODZĘ DO SERWISU" lub na symbol "X" w górnym rogu tej planszy, jeżeli zgadzasz się na przetwarzanie przez Wirtualną Polskę i naszych Zaufanych Partnerów Twoich danych osobowych, zbieranych w ramach korzystania przez Ciebie z usług, portali i serwisów internetowych Wirtualnej Polski (w tym danych zapisywanych w plikach cookies) w celach marketingowych realizowanych na zlecenie naszych Zaufanych Partnerów. Jeśli nie zgadzasz się na przetwarzanie Twoich danych osobowych skorzystaj z ustawień w polityce prywatności. Zgoda jest dobrowolna i możesz ją w dowolnym momencie wycofać zmieniając ustawienia w polityce prywatności (w której znajdziesz odpowiedzi na wszystkie pytania związane z przetwarzaniem Twoich danych osobowych).

Od 25 maja 2018 roku obowiązuje Rozporządzenie Parlamentu Europejskiego i Rady (UE) 2016/679 (określane jako "RODO"). W związku z tym chcielibyśmy poinformować o przetwarzaniu Twoich danych oraz zasadach, na jakich odbywa się to po dniu 25 maja 2018 roku.

Kto będzie administratorem Twoich danych?

Administratorami Twoich danych będzie Wirtualna Polska Media Spółka Akcyjna z siedzibą w Warszawie, oraz pozostałe spółki z grupy Wirtualna Polska, jak również nasi Zaufani Partnerzy, z którymi stale współpracujemy. Szczegółowe informacje dotyczące administratorów znajdują się w polityce prywatności.

O jakich danych mówimy?

Chodzi o dane osobowe, które są zbierane w ramach korzystania przez Ciebie z naszych usług, portali i serwisów internetowych udostępnianych przez Wirtualną Polskę, w tym zapisywanych w plikach cookies, które są instalowane na naszych stronach przez Wirtualną Polskę oraz naszych Zaufanych Partnerów.

Dlaczego chcemy przetwarzać Twoje dane?

Przetwarzamy je dostarczać coraz lepsze materiały redakcyjne, dopasować ich tematykę do Twoich zainteresowań, tworzyć portale i serwisy internetowe, z których będziesz korzystać z przyjemnością, zapewniać większe bezpieczeństwo usług, udoskonalać nasze usługi i maksymalnie dopasować je do Twoich zainteresowań, pokazywać reklamy dopasowane do Twoich potrzeb. Szczegółowe informacje dotyczące celów przetwarzania Twoich danych znajdują się w polityce prywatności.

Komu możemy przekazać dane?

Twoje dane możemy przekazywać podmiotom przetwarzającym je na nasze zlecenie oraz podmiotom uprawnionym do uzyskania danych na podstawie obowiązującego prawa – oczywiście tylko, gdy wystąpią z żądaniem w oparciu o stosowną podstawę prawną.

Jakie masz prawa w stosunku do Twoich danych?

Masz prawo żądania dostępu, sprostowania, usunięcia lub ograniczenia przetwarzania danych. Możesz wycofać zgodę na przetwarzanie, zgłosić sprzeciw oraz skorzystać z innych praw wymienionych szczegółowo w polityce prywatności.

Jakie są podstawy prawne przetwarzania Twoich danych?

Podstawą prawną przetwarzania Twoich danych w celu świadczenia usług jest niezbędność do wykonania umów o ich świadczenie (tymi umowami są zazwyczaj regulaminy). Podstawą prawną przetwarzania danych w celu pomiarów statystycznych i marketingu własnego administratorów jest tzw. uzasadniony interes administratora. Przetwarzanie Twoich danych w celach marketingowych realizowanych przez Wirtualną Polskę na zlecenie Zaufanych Partnerów i bezpośrednio przez Zaufanych Partnerów będzie odbywać się na podstawie Twojej dobrowolnej zgody.