2 ms·
This seems like a good place to post a practical report (or a data point): I've been using Clojure since 2008 and I've been running a single-founder business (
by jwr 4y ago
This seems like a good place to post a practical report (or a data point):
I've been using Clojure since 2008 and I've been running a single-founder business (SaaS) using Clojure and ClojureScript for the last 8 years. I could not have succeeded without Clojure.
From what I observe in online discussions, the biggest advantages are ones that young programmers do not appreciate :-)
* backwards compatibility: I don't have to deal with language-caused breakage
* fantastic environment: the JVM received bazillions of man-years of development and I get the benefits of a great compiler and a choice of fantastic garbage collectors
* mature community: no drama, just getting work done
* single language for server-side and client-side: most of my model (business logic) code is cljc, and gets used in both places
* no need for external serialization formats like JSON when sending data to the client (use EDN)
* not a single concurrency-related bug over 8 years
* eliminates most template/boilerplate code: nearly all code that I write is directly related to functionality
As for actual "language features", I also value different things than most commenters:
* macros are very useful, but I don't use them often. I have less than 20 in my entire code base.
* transducer pipelines are a fantastic tool to structure the application and promote code reuse, with great performance as a free side benefit, I feel like they are hugely underrated
* core.async is really useful once you get to asynchronous processing
There are also some nice practical advantages, like ClojureScript being compiled in advanced mode using the Google Closure compiler (a free performance boost!).
There is no "magic" to Clojure. It's just another programming language. It isn't revolutionary. It isn't hip or fashionable. It doesn't write your code for you. But it has a number of small improvements and niceties, which taken together result in a huge difference when writing real-world large applications.
Most importantly, when I look at my day to day work, I spend very little time on writing actual code, and I don't have any boilerplate or repetitive code. I spend time trying to understand customer workflows and thinking about how to model and represent these processes. In other words, GPT code generation isn't taking my job anytime soon.
- adityaathalye 4y agoJan, I've known of partsbox almost since it launched. I distinctly remember it blew my mind to read that it is a solo business. Now that's leverage. So I will take this chance to call out that partsbox and you have been inspirational through your work and advocacy (like your comment here). More power to you \m/.
- jwr 4y agoThank you for the kind words! My advocacy is because I'm quite happy where I am, and I owe a large part of that to Clojure and ClojureScript. These tools make it possible for me to manage an application of this size and complexity.