Clojure complements

Hi guys! Which programming languages you feel complement Clojure nicely? I mean languages that you use in places where Clojure is not suitable - i.e. not for long-running, situated programs, but they are still simple and hopefully functional.

I tend to choose JavaScript for AWS Lambda because of the fast cold start time. It feels like Clojure when all that code does is transforming one map/JSON into another.

1 Like

I’ve switched to a Clojure for everything mostly now. The combo of Clojure JVM, Clojure Graal Native, ClojureScript and Babashka covers most use cases.

  • ClojureScript/Clojure - Web/Mobile/Desktop app development
  • Clojure - Backend services, servers, daemons, scheduled jobs
  • Babashka/Clojure Graal Native - Scripts and Command Lines
  • Clojure - data science, machine learning, data visualization, big data

I haven’t done a lot of game dev, so I’m not sure how viable Clojure would be for that, I know of Arcadia that lets you use Clojure CLR with Unity. And ClojureScript can be used to make web games, but if you wanted to make a more serious game with a complete 2D or 3D engine I’m not sure. Maybe someone else can chime in?

For embedded, I also haven’t done a lot. If I did, it be mostly for fun, so I would probably try out Ferret GitHub - nakkaya/ferret: Ferret is a free software lisp implementation for real time embedded control systems. , but again for serious embedded work I’m not sure.

Finally, for serverless runtimes like AWS Lambda, I’m also not sure, haven’t tried those yet. I think ClojureScript can be used for it, I’ve heard people got Babashka working as well, and I think you could get Clojure Graal Native to work too. I’m not sure to what extent they work for AWS Lambda though. You can also use Clojure if you expect consistent traffic, and even use AWS Lambda provisioned concurrency if you have predictable traffic patterns.

4 Likes