So have been working on and off my startup, have been playing with some swanky new tools too.
The absolute rockstar language. The LISP syntax is an absolute blast. The syntactic sugar does have some extremely valuable benefits. The code is a joy to read though.
My first small project to explore Clojure was to build a ledger of all my expenses. I generally make a note of each of my expense in my iPhone and then transfer the data to my Google SpreadSheet using my clojure project.
Its the BEAM dammit. Processes all the way through. The speed when the program is IO-bound is amazing! Best of all it feels very natural. With Python, the asyncio still feels a bit bolted upon.
Even though both the languages are very different in terms of the shape and the code forms, I found a couple of things very interesting. After my last post (2 years back), I think these two languages share more than 1 common feature to make to my toolset.
I have been playing around building a card based games engine via Elixir and here too the language has been an absolute blast. This code is not public yet.
Package Manager for the language
What made me fall in love with these two languages is how much work the package managers (lein and mix) help us accomplish. Creating a project, setting up unit tests, dependencies, extensibility with dependencies, adding a structure to them as part of the core tools, all accomplished via the package managers themselves makes it so very useful.
The similarity of programming structures
As I dig deeper, I find the similarity of the structures to express the problem in very similar – using hashmaps / dictionaries / maps to express structures, symbols to tackle your constants, immutability, pipelines (->> , -> in Clojure, |> in Elixir) – the code shapes up very nicely.
All in all lovely working these languages.