Learn Clojure programming with me
Learn Clojure is a personal website of an inspiring Clojure developer. I’ve set up this website on a whim as a place to document my journey getting to know about and learning Clojure. For those who are not familiar with it, when speaking in web development terms, Clojure is a server-side programming/scripting language closely related to Lisp which runs on the Java platform. That’s like the only thing that I know about it, as I’m just now browsing the official web page of the Clojure programming language.
Clojure has come onto the scene back in 2007. Since I am a web developer myself, I did hear people talking about Clojure, but it has never really stood out enough for me go and inform myself on what exactly it is that Clojure has to offer. That was until recent months when I discovered that Clojure might just be the thing I will need on my future projects.
Necessity is the mother of invention
The title of this paragraph kinda makes it sound like I’m the one who created Clojure, the programming language, but that’s not the case, not in the slightest. A colleague of mine actually brought my intention to Clojure when we were together on a vacation in Croatia. By the way, you really need to check out 48 things to do in Split guide over there. There are some amazing sights to be seen, you won’t regret it for sure. Go to Split, and from there you’ll find lots of Split walking tours that will take you to this natural marvel in this small Mediterranean gem.
Sorry for the off-topic, but I just wanted to make sure you knew that my colleague and I aren’t boring to the point where we talk about work most of the time on our trip, instead of actually enjoying ourselves. Although we kind did talk a lot about the projects we were working on, we did do other cool stuff, like we also went on a Krka waterfalls tour. Which is where the topic of Clojure came up. Maybe we really are that boring, hmmmm.
Anyway, let’s get back to talking about Clojure and the reason why I got into it. Well, one of the things that my colleague told me about Clojure is that it is good at multi-threading. Which is something that is highly desirable with modern server hardware. Most servers have processors whose core count is very high, a number of threads is, of course, double that, and it makes sense writing applications that are capable of taking advantage of that. But that’s not the only upside to using Clojure.
Pros of using Clojure programming language
Multi-threading – we have already mentioned this, but it bears repeating. Concurrency is the future of all applications, seeing how we’ve reached a limit to what a single CPU core has to offer when it comes to frequency, at least on silicon. There was after all a breakdown of Moore’s Law, and currently the only practical way of achieving better performance in hardware is by putting more cores on the CPU dies. However, you need applications capable of utilizing all those extra cores, and therefore you need programming environments that will allow you to create said applications.
Treating code as data – this feature of the Clojure programming language sort of allows for concurrency, which I previously mentioned. That being said, treating code as data is also useful in a lot of other ways. In this feature Clojure isn’t really unique, because Lisp also has this feature of treating data as code, but with Clojure we get a more refined approach which was definitely necessary. My friend who has actually worked in Lisp extensively has said as much at least.
Use of Lisp macro system – now seeing how I never really used Lisp in any way shape or form before, this feature doesn’t really help me. However, the fact that Clojure uses the Lisp macro system is something that will definitely come in handy for all those that have previous experience with Lisp or other Lisp-based programming languages.
How will this website work exactly?
On this website you’ll be able to find a curated selection of content that I thought would be a great introduction for folks who are complete newcomers to the Clojure programming language and to programming in general.
Myself being a programmer makes me think that I might be able to have a better handle over what might be important for beginners to focus on when just starting to learn Clojure.
That’s essentially it for now. I cobbled together this website in just a couple of hours and I don’t really have anything else that important to say other than if you decide to stick around and follow my wild ride of learning Clojure, I’m sure you won’t regret it. I’m not entirely sure how frequent I’ll be able to post, will it be in big chunks over a longer period of time, or in smaller more frequent posts. That remains to be seen. I’ll go with the flow and with what I think will work best. Hope to see you again.