DEV Community

Discussion on: Learn functional, learn systems and learn object oriented

Collapse
 
ashoutinthevoid profile image
Full Name • Edited

Personally I'm getting the most satisfaction out of Rust lately.

I don't use any purely FP languages, but Rust's abundance of built in ADTs, newtypes, and default immutability cover the things I most want from the FP paradigm well enough. Typescript with the fp-ts implementation of lightweight higher kinded types has a similar story for me.

Based on the list of OOP languages you've provided, I guess I fall into the purist category. I think specifically of languages with classical inheritance, and Id thus exclude Go (whose structs and interfaces are different enough - and vastly more pleasant - in my opinion) and JavaScript (even with all the modern sugar, it's still prototypal inheritance beneath that saccharine exterior some authors choose to adopt). I've used the other languages you list in the category, though some quite minimally, and my feeling is that any day that I don't have to use them is a good day (albeit a rare day given how widespread they are).

I haven't any idea what modern C++ feels like, not having used it since 2004 or so, and at this point I'm skeptical it would suit the way my tastes have developed since. I am curious where you would place it in the categorization you've presented. Definitely an OOP paradigm (well, back in 2004 anyway), but also quite suited to systems programming.

Perhaps the suggestion that one would have 3 presumably distinct picks is a little misleading, given how frequently languages begin to borrow from multiple paradigms over time.