Kotlin had a chance to avoid this mistake but didn't take it.


@Krever kotlin jest mocno kompatybilny z javą w obie strony (a nie jak scala, że tylko w jedną) przez co annotowane nulle były logicznym rozwiązaniem. Co do Scali to nie wiem jak się teraz pisze, ale w czasie mojego krótkiego romansu na studiach było tak jak w Javie (tj, mogę sobie zrobić return null), więc Kotlin wypada tutaj dużo
@Saly:

xd. Less cryptic chyba, że nie masz totalnie pojęcia (jak ja) co to robi

Chodziło mi o to, że TODO jest less cryptic od ???.

Co do nulli to w scali 3 weszlo explicit nulls i to powinno dac dosc duzą pewność poprawności. Ale szczerze mowiac w Scali nulli sie praktycznie nie widzi bo wszyscy probuja uzywac natywnych bibliotek (gdzie nikt nulli nie uzywa) albo sie silnie wrapuje jave
@Adaslaw: myślę że można w miarę bezpiecznie założyć że w Polsce ten rynek nie istnieje. Generalnie powinno być porównywalne z Haskellem albo Erlangiem - coś się znajdzie ale wybrzydzać raczej nie mozma.
#anonimowemirkowyznania
Czy tylko ja nienawidzę programowania funkcyjnego?

Nie wiem czy to chwilowa moda czy tak już będzie zawsze, ale nie mogę przejść z OOP na FP.
Od razu podam przykłady o co mi chodzi z OOP i FP.
OOP dla mnie skupia się na obiektach i metodach na tych obiektach, kiedy w FP chodzi głównie o to by funkcje były bezstanowe (stateless), z użyciem higher order functions, monad i rekurencji.

Od kiedy
@AnonimoweMirkoWyznania: Nie tylko Ty. Wszystko jest OK.
Troche sie meczylem koncepcyjnie z tym tematem, to moze podziele sie wnioskami.

FP, jesli chciec pisac tak kod calosciowo, jest przez powaznych ludzi uzywany *tylko* w domenach, gdzie wymagania matematyczne dot. kodu sa takie, ze jest benefitem / jest taka potrzeba, aby sam kod stanowil dowod matematyczny dla zaprogramowanego elementu / algorytmu / etc.
To jest wazne w niektorych dziedzinach nauki. Glownie takich silnie
Nigdy nie miałem styczności z programowaniem czysto funkcyjnym i jakoś naszło mnie żeby to dziś zmienić. Który język polecacie? Powiedzmy, że wstępnie wybór zawęziłem do tych trzech #programowaniefunkcyjne

który?

  • Haskell 40.0% (6)
  • Elixir 40.0% (6)
  • Clojure 13.3% (2)
  • Nie wiem 6.7% (1)

Oddanych głosów: 15

Elixir i Clojure sa dynamicznie typowane, co psuje całą zabawę. Zostaje Haskell, co da Ci dobre poczucie "klasycznego podejscia". Ze swojej strony jednak polecam Scalę, bo w niej się da znaleźć prace :D
Przegladałem sobie jakieś zadania programistyczne i zwróciłem uwage na zadania z przetwarzania "ciagów".

Jeśli mam ciąg znaków i muszę liczyć ilość wystapień dwóch elementów (grup) + wyszukiwania wzorca (jako trzeci element) to jaki jest najoczywistszy najlepszy sposób na rozwiązanie takiego zadania:

Jest coś co bije "ręczne" przechodzenie po 1 i ustawienia sobie "3 akumulatorów" co licza te wybrane parametry? W sensie wiadomo sumy ida do sum ++ pod warunkiem, a do patterna
Dżemdobry, nadal szukamy programistów #scala. Przeklejam z Twittera, angielski i tak obowiązkowy :) Można śmiało pisać z pytaniami.

- remote (UE-ish timezone)
- FP scala codebase (and scala only!)
- great team & engineering culture
- competent management (!)
- profitable product
- 60k-100k EUR/year + bonus
- fintech/crypto/investment
- over 400k users
- Scala Center affiliate member
https://jobs.lever.co/swissborg/992ab6d5-f117-4ace-9e57-34ad9701ed0b

Szukamy też data engineera, ale wymagania podobne, też scala.
https://jobs.lever.co/swissborg/638eda86-921f-4d79-9210-957281c93d8c

#scala #
@inny_89: Co pół roku alokowana jest pewna pula CHSB (nasz token) która następnie jest rozdzielana miedzy wszystkich pracowników zależnie od stanowiska i oceny robionej przez przełożonego. Ja na razie załapałem się tylko raz ale dostałem więcej niż jedną pensję, chyba nawet więcej niż 2 (dokładnie nie pamiętam).
Człowiek niby programuje od lat, a zrobienie jakichś prostych rzeczy w Haskellu to czasami tak, jakby się od nowa wszystkiego uczył.

Po kilku godzinach walki z transformatorami monad i typami w stylu (Service, ReaderT APIKeys Req b) -> IO (Service, Either HttpException b) oraz [(Service, String -> ReaderT APIKeys Req (JsonResponse Object))] kompilator w końcu zaakceptował moją koncepcję. (òóˇ)

Najlepsze, że rozwiązanie udało mi się znaleźć
W ostatnim artykule z serii o Haskellu pisałem na temat funktorów. Następny wpis będzie, jak niektórzy mogą się domyślić, poświęcony funktorom aplikatywnym.

Wcześniej jednak zachęcam do zapoznania się z krótkim artykułem dotyczącym monoidów, ponieważ jest to pojęcie, które pojawi się przy rozkminianiu aplikatyw. ;D

LINK: Półgrupy i monoidy w Haskellu

Jeśli interesują Cię moje wpisy, obserwuj tag #polydev
#programowanie #haskell #naukaprogramowania #programowaniefunkcyjne
Cześć! Kilka dni temu wydałem pierwszą wersję biblioteki programistycznej Bankster dla języka #clojure. Jak wskazuje nazwa, służy ona do obsługi jednostek monetarnych i wartości pieniężnych. Można dodawać własne waluty i rejestry walut, a także wprowadzać tłumaczenia nazw i symboli zależne od ustawień językowych.

Początkowo miało mi to zająć 3 dni, a pochłonęło miesiąc. Pierwotnie chciałem korzystać z biblioteki Money od Clojurewerkz, która bazuje na javowej Joda Money. Niestety klasy w tej
Do składni idzie się szybko przyzwyczaić, to po prostu przeniesienie nawiasu, zamiast funkcja(a b) jest (funkcja a b).
Myślę, że ciężej przywyknąć do idiomów, że np. (seq x) sprawdza pustość, ale dla indeksowanych kolekcji lub z licznikiem elementów szybciej będzie (zero? (count x)). Jest też parę polimorficznych funkcji, jak conj, które zależnie od argumentu dają różne wyjścia, ale np. dla nil dają listę. Mi się Clojure podoba, bo ma clojure.spec i podobne.