Dzisiejsza edycja będzie szczególna. Zamiast bowiem brać na warsztat konkretne tematy, postanowiłem wykorzystać fakt, że w zeszłym tygodniu wprowadziliśmy do Vived wiele nowych technologii. Dlatego dzisiaj każda z nich dostanie swojego reprezentanta z komentarzem, dlaczego moim zdaniem warto go przeczytać. Myślę, że wyszedł mi dość różnorodny zbiór więc… enjoy!
Android: Case Study: Redesigning Todoist for Android
Jestem wieloletnim użytkownikiem Todoista, który stanowi mój tak zwany “drugi mózg”, pomagający mi przeżyć pojawiającą się czasem nawałnicę rzeczy do zrobienia. Dlatego też, mimo że zwykle nie jestem pasjonatem UI/UX, z dużą przyjemnością przeczytałem Case Study opisujące, w jaki sposób aplikacja została przeprojektowana na Material You. Ta zapowiedziany na zeszłorocznym Google I/O nowa iteracja Material Designu była dla mnie od dawna sporą zagadką – mimo sporej ilości materiałów promocyjnych, prezentujących wprowadzone w niej zmiany, dopiero zapoznanie z procesem redesignu przekonało mnie, jak dużo nowości Matrial You wprowadza.
Dlaczego warto przeczytać: Żeby zrozumieć, że Material You to więcej niż tylko używanie palety kolorów zdefiniowanej przez użytkownika.
Zainstaluj teraz i czytaj tylko dobre teksty!
C++: The Evolutions of Lambdas in C++14, C++17 and C++20
Nie wiem czy też tak macie, ale ja nigdy nie potrafiłem bez pewnej dozy regularności nadążyć za tym, jak konkretne funkcjonalności ewoluują w ramach poszczególnych wersji języków. Społeczności programistyczne (i konferencje) mają to do siebie, że niestety żyją często chwilą i najnowszą w danym momencie wersją. Dlatego tak bardzo cenię sobię “przeglądówki” jak powyższy artykuł. Przygląda się on bowiem poszczególnym iteracjom C++ w celu zaprezentowania ewolucji, jaką przez lata przechodziły Lambdy już po oryginalnej publikacji tej funkcjonalności w C++98.
Dlaczego warto przeczytać: By w 10 minut być “na bieżąco” z tym, w jakim kierunku poszła ewolucja Lambd.
C#: Heap, Stack and Garbage Collector – A practical guide to .NET memory management system
Z mojego doświadczenia, C# mocno różni się od większości ekosystemów programistycznych. Weźmy na przykład taką Javę. Oracle i jego eksperci publikują naprawdę wiele, często wysokiej jakości kontentu, ale jednak większość najciekawszych materiałów pochodzi prosto z serca społeczności. Mam wrażenie, że bardzo mało jest piszących o C# czy dotNecie, nie będących w jakiś sposób powiązanymi z Microsoftem – czy to poprzez publikowanie w ich przestrzeni, czy bycie partnerami developerskimi. Wynikać to może ze sposobu, w jaki właśnie działa ich sieć partnerska i jak szybko Microsoft “przytula” rodzące się w społeczności gwiazdy, ale jest to na swój sposób unikalne.
Ja jednak będę miał dla Was publikacje z Medium, która jest przekrojowym spojrzeniem na model pamięci C# i dotNeta. Ta tematyka jest mi szczególnie bliska, kocham bestie, którą niewątpliwie jest legendarne Java Memory Model Pragmatics, muszę jednak przyznać, że publikacja Andre Santarosa dla wielu osób będzie przystępniejszym “gateway drugiem” do świata tego, jak wygląda hierarchia pamięci w aplikacjach.
Dlaczego warto przeczytać: Artykuł omawia środowisko .NET/C#, ale wiele konceptów odnosi się również do języków takich jak Java czy Go.
Go: Visualizing Concurrency in Go
Go jest znany ze swojego modelu współbieżności. Można powiedzieć, że to właśnie GoRutyny obudziły społeczność z pewnego letargu – czy raczej idealnie się wstrzeliły w czas, kiedy już nie mogliśmy chować głowy w piasek. Tak czy inaczej, GoRutyny stały się standardem złota w społeczności, a ich oparty o CSP (Communicating sequential processes) model wyznaczał punkt, do którego porównywano wszystkie nowo pojawiające się rozwiązania.
Dyskusja o modelach współbieżności jest jednak czymś bardzo wymagającym – bardzo trudno bowiem wizualizuje się takowe w głowie, a wbrew pozorom jeszcze trudniej na ekranie komputera. I tutaj cały na biało wchodzi Ivan Daniluk, który postanowił wykorzystać WebGL do zaprezentowania takich konceptów go jak timery, fan-in czy różnice między współbieżnością, a zrównolegleniem. Efekt jest w dalszym ciągu lekko chaotyczny, ale dla ludzi myślących wizualnie (których nie ma) będzie to dobry punkt zaczepienia
Dlaczego warto przeczytać: Bo poza samymi animacjami, Ivan tłumaczy również wizualizowane koncepty oraz dzieli się procesem ich powstawania.
iOS: 30% didn’t kill the App Store model. SaaS did
Mam wrażenie, że w kontekście iOSa dużo częściej rozmawia się nie o samej technologii, a o wszelkich kontrowersjach w koło Appla i App Store – a tych nie brakuje. Zawsze dużo mówiło się o sporym “haraczu”, który właściciele sklepów z aplikacjami wymuszają na twórcach aplikacji. Dużo mówi się np. o tym, że Unia Europejska w celu demonopolizacji rynku będzie chciała wymusić na Apple wpuszczenie konkurencji do jej poletka. Dlatego też wydaje mi się, że ważnym jest aby pamiętać, że tak naprawdę model dystrybucji aplikacji posiada znacznie więcej problemów, niż wymuszenie używania Apple/Google Pay.
Stąd zdecydowałem się odkopać tą świetną analizę z 2020 roku, która w przystępny sposób rozkłada na czynniki pierwsze przyczyny pewnego regresu, jaki przechodzi obecnie rynek mobilny, zwłaszcza w porównaniu do jeszcze dekady wstecz, gdzie stanowił dla programistów istną żyłę złota.
Dlaczego warto przeczytać: Żeby lepiej zrozumieć, jak bardzo na kształt i codzienne użycie (a także metody tworzenia) popularnych aplikacji wpływa model biznesowy, który wybrali sobie twórcy.
PHP: LAMP Stack History: It’s Everywhere, But Developers Hate It
Hmmm…. czego jeszcze dzisiaj nie mieliśmy… Wiem! Historii!
Mam duży sentyment do PHP – był to pierwszy język, którego się nauczyłem i pierwszy, którego używałem komercyjnie. Co prawda bardzo szybko przeskoczyłem na programowanie Androida (pamiętacie o gorączce złota, o której dopiero co wspominałem?), ale przez całkiem długi czas to właśnie PHP było moim głównym środowiskiem. Oczywiście, jak każdy, kto eksperymentował z tym językiem na samym początku XXI wieku, moim głównym narzędziem był LAMP. Dlatego też z lekkim rozrzewnieniem i sentymentem czytałem artykuł o jego historii.
To świetnie zredagowane podsumowanie przedstawia początki, szczyty i upadek kombinacji LAMP (Linux + Apache + MySQL + PHP), która w swoim czasie dzieliła i rządziła w internecie. Dodatkowo, dowiecie się z niej, dlaczego wszyscy wydają się jej nienawidzić i jakie dziedzictwo po sobie pozostawiła.
Dlaczego warto przeczytać: aby po raz kolejny odrobić lekcje na temat przemijania – żadna, nawet najpopularniejsza technologia nie jest nieśmiertelna. A także żeby zrozumieć, że te naprawdę kluczowe czeka jednak długie “życie po śmierci”
Product Management: The Product-Minded Software Engineer
Czasy największego boomu na pracę w startupach mamy już trochę za sobą (no, chyba że za grubą kasę i udziały), ale na pewno pozostało nam po okresie największej gorączki to, jak bardzo zmienił się sposób postrzegania inżynierów w firmie. Georgely Orosz prezentuje w swoim tekście, jak krok po kroku zmienić swój sposób działania, aby stać się wartościowym partnerem dla tak zwanego “biznesu”.
Ten tekst to już prawdziwy klasyk, jeśli chodzi o mindset, który oczekiwany jest przez najbardziej dynamiczne firmy, zwłaszcza jeśli mówimy o tych cechujących się naprawdę szybkimi wzrostami. Przez lata dużo zaczęło mówić się o pewnej toksyczności modelu Doliny Krzemowej, ale osobiście nigdy nie odczuwałem z pracy takiej satysfakcji jak właśnie będąc opisywanym w tekście “Product Engineerem”
Dlaczego warto przeczytać: żeby do swojego wachlarza potencjalnych ścieżek kariery dołożyć kolejną, dającą duże przełożenie w pracy bez wymagania pójścia w managerkę (ale nie zamykające tej drogi)
Ruby + Rust: Our Experience Porting the YJIT Ruby Compiler to Rust
Tutaj będzie lekkie oszustwo – ale wynikające z faktu, że bardzo lubię “interdyscyplinarne” teksty, które niczym w dobrych crossoverach łączą dwa światy. Dlatego też nie mogłem sobie odmówić podzielenia się tekstem o tym, jak inżynierowie z Shopify przepisali YJIT, czyli Just-in-Time kompilator Ruby’ego, z C na Rusta.
Nawet jeśli nie znacie żadnego z języków, lektura będzie dla Was ciągle bardzo wartościowa. Można z niej bowiem dowiedzieć się całkiem sporo o tym, jak działa kompilacja Just-in-Time, ponieważ YJIT w oryginalnej formie to nieco ponad 10k linijek kodu, a autorzy podeszli do tematu zgodnie z radą Stephena Hawkinga: “Każdy snippet kodu zmniejsza ilość czytelników o połowę” (bo jakoś o to śp. Hawkingowi chodziło, prawda?).
Dlaczego warto przeczytać: Wspomniałem już, że całość pomaga zrozumieć jakie wyzwania stanowi tworzenie kompilatora JIT, ale też udowadnia, że nie ma rzeczy idealnych, prezentując problemy z Rustem na przykładzie realnej aplikacji.
Zainstaluj teraz i czytaj tylko dobre teksty!
Web3: An Engineer’s Hype-Free Observations on Web3 (and its Possibilities)
A na zakończenie – Web3!
Czy da się w dzisiejszych czasach stworzyć długi tekst o zdecentralizowanym internecie bez zajmowania się piramidkami Ponziego, NFT, waluacją kryptowalut i tak dalej? Ekipa z Pioneer Square Labs udowadnia że…
Ten tekst to moje ulubione wprowadzenie do tematu od strony inżynierskiej. Dużo jest mowy o obietnicach jakie szeroko rozumiane Web3 przynosi oraz jakie potencjalne problemy mogą się pojawić po drodze. Wszystkie buzzwordy (SmartContracts, DAO, DeFI) są tutaj bardzo sprawnie wytłumaczone w sposób bardzo przystępny i łatwy w konsumpcji – bez grama niepotrzebnego hype.
Dlaczego warto przeczytać: Dobry, symetrystyczny, napisany bez zbyt zbytniego hurraoptymizmu, ale i bez rantu tekst o Web3? Strasznie odświeżające.
Mam nadzieje, że spodobała się Wam powyższa lista. Wszystkie powyższe teksty (i wiele więcej) znajdziecie w Vived, a pomoże odkryć je Wam nowa funkcjonalność Vived – Discover – o której więcej możecie poczytać tutaj.
PS: Końcem maja, początkiem czerwca odbędzie się konferencja Code Europe, której Vived ma przyjemność bycia Patronem Medialnym. Oprócz naprawdę dobrego line-upu, Code Europe przygotowało dla Was kod zniżkowy #VIVEDnaCE2022, który zapewnia -25% zniżki na bilety. Kod jest ważny tylko do niedzieli, więc decydujcie się szybko 😅
PS2: Sam byłem speakerem na Code Europe jeszcze w 2017, tym bardzo polecam! Bardzo miło wspominam.