Spędziłem cały dzień, a może nawet więcej, myśląc o tym jak rozwiązać problem dostarczenia jak najbardziej generycznego rozwiązania inferencji typów w Great#. Poniżej omawiam sytuację oraz plusy i minusy kilku rozwiązań.
Czytaj dalej Duck typing i inferencjaPróby ulepszenia C#
Planując semantykę Great# zacząłem szukać jak inni podeszli w swoich implementacjach do problemów z którymi się borykam. Na CLR zostało napisanych wiele języków. Poniżej kilka wartych poznania.
Czytaj dalej Próby ulepszenia C#Gramatyki czułe na wcięcia
Ostatnio wspomniałem o moim planie na stworzenie nowego języka programowania, który będzie “lepszym” C#/F#. Great# będzie językiem, w którym wcięcia są częścią gramatyki. Wobec tego potrzebuję narzędzia, aby taką gramatykę opisać i sparsować.
Czytaj dalej Gramatyki czułe na wcięciaProgramowanie bez pisania typów
Języki takie jak Java, C#, czy C++ wymagają od użytkownika pisania dużej ilości typów. Adwokaci języków dynamicznych takich jak Python czy Ruby mówią, że mogą szybciej pisać i modyfikować programy nie działając na typach. Ja uważam, że dynamiczne języki pozwalają na masę błędów programisty, pozwalając mu pisać kod, który po uruchomieniu jest skazany na porażkę.
Czytaj dalej Programowanie bez pisania typówMonady w F#
Podczas przygotowywania mojego warsztatu na GirlzCamp postanowiłem napisać sobie kilka monad w F#, w tym spróbować napisać transformator monad (co w ogólności mi się nie udało). Podczas moich zmagań natrafiłem na bibliotekę FSharpPlus, która jest mega!!
Czytaj dalej Monady w F#GirlzCamp 2018
W poprzedni weekend (2.06) odbyła się kolejna edycja warsztatów z programowania dla dziewczyn, organizowanych przez Microsoft Polska - GirlzCamp. Dwa lata temu opowiadałem o ASP.NET, a tym razem zdecydowałem się na “Wprowadzenie do programowania funkcyjnego w F#”.
Czytaj dalej GirlzCamp 2018Środowisko deweloperskie w kontenerze
Niedawno pomyślałem sobie jak to wdrażając drugą osobę w nowe środowisko do pracy z nową technologią możemy mieć problem. Zamiast wymagać od nich umiejętności instalacji X paczek, edycji plików konfiguracyjnych, etc. chcemy dać im środowisko, gdzie kod od razu będzie się kompilował. A jakby użyć do tego Docker?
Czytaj dalej Środowisko deweloperskie w kontenerzeTechnologiczne zacofanie
Ostatnio parę razy zderzyłem się z sytuacjami gdzie krótko mówiąc ludzie korzystają z komputera, nieumiejąc tego robić. Zdaję sobie sprawę, że sam jestem technologicznie zaawansowaną osobą i niektóre proste dla mnie rzeczy są de facto sztuczkami, o których wiedzą nieliczni. Jednakże przychodzi moment kiedy bez pomocy ludzie się zaczynają gubić.
Czytaj dalej Technologiczne zacofanieInterpreter mojego języka
Dzisiaj opublikowałem na GitHubie kod do interpretera mojego własnego języka programowania. Poniżej opiszę ogólny proces interpretacji pliku.
Czytaj dalej Interpreter mojego językaMonada Stanu
Nie miałem w tym tygodniu czasu na opisanie kolejnej części mojego interpretera, ponieważ go pisałem i napisałem już tak dużo, że w większości przypadków działa. Aby to uczcić w celach testowych napisałem w moim własnym języku monadę stanu, o której opowiem poniżej.
Czytaj dalej Monada Stanu