Blog

Semafory, sekcje krytyczne czy synchronizacja, to naprawdę wszystko, na co Cię stać w XXI wieku?

Chyba nie ma straszliwszego olśnienia nad to, w którym odkrywasz, że wcale nie trzeba było się tak męczyć.

- Luźny Interpretator -

Na początku miałem dla Ciebie gotowe opowiadanie o świecie spustoszonym na skutek komputerowego wirusa, który powodował blokowanie semaforów w sposób losowy.

Wirus rozprzestrzeniał się błyskawicznie i aktywował bardzo powoli, tak, że wszystko wyglądało na typowe błędy programistyczne. Gdy wirus dotarł już wszędzie, przestał bawić się w subtelności i wywrócił nasz świat do góry nogami.

Myślę, że potrafisz to sobie wyobrazić. Wszystko siadło w jednej chwili. Spadające samoloty, wyłączające się elektrownie, niedziałająca komunikacja. Dzień zagłady. 

Wszystko z powodu nieszczęsnych semaforów.

Uznałem, jednak, że nie masz ochoty czytać beletrystyki, tylko chcesz się dowiedzieć czegoś konkretnego i namacalnego.

Zacząłem więc od podstaw opisywać zasady tworzenia oprogramowania współbieżnego.  Tylko po to, by kilka godzin później też to wszystko wykasować. 

Przecież Ty to wszystko świetnie wiesz, a nawet jeśli nie, znajdziesz mnóstwo innych miejsc, gdzie możesz o tym poczytać.

Postanowiłem się zatem skoncentrować na najważniejszym elemencie całej układanki. Na programowaniu asynchronicznym. Potężnym narzędziu w rękach nowoczesnego programisty.

Tak czy inaczej, czeka nas odrobina podstaw 🙂

Continue Reading

Scala i Java w jednym stały domu, a JVM pod spodem nie wadząc nikomu.

Scala i Java razem, a jednak osobno

Jedną z dużych zalet Scali jest fakt, iż skompilowany kod może być uruchamiany w maszynie wirtualnej Javy.

Co to w zasadzie znaczy i dlaczego jest to zaleta? 

To znaczy, że kompilator Scali kompiluje kod dokładnie tak samo, jak kompilator Javy. No dobra, to DUŻE uproszczenie 😉 Najważniejsze jest, że w obu przypadkach jest generowany bytecod rozpoznawalny przez JVM.

Jeśli interesuje Cię, jak dokładnie działa kompilator Scali, to znalazłem dla Ciebie świetny artykuł na ten temat -> Scala Compiler Phases with Pictures.

Warto też wiedzieć, że kompilator Scali niestety jest WOLNY. SBT robi co może, żeby kompilację przyspieszyć, analizując zmiany w kodzie i kompilując wyłącznie to, co zostało zmienione, ale wykonanie pełnego buildu dużej aplikacji może trwać i trwać.

Continue Reading

Scala programowanie funkcyjne – wyczyść swoje funkcje i nie kłam. Za parę lat podziękujesz sam sobie.

"Płoną na stosach heretycy, Ci co kłamią w deklaracjach i komentarzach.

A smród jest wielki, a krzyki nieopisane"

- Luźny Interpretator -

Programowanie imperatywne musi odejść.

Nie ma miejsca na świecie dla programistów, którzy nie znają podejścia funkcyjnego. Jak pisać kod, to tylko funkcyjnie. Podejście obiektowe jest jak dinozaur. Programowanie funkcyjne to konieczność.

Może lekko podkręciłem powyższe wypowiedzi (ale wierz mi, lekko i nie wszystkie). Nie zmienia to faktu iż coraz częściej spotykam się z tego typu retoryką na forach, blogach czy w mediach społecznościowych.

Wiesz co? Chrzań to. Naprawdę. To kolejna wojna w stylu co jest lepsze Atari czy Commodore. Windows czy Linux. Dieta beztłuszczowa czy oparta o same tłuszcze.

Continue Reading

Nauka Scali? To najlepsze co możesz zrobić ze swoim czasem.

“Bóg stworzył Arrakis, aby ćwiczyć wiernych. 
Tym którzy wytrwali, podarował Scalę.”

- Luźny Interpretator -

Bardzo często trafia do mnie pytanie "Czy i dlaczego warto nauczyć się Scali?", "Czy nauka Scali przyda mi się w mojej karierze programisty?"

Nie potrafię odpowiedzieć na tak postawione pytanie.

Mogę za to napisać, dlaczego postanowiłem nauczyć się Scali i dlaczego uważam, że warto poznać ten język programowania (do czego będę Cię gorąco zachęcał).

Moja droga do Scali była długa i kręta (jak i moja już prawie 30-letnia kariera programisty). Przygotowałem drzewko obrazujące, jak to w pewnym przybliżeniu wyglądało.

Obecnie używam wielu różnych języków, ale to Scala jest moim językiem z wyboru i dającym mi najwięcej przyjemności i satysfakcji z kodowania.

No dobrze, ale co mi w takim razie przeszkadzało w innych językach?

(Pamiętaj tylko proszę, że poznałem się ze Scalą trochę ponad 8 lat temu, więc należy na to wszystko obrać pewną perspektywę).

Continue Reading