Our great sponsors
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
-
InfluxDB
Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
I did enough Clojure/ClojureScript to learn them and then I ported the concepts to JavaScript. Now I do JavaScript the Clojure way, including using native JavaScript objects and arrays but never mutating them. Most of my programming over the past decade has been JavaScript, but I can tell you all the Clojure ideas work in this realm including protocols.
If mathematical jargon and notions don't spook you, Haskell will be a great language to learn FP. It is one of the few that enforces purity and that's a huge plus. There are plenty of resources to start learning, I highly recommend Learn You a Haskell for Great Good! and there are others to continue after it.
If you know Web development already, Elm might be the easiest approach. The Elm guide will have you work on functional snippets of code very quickly. The syntax is almost the same as Haskell, it's also pure, it just comes with far less bells and whistles as far as advanced features go. But you'll be able to have a real working web app in no time and the Elm architecture will basically force you to make it functional (whereas you can bend Haskell to program something imperative, with mutable state all over the place, etc…). Elm also has some of the most helpful compiler error messages and a time-traveling debugger, both great features when you're learning. (well, the time-traveling debugger is a great feature, period)
Have you tried installing Haskell with https://www.haskell.org/ghcup? After installing it vscode with the https://github.com/haskell/vscode-haskell Haskell extension should work out of the box.
3) Finally, Scala 3 + cats is a great middle ground. It's a great language to teach and learn FP, even if you learn by yourself, without support from other people. There are lots of materials and even if you get stuck with a concept, you can still implement it using what you knew before.