Just curious if anyone can add some perspective.
Just curious if anyone can add some perspective.
What I find makes Clojure so much fun is the REPL, and the metaprogramming. There's always something new to learn, and experimenting and trying things is quick and painless.
It helps that the language is full featured, comes with batteries included, has a very smart cohesive design across the board, with minimal quirks, and an inviting community.
Its also pretty powerful, supporting everything the JVM gives you, and everything JavaScript gives you. So you can write desktop apps, backend services, multi-core processing, big data distributed jobs, CLI tools, web apps, mobile apps, scripts, etc. There's even apparently a subset that can do systems programming: https://ferret-lang.org/ , though its unofficial.
So, I understand you one hundred percent, all languages can do most things, and the benefits of one over the other are often exaggerated, my reason, and I think the only good reason to switch to Clojure is if you've gotten bored, and need to revive your flame, switch to Clojure and have more fun!
From a learning standpoint: Clojure and other functional languages are worth using because they make you approach problems differently, and in doing so you become a better programmer.
Source: used Clojure in production building a real product for ~3 years
Also, remember that when java devs were tired of suffering bloat, they invented gui designers to hide it. Now you have two problems.
Also Clojure is dynamic to an extreme (like most lisps), which can make complex programs rather easy and short to write, which might be appropriate for some use cases. I do a lot of data munging, and I've tried many languages for it (Python, Scala, R, Java, Groovy, JS, Clojure), and Clojure is by far my favorite for clarity, simplicity, and speed. And because the REPL toolchain (CIDER/Cursive) is head and shoulders above the rest (except maybe iPython).
Thanks for the response.
If you stick with procedural programming (and it's perfectly fine to do so), then it's true that most languages will not offer you much that Python and C cannot. If you're willing to re-think how you model the problems you're solving, you may find other languages, such as Clojure, help immensely.