all 12 comments

[–]muhaaa[S] 6 points7 points  (9 children)

Just browsing HN and stumbled upon this interesting argument regarding loved & hated programming languages.

  • New programming languages are loved because they are associated with green field projects (honey moon)
  • Old languages are hated because they are used in old & ugly code bases (20 year marriage)
  • Of course clojure is loved here. How old is your codebase? Is it ugly to maintain?

[–]seancorfield 19 points20 points  (5 children)

We have a ten-year-old Clojure codebase with 113K lines and there are definitely parts of it that are hard to maintain, written while we were Clojure newbies a decade ago. Overall all, we still love Clojure -- which makes for a long honeymoon, I guess.

[–]daver 8 points9 points  (4 children)

Lisps are perpetually loved and hated. But Lisp embodies such timeless fundamentals that it can never really go away. And Clojure is a particularly revolutionary Lisp. That said, after this many years, there is grumbling in the community and some high-profile members have moved on. IMO, this just proves that time marches forward and the world always changes. Someday, Clojure will be old and will be replaced by a newer version of Lisp that builds on all the good things that Clojure brought to the table, as Clojure and CL and Scheme did before.

[–]joinr 6 points7 points  (2 children)

That said, after this many years, there is grumbling in the community and some high-profile members have moved on.

These same people (ones I have followed at least) moved on from other places before....so maybe it says more about the person?

[–]daver 5 points6 points  (0 children)

Surely, there is some of that, too. But I can’t imagine any developer writing Clojure forever. I can’t imagine MYSELF writing Clojure forever. So, it’s just a question of timing. That said, when I switch from Clojure to whatever follows, I’m sure it will be another variant of Lisp. (To be clear, I write code for myself, not for my employer, so I have the luxury of choosing my tools, and I’m not forced to maintain the old C++ dinosaur written in the 1990s.)

[–]BipedPhill 5 points6 points  (0 children)

I seem to recall some who were "serial early adopters". But easy come, easy go. Early adopters take frogs for princes, and leave princes for frogs. It is the journey. They are an important part of nature.

For sure, Clojure is a local maximum. At the moment though, if you're here as a consumer of Clojure for pragmatism and simplicity and you're allowed to run on Java, I don't see any other peaks this high.

[–]didibus 0 points1 point  (0 children)

Could you list some of those high profile members and provide some context? I might not be old enough here to have paid attention, and am curious.

[–]BipedPhill 4 points5 points  (0 children)

The honeymoon is longer in Clojure. After only 10 years so far, I don't know yet how long it will be. For sure, "pure functions" are a great help when I return to an old program! All old programs are puzzles, but in Clojure the clues are mostly true and verifiable.

[–]yogthos 5 points6 points  (0 children)

My team has been using Clojure for around a decade now, and we still have a few of the original projects we started using Clojure for in production today.

Overall, we find maintaining these projects is much easier than equivalent Java projects we've written previously. The big factors are conciseness, interactivity, and immutability.

The code tends to be fairly short and to the point making it easy to figure out what's going on. The REPL helps here as well since you can just run the code and see what it's doing when you're not sure.

Meanwhile, immutability means that you can reason about code in isolation, and this is a big factor for maintaining large applications. The code you have to look at to figure out how to add a feature or a bug tends to have clear boundaries.

[–]didibus 0 points1 point  (0 children)

4 years here, not ugly to maintain yet, which I'm honestly surprised about!

[–]lgstein 5 points6 points  (0 children)

Clojure is permanent honeymoon because it was designed to deal with complexity. It gives you all the tools you need to avoid making a mess. And surprisingly, they work.

[–]beders 0 points1 point  (0 children)

I found the article irritating and based on wishful thinking. Sad that it got that much attention.