Thunderbird: nad czym pracują w MZLA?
Mozilla Thunderbird, choć rozwija się wolniej niż Firefox, wciąż otrzymuje nowe wersje oraz interesujące nowości. Nie jest całkowicie skostniałym antykiem z dawnych czasów: obsługuje logowanie do Gmaila z dwuskładnikowym uwierzytelnianiem, posiada natywną obsługę GPG, a także klienta protokołu Matrix. Czy się jeszcze coś poprawić w programie pocztowym w 2022 roku?
26.01.2022 | aktual.: 26.01.2022 09:29
Programy pocztowe popadły w niełaskę, zwłaszcza po tym, jak rynek skrzynek podzieliły między siebie Gmail i Outlook. Obecnie najczęstszy scenariusz do korzystanie z google'owskiego webmaila lub auto-konfigurowanego Outlooka w przypadku wdrożeń Microsoft 365. Poczta obsługiwana przez program jest stosowana głównie dla dedykowanych serwerów, o niższym stopniu integracji skrzynki z chmurą. Nie oznacza to jednak, że dla Thunderbirda nie ma już miejsca. Autorzy nie ustają w pracach nad jego modernizacją.
Czegoś brak
Każdy użytkownik Thunderbirda jest w stanie prędko wymienić jego braki i słabości. Skomplikowana natywna obsługa chmurowych kalendarzy. Archaiczny kształt, ubóstwo funkcjonalne i mylący interfejs książki adresowej. Dublowanie funkcji filtra antyspamowego. A także wciąż nieobecna obsługa wieloskładnikowego uwierzytelniania dla Hotmaila.
Są jednak rzeczy, które Thunderbird robi wyraźnie lepiej od pozostałych, nierzadko na tyle, że pewne braki można mu wybaczyć. Być może uda mu się przegonić funkcjonalnością i swobodą integracji chmurowej aplikację Microsoft Outlook zanim ta zdąży pozbyć się swoich nieznośnych, nieprzemijających od lat wad.
Gdy spojrzymy na roadmapę nadchodzącej wersji Thunderbirda, możemy zobaczyć wiele nadchodzących nowości, które łatwo uznać za "potrzebne na wczoraj". Jest tam między innymi ułatwione importowanie skrzynek z kopii zapasowej oraz automatyczne generowanie książek adresowych na podstawie zawartości skrzynki odbiorczej także wstecz. A więc nie tylko nowe, ale wszystkie obecne w skrzynce wiadomości, zostaną użyte do szybkiego auto-uzupełniania adresów.
Archaizmy
Nadchodzi także nowy interfejs dla książki adresowej. W przypadku wersji beta jest przeniesieniem 1:1 wersji okienkowej na wersję "żyjącą" w dedykowanej karcie, ale dzięki temu książka zostanie przeniesiona na łatwiejszy w utrzymaniu kod. Może to przyspieszyć wydawanie nowych wersji. Najbliższe wydanie zaoferuje np. wykrywanie duplikatów.
To nie wszystko. Wiele usprawnień otrzyma kalendarz, ułatwiając zarządzanie nie tylko samymi wydarzeniami, ale także zbiorami RSVP (akceptacji/odmowy uczestnictwa w spotkaniu wystawionym "do kalendarza", poprzez przekształcanie załączników iCal w wydarzenia). Serwery SMTP zostaną wreszcie połączone z ustawieniami konta. Obecnie, Thunderbird stosuje rozwiązanie z pakietu Netscape 6 (i właściwe dla czasu jego powstania, czyli roku 2000): centralną konfigurację serwerów SMTP, które można przypisywać kontom.
Wynika to z internetowo prehistorycznych zaszłości, gdy SMTP było oferowane przez operatora ISP i możliwe było korzystanie z niego dla dowolnego konta. E-mail jest bowiem całkowicie pozbawiony zabezpieczeń: serwerowi SMTP można (teoretycznie, dziś jest trudniej) podać dowolny adres wychodzący i nadawcę. Praktyką było więc kiedyś mieć wiele skrzynek, ale jeden serwer SMTP. To było dawno temu.
JavaScript?
Wśród punktów roadmapy znajduje się kilkanaście zadań "in JavaScript": jak POP3 in JavaScript, Message Editor in JavaScript i tak dalej. Czy to oznacza, że UI Thunderbirda jest przepisywane do JavaScriptu?
Nie. Oznacza to, że cały Thunderbird jest przepisywany do JavaScriptu. I nie jest to nowość. Proces ten następuje powoli już od wielu wersji. Być może jest to dobra okazja na powtórkę, z czego składa się Thunderbird. W kolejności od najmniejszego do największego, składniki są następujące: biblioteki Visual C++, NSS, PGP, DirectX/GLX a także dwa olbrzymie pliki - xul.dll oraz omni.ja (odpowiednio 120 i 80 megabajtów).
Xul zawiera nie tylko "wyświetlacz" UI oraz parser. Jest biblioteką-kontenerem na wszystko, co kompilowane. A omni.ja? No cóż… jest to rosnąca, coraz większa partia Thunderbirda napisana w JavaScripcie. I chodzi tu nie tylko o interfejs, ale także o funkcje, całkiem istotne. Plan na najbliższe wersje zakłada, że całe UI, kompozytor maili oraz zaplecza techniczne dostawców poczty zostaną zaimplementowane jako kod JS.
Wydajność czy utrzymanie?
Zanim podniesie się sprzeciw dotyczący przepisywania programu na ciężki język, warto wspomnieć o zaletach. Pierwsze dotyczą procesu wydawniczego. Firefox (i w konsekwencji Thunderbird), podobnie jak Mozilla i Netscape wcześniej, znajdują się w permanentnym stanie przestarzałej bazy kodowej. Każda kolejna inkarnacja była lepsza od poprzedniej, ale prędzej czy później okazywała się niewystarczająco dobra. Napisanie Thunderbirda w wysokopoziomowym języku znacząco ułatwi utrzymanie kodu.
Łatwiej odświeżyć kod napisany w JS, łatwiej wciągać do niego nowe funkcje i łatwiej znaleźć kogoś, kto taki kod rozumie i jest w stanie rozwijać. Rosnącego projektu nie da się utrzymywać garstką weteranów biegłych w C++. Już wcześniej były z tym problemy. Doprowadziły one do usunięcia programu pocztowego z listy priorytetów Mozilli. Choć można zarzucić Fundacji koncentrowanie się na niewłaściwych sprawach, Thunderbird popadł w niełaskę nie bez powodu.
Migracja na JS to projekt na lata, który na pewno nie zakończy się z najbliższym wydaniem. Być może jednak rozwój Thunderbirda przyspieszy w jego skutek. Warto wszak pamiętać, że najpopularniejsze programy pocztowe są już dziś napisane w JS. Mowa o wszystkich webmailach, na czele oczywiście ze skrzynką Gmail. Nawet Microsoft robi to samo: jego projekt Monarch to próba połączenia webowego Outlooka z wersją desktopową i mobilną.
O tym, ile komponentów Thunderbirda uda się przepisać do nowego wydania, przekonamy się mniej więcej w połowie roku.