Hacker News new | past | comments | ask | show | jobs | submit login
Clojure 2015 Year in Review (stuartsierra.com)
197 points by lauriswtf on Jan 1, 2016 | hide | past | favorite | 27 comments



This year, Clojure cemented itself as my favorite programming language, and I felt glad to be able to use it daily for my work, as it does take so much effort off the developer for little things, allowing one to concentrate more on big things.

However, it was also the year I learned that, while Clojure, as a dynamic typed language running on a VM, is the best of that class of languages, static system languages are still irreplaceable for so many other things. This was the year I realized that one language does not fit all, and that it is okay to have more than one favorite language. (And in my case, it is Clojure and C++ that I am now using equally, and with equal enjoyment, and for entirely different reasons).


Clojure is one of the most addictive languages I've ever worked in. I can see why so many people pick it up as something to build hobby projects with, it's just so damn fun to write.


I'd love to dive into it more but the startup time for Lein just absolutely kills me.

10s to build, 15s for REPL. This is on a laptop that handles VS2015, Rust and many other languages fine.


Ideally, you wouldn't be restarting the process all that often. I'll typically be REPL'd in for quite a few hours at a time as I'm developing (only reason for restarts is usually pulling in new dependencies, or if your state gets out of whack; which is something that doesn't happen all that often after adopting Stuart's "reloaded" workflow based on component)


Stuart Sierra's Component: https://github.com/stuartsierra/component

and his 'reloaded' workflow: http://thinkrelevance.com/blog/2013/06/04/clojure-workflow-r...

I haven't looked into them but the lein startup time kills me too. I love Clojure but I am looking at alternatives like Racket because of this.


People seriously switch languages based on the time it takes their dev environment to boot up?


I can't speak for other people, but I guess being a person and considering switching from Clojure because the development workflow has a long feedback cycle that the answer to your question is a yes?

I have Ring reloading code for me as it changes, however if there is a syntax error or exception in a thread, code doesn't get reloaded and strangeness ensues, requiring me to kill the jvm instance and start it up again. Stuart Sierra talks about this problem in his reloaded workflow, and how it's still a problem for him, but he at least now has a faster way of refreshing his app instances.


The REPL takes a bit to start, and then I leave it running for days. The startup time really has nothing to do with the development experience once you're in the system. Even very large projects compile in less than a second for me.


> This year, Clojure cemented itself as my favorite programming language...

Same. I've been playing with it for years, but I feel 2015 was the year Clojure(script) finally "got there", and is definitely here to stay.


> This was the year I realized that one language does not fit all, and that it is okay to have more than one favorite language.

Same here. This, funnily enough, had the nice effect of taking a lot of stress out of talking about programming languages.


I agree. I've noticed that programmers are often evangelical about their favorite language, and it gets tiring sometimes to say "yeah, but..." Sometimes, you just need a different tool, and efforts to make one language do absolutely everything well are not usually the best way to spend one's time.


You know, typed clojure is pretty excellent.

http://typedclojure.org


Mm, it has tremendous shortcomings. A lot of pro shops can't use it any more.


For which use cases are you using the other favourite language (in this case, C++)?


Clojure is not really an option when you do systems programming, such as writing native apps, command line tools, working on small devices like a Pi, etc. There are many things I'm exploring in C++ for which Clojure is just not a good tool for the job.

But also, there are some really great C++ libraries in the areas of physics and graphics, and there is no equivalent of the in Java I could use.


There are a few Clojure-inspired Lisps that are meant to be suitable for writing command line apps. I'm trying to work on one myself in fact (https://github.com/sdegutis/Paladin), with the main goal being that it's written entirely in C and has 0 (required) external dependencies -- both goals having been inspired by the implementation and design of Lua. But I'm no expert at implementing languages so it's coming along slowly.


Some days I wish I hadn't completely scrapped and deleted my Mac-only Clojure-only native IDE. It was fricken cool, even if it wasn't Emacs. I think that thing had promise. Welp.


Isn't it this: https://github.com/vijaykiran/Leviathan ? I briefly played with code, but never got time to hack on it.


Oh wait, you didn't find it, you're the one who forked it! I should pay closer attention to usernames heh. Thanks so much for forking it and holding onto it for this long. Out of curiosity, if you did have the time, what kind of things would you have hacked into it?


One primary thing I was interested in "visual-structural editing" at least presenting the program as a nice "pipeline" of functions.

I've been a fan of (disappearing) Cocoa-built IDEs (http://lists.apple.com/archives/java-dev/2007/Aug/msg00025.h... was another one)


Whoa you found it, thanks!!!


> Some days I wish I hadn't completely scrapped and deleted my Mac-only Clojure-only native IDE.

Scrapped, sure, if you felt frustrated with it, but why did you completely delete it?


Probably once a year, I go through my Github projects and delete ones that have absolutely 0% interest, including from myself. I would have used my IDE (Leviathan) myself but it's hard to compete with Emacs. With a bit of community help I think it could have become something really cool.


Is it on github? Maybe someone takes up the torch, or at least reads your sources for guidance.


Apparently someone found a fork of it on Github! I've forked it again myself and will keep it for the time being... 575 commits is a lot of time to throw away completely, I shouldn't have been so rash the first time.


I forked it in the hope of keeping track of it - but the "Whatever" commits weren't that encouraging. :)


Haha. Yeah. There was 0 interest in this app from anyone besides myself, and it was a bit discouraging, so I just felt like "what's the point in making good commit messages anymore?" and had a bit of fun with that :)




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: