Follow

Since I did the same on my old functional.cafe instance, thought I should have an intro here as well, it’s mostly stolen from there

[insert since it seems those hashtags are popular or something]

My name is Ștefan (ș being sh or s if you’re English), 20 y.o., ♑, he/him, leftist and all that. I’m sadly living in Romania, I’m an undergrad in computer science and I’ve tried waaaay too many programming languages.

My usual speciality is programming, I prefer functional programming (and Lisps such as , and sometimes), math (mostly real analysis, calculus, number theory and geometric algebra).

I am also interested in (and NLP), post-WWII history (especially post-‘89), and (and generally low-level stuff), and , and (and stuff) and , and (don’t @ me) among many other things. I hope I’ll be welcomed here!

@alecui 👋

Romania is one of the best countries to live in 🙂

I recommend that you try #Clojure. Programming languages are nice for their own sake, but they need to be practical too. Clojure runs on top of the JVM / JavaScript, and also, has sane defaults (e.g. immutable data structures) or std functionality (e.g., Spec).

CLISP, ironically, isn't very FP 😉

@alexelcu I’ve tried Clojure 3 times, I really like it and would probably recommend it to anyone that doesn’t hate the JVM. Also Common Lisp and to a lesser extent Emacs Lisp and maybe Guile/Chicken Scheme, that’s how I’d rank them.

Common Lisp or Emacs Lisp, ironically, aren’t very FP. Lisp in general isn’t because it’s like saying that all C-like languages are imperative by nature. You know too that Lisp is a family of languages, not one single language, so I don’t see why some dialects couldn’t implement imperative features. Heck, you can do that yourself with macros in any Lisp dialect (Emacs Lisp has basically the CL experience with cl-lib, for instance). You can do OOP, logic programming (The Reasoned Schemer anyone?), generic programming and whatever else you want, you can create your own DSL which can be either functional or imperative.

Ironically, Clojure would be the most functional Lisp because it has lazy evaluation, discourages OOP, uses immutable data structures throughout, restricts uncontrolled mutation (via STM), has quite a lot of pure/higher order functions in the core library etc.

@alecui the JVM is probably the best programming platform on the market, though.

Lisp not being FP is sort of a surprise, b/c its development is linked to lambda calculus.

I like hybrid languages, BTW, but there's the question of what the culture of that language is. You can do FP in Java too, but its biggest problem is the culture around it, not its features. So doing FP in Java is like swimming against the tide.

@alexelcu de asemenea salut, nu mă așteptam să mai găsesc români interesați în Lisp sau programare funcțională în general (nu mulți reușesc să nu aibă traume de la PF în facultate).

@alecui 😆 eu n-am terminat facultatea 🤷‍♂️

Din păcate la facultate se învață doar niște baze, și nu sunt baze foarte solide. În sensul că pentru FP trebuie să treci peste algoritmică (ce-i trivială) și să înveți cultura (soluțiile, design patterns, etc).

Sunt ceva români interesați de FP. În București avem și întâlniri, dar s-au oprit odată cu pandemia. Proiectul la care lucrez (un procesor de plăți) este construit în Scala într-un stil FP și toți colegii mei sunt fani.

@alexelcu eu chiar acum fac Haskell și nici atunci prea aprofundat ca e la 2 săptămîni.
Se pare că ar fi și în Iași, e mai aproape de mine. Chiar îmi place proiectul. De ce ați ales fix Scala și nu alt limbaj?

@alecui Scala e un limbaj JVM, foarte expresiv, relativ mainstream, cu o comunitate nu foarte mare, dar foarte activă.

Expresivitatea este un soi de dublu-tăiș, că poți lucra cu OOP, sau poți codifica type classes din Haskell, ceea ce înseamnă că trebuie să alegi, și ca să alegi ai nevoie de educație.

Scala este unul din puținele limbaje unde se lucrează cu tipuri monadice pentru modelarea efectelor și unde practicarea unui FP ca la carte nu ridică sprâncene; un soi de Haskell pt JVM 😉

@alecui Haskell e destul de cool.

Ce resurse folosești pentru învățare?

@alecui ah, e bună cartea aia, voiam să ți-o recomand. Cam lungă, dar e cu exerciții, te ține ocupat.

@alexelcu nu contează. Eu învăț pe cont propriu de multă vreme Haskell pentru că în mod normal cu ce facem aici nici între dinți nu pot să încap

@alecui foarte bine. Lucrează la un proiect real, așa înveți cel mai bine.

@alexelcu Chiar la licență încerc să fac un minilimbaj de programare folosind combinatori de parsere (probabil în Rust, dar am fost tentat s-o fac în Scheme sau Haskell, problema fiind că trebuie să-l fac să încapă pe un microcontroller).

@alexelcu @alecui Didn't expect to see a post about both Clojure and Romania in my feed today 😀

Sign in to participate in the conversation
Qoto Mastodon

QOTO: Question Others to Teach Ourselves
An inclusive, Academic Freedom, instance
All cultures welcome.
Hate speech and harassment strictly forbidden.