W dniu dzisiejszym mamy dla Was nowe Headery HTTP oraz propozycje poważnych zmian w Pythonie. A w związku z ogłoszeniem przez Trumpa nowej sieci społecznościowej, postanowiłem sprawdzić jak tam idzie polskiej Albicli 🙈.
1. Nowe pomysły na skalowanie Pythona 🐍
Rzadko piszemy tutaj o językach programowania, ponieważ zdaję sobie sprawę, że tego typu wiadomości bywają ciut hermetyczne. Zdarza się jednak bardzo duże ogłoszenia, którymi, aż żal się nie podzielić. Zwłaszcza jeśli dotyczą najpopularniejszego języka według TIOBE.
Jeśli zapytać przeciętnego programistę o pierwsze skojarzenie z Pythonem, jestem prawie pewien, że pierwsze co mu przyjdzie do głowy to “Data Science”. Jednak również drugie ze skojarzeń jest dość łatwe do przewidzenia: “To się nie skaluje”. Skalowanie Pythona to ogólnie ciężki temat, ponieważ jedną z cech języka jest jego Global Interpreter Lock (globalna blokada interpretera) – w skrócie GIL. Jest to muteks, który uniemożliwia więcej niż jednemu wątkowi przejęcie kontroli nad interpreter Pythona. Oznacza to, że na dobrą sprawę tylko jeden wątek może wykonywać jakiekolwiek instrukcje. Dlatego też GIL bywa wąskim gardłem wydajności w wypadku kodu wielowątkowego. Oczywiście, rozwinięto alternatywne sposoby skalowania pythonowych aplikacji (np. podejście multi-procesowe), ale GIL był solą w oku co poniektórych.
Dlatego też duże poruszenie wywołał nowy proposal do języka, który pokazał możliwości pozbycia się z Pythona wspomnianego globalnego locka. Nie jest to oczywiście pierwsza tego typu propozycja, ale GIL ma też pozytywy. Jednym z nich jest wpływ na prędkość wykonywania się aplikacji jednowątkowych – wszystkie dotychczasowe podejścia albo powodowały znaczne spowolnienie w tego typu projektach. Nowy proposal wprowadza nie tylko bliską liniowej skalowalność w przypadku obliczeń wielowątkowych, ale dodatkowo zapewnia przyrost prędkości również dla aplikacji opartych tylko na jednym wątku. Niestety – wiąże się z nią pewne łamiące zmiany, mogące zaanektować niektóre z bibliotek.
A jak już jesteśmy przy przyspieszaniu Pythona, to za jego przyspieszanie bierze się również Oracle. Czytelnicy naszych wtorkowych, javowych edycji pewnie kojarzą GraalVM – nową, alternatywne dla JVM środowisko uruchomieniowe, obsługujące wiele języków. W zeszłym tygodniu Oracle pokazał wczesną, eksperymentalną implementację Pythona w tej technologii. Podstawowym celem ma być obsługa SciPy i jego bibliotek składowych. GraalPython już w tej chwili potrafi zazwyczaj wykonać czysty kod Pythona szybciej niż CPython (poza przypadkami, gdy zaangażowane są rozszerzenia C). Problemem jednak (ponownie) jest masa niekompatybilności, o czym twórcy uczciwie ostrzegają. Ot, zabawka dla eksperymentatorów, ale sam GraalVM jest na tyle interesujący, że nie mogliśmy o tym nie wspomnieć.
Źródła
- https://realpython.com/python-gil/
- Mailman 3 Python multithreading without the GIL – Python-Dev – python.org
- oracle/graalpython: A Python 3 implementation built on GraalVM
- Python stands to lose its GIL, and gain a lot of speed
Zainstaluj teraz i czytaj tylko dobre teksty!
2. Lepsza obsługa cache w HTTP 📦
Z jednej strony standardy są super – podejrzewam, że nikt z czytających to programistów webowych nie chciałby powrotu do mrocznych czasów, gdy każda z przeglądarek implementowała funkcjonalności tak, jak się jej podobało. Z drugiej strony, bardzo często standardy bywają bardzo opóźnione w stosunku do potrzeb rynku, a dojście do jakiegoś porozumienia zajmuje sporo czasu. Dlatego też sensownym kompromisem jest standaryzowanie tych rozwiązań, które już się na rynku przyjęły. Tak wygląda historia nowego rozszerzenia do HTTP.
Sztampą stał się już cytat, że w programowaniu istnieją dwa trudne problemy “cache oraz nazywanie rzeczy”. Przekonał się chyba jednak o tym każdy programista, który chciał w odpowiedni sposób podejść do cache w wypadku zapytań sieciowych. Internet Engineering Task Force (IETF) chce nam to jednak ułatwić i pracuje nad dwoma nagłówkami HTTP, które mają nie tylko zapewnić większą kontrolę nad konfiguracją cache, ale również ułatwić debugowanie błędów.
Wspomniane nagłówki to Cache-Status oraz Targeted Cache-Control. Formalizują one w zasadzie istniejące praktyki z popularnych sieci CDN. Co szczególnie istotne, CDNy takie jak Fastly, Akamai i Cloudflare same zaangażowane były w tworzenie wspomnianych Headerów. Jeśli jesteście ciekawi jak nowe nagłówki mają działać (domena problemu jest na tyle skomplikowana, że wolę jej na siłę nie upraszczać) – zapraszam do fantastycznej publikacji stworzonej przez HTTP Toolkit gdzie całość rozpisana jest z dokładnymi szczegółami. Prace standaryzacyjne jeszcze trwają, ale warto się im uważnie przyglądać – a na pewno warto przeczytać wspomnianą publikację.
Źródła
Zainstaluj teraz i czytaj tylko dobre teksty!
3. Trump ogłosił nową sieć społecznościową – Social Truth 🎃
Miało być M1 Max i M1 Pro, ale poza informacją, że są one diabelsko wręcz szybkie, na razie nie dogrzebałem się do czegoś na poziomie rewelacyjnej zeszłorocznej analizy zwykłego M1. Dlatego też zrobimy sobie powrót do przeszłości.
Pierwsza blogowa edycja naszego przeglądu, wydana prawie rok temu, opisywała temat zbanowania byłego już prezydenta Donalda Trumpa przez Twittera. Dlatego też nie mogę sobie odmówić poinformowania, że zapowiedział on powstanie nowej platformy społecznościowej o przepięknej nazwie TRUTH Social. Ma ona wystartować w pierwszym kwartale 2022, działać w modelu subskrypcyjnym i stanowić alternatywę dla “mainstreamowych mediów”… ile razy ja już to słyszałem.
Aczkolwiek to nie jedyne deja vu, które mam. Platformy typu Parler czy też polska Albicla zawsze mierzyły się Również nowa platforma Trumpa w zasadzie od razu stała się ofiarą ataków. Pomimo faktu, że znajduje się ona obecnie w zamkniętej Becie, podobno już została zaatakowana. Przynajmniej tak donosi Newsweek. Przed “nowym Facebookiem” jeszcze długa droga.
Na pewno Trumpowi projekt wydaje się być sukcesem… finansowym. Kurs zajmującej się nim firmy Digital World Acquisition Corp. (która połączyć się ma Trump Media & Technology Group) wzrósł bowiem w ciągu jednej sesji o 400%. Po całej transakcji wartość medialnego ramienia Trumpa otarła się o zostanie unicornem 🦄.
Postanowiłem wykorzystać fakt powstania portalu, żeby przy okazji przyglądnąć się temu, jak sprawuje się polska Albicla. Szału chyba nie ma. Według morele.net, które niedawno zrobiło analizę, w ciągu 6 miesięcy doczekała się ona 6 tysięcy użytkowników. Biorąc pod uwagę, z jakim szumem platforma startowała – stanowi to dowód jak krótkie życie mają tego typu platformy. Mam dziwne podejrzenie, że o tej Donalda Trumpa też będziemy słyszeć tylko w okolicach premiery, a potem słuch o niej zaginie.