This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2021-11-22
Channels
- # announcements (39)
- # architecture (9)
- # aws (2)
- # babashka (17)
- # beginners (73)
- # calva (6)
- # cider (27)
- # clj-kondo (140)
- # cljdoc (67)
- # cljsrn (1)
- # clojure (99)
- # clojure-dev (4)
- # clojure-europe (35)
- # clojure-nl (7)
- # clojure-spec (19)
- # clojure-uk (2)
- # clojurescript (40)
- # community-development (3)
- # cursive (10)
- # datalevin (2)
- # datavis (2)
- # datomic (27)
- # deps-new (5)
- # events (2)
- # fulcro (38)
- # integrant (6)
- # jobs (3)
- # keyboards (1)
- # leiningen (13)
- # lsp (3)
- # malli (10)
- # meander (5)
- # membrane (1)
- # membrane-term (9)
- # missionary (3)
- # off-topic (29)
- # polylith (3)
- # reagent (3)
- # reitit (5)
- # remote-jobs (2)
- # reveal (7)
- # shadow-cljs (20)
- # tools-build (4)
- # tools-deps (8)
- # vim (10)
- # xtdb (3)
I'm planning to learn a new language this winter on the side and am looking for something that is complementary to Clojure. Does anyone have any recommendations or positive experiences with learning other functional languages/lisps?
If you want something very very unlike Clojure, and you don't know C or any kind of assembler, you could learn one of those đ. Definitely very very different.
I've also enjoyed dabbling with Rust and Golang. Golang is much easier to get something into production with, if you don't have a lot of time.
For the kinds of things Clojure and other high level languages are good at, C is like banging rocks together by comparison.
golang is a good companion, easy to learn (not necessarly to master), that's basically the duo we use at work. Covers 99% of use cases (as long as you can afford a gc).
but nowadays most thing you can do with go you can also do with clj, I guess back then the argument was about ease of distribution & startup time, but that can be mitigated now.
In many cases, Iâve found the most complementary languages are those that fill in gaps in each other. What are the gaps in Clojure you run into the most? Or that you see as most important? Find a language that is well-suited to fill those in which isnât too far from the aesthetics you appreciate from Clojure. Rust could be a good fit if you see low-level performance as a Clojure gap, since it is also highly functional in nature. Java is another complement for similar performance / library reasons, though perhaps a bit obvious given Clojureâs intentionally hosted nature.
Languages I wish I had the time to learn/mess with: Zig - low level programming with a small surface area of things to learn (way smaller than C++/Rust), https://andrewkelley.me/post/zig-cc-powerful-drop-in-replacement-gcc-clang.html with C without inheriting its baggage Pharo - Object Oriented Programming done right, very interesting https://gtoolkit.com/ , altogether different paradigm from Clojure, the only programming environment actually trying to emancipate its users from the tyranny of plain text Haskell - continuously pushing the envelope of https://ucsd-progsys.github.io/liquidhaskell-blog/
I can tell you Kotlin played second fiddle to Clojure at least once in history. I was new to a KT project and couldn't make head or tails of it. Needed to instantiate things and manipulate them. Suffice to say KT's "repl" is ... not a repl. Struggled with print lines, threw hands up, published the KT project in anger to maven local, added it to a Clojure project, REPL'd and "reflect"ed my way to success.
Seeing as a key theme in the Clojure world is various ways of keeping large amounts of data consolidated and accessible to everything (global state atom, Datomic, maps that contain the whole world in the form of namespaced keys, etc.), maybe Erlang would be a good complement
not hard to imagine that what works well with a model of shared and consolidated data and what works well with a model of owned and atomized data would be fairly disjoint
@natesire Depending on what you might want to discuss, I'd say either #jobs-discuss or #off-topic (here) would be suitable. Looking over the channel list, I don't see anything related to that sort of thing specifically...
@natesire If you have some question/thought you can write it in channel corresponding to that thought and discussion will bring back people who are interested. There are from time to time topics useful for working/creating a team, but you need to look on different channels.
I'm thinking about writing a clojure book for making web applications using clojure and clojureScript with SSR (serverside-rendering) and realtime comms... I still feel like a newbie myself đ but I think it would help others get up to speed on some things. Do you think it'd be good to start it as a website and eventually turn it into a tome of sorts?
Whatâs your main objective? If it is to help people, and then eventually get a little bit of income from that investment, a (bunch of) blog articles can be a great way to help a bunch of people and get a sense for how much âtractionâ the ideas and approaches have. Books often have the downside of âbig bang deliveryâ where you get relatively little feedback until after youâve put in the work. Publishing small pieces at a time as you go on your own journey can get more feedback faster.
I'd like there to be a resource covering these topics specifically. So maybe blog entries w/ some sort of instructional demo piece would be better to start. Make it more interactive, you know?