Live data from Hacker News

Why Clojure?

gaiwan.co

131–140 of 302 posts

Re: Why Clojure?

#131
post #15

Earlier quoted context omitted.

The condition framework/break loop is one thing I wish more Lisps would copy.

Thats the one thing I miss in Clojure from CL. Although technically due to Clojure' immutability you have to do the same number of changes. But just dropping into the break loop, updating, continuing is just magic.

Makes the REPL feel a lot more alive and interactive, much like a SmallTalk IDE.

Re: Why Clojure?

#132
post #71

It’s great, and I learned a ton from Rich Hickey, despite not fully grokking Clojure or FP in general. I briefly worked at a small Clojure shop with an extremely talented crew. People were excited about FP and writing real business logic with it. My stack was different there. The problem started when the honeymoon phase ended, and the codebase grew as the business gained traction. Dynamic typing became a burden, and…

>>Also, JVM juju shooed many away. After I left, a coworker told me they had started rewriting part of it in Go, and that was going alright.

Golang can make even Python look terse.

There's practically 0 abstractions to meaningfully tame large code bases. You just end up writing same/similar code patterns over and over again.

If you are willing to go down that path I'd recommend using Java entirely. You get the full enterprise thing.

Re: Why Clojure?

#133

I love writing Clojure. Whenever I say that publicly, there are inevitably some voices challenging my stance with skepticism, criticism, and attempts to discredit whatever I say provides practical value for me. Then I have to explain to them, "no, it's not the only language I know," "yes, I've used dozens of other languages before," "yes, including languages with robust static type systems as well." And you know what…

Through the last decade, I have found that programmers' judgment of technologies, tools, and languages are incredibly noisy. It is hard to make correct decisions based on opinions alone, and design by committee is a real thing.

Common Lisp was the most mind-blowing language I ever touched, and it seems the creator of Clojure really filled the gap between the brilliant simplicity of Lisp as a language and the access to a mature ecosystem. Maybe I should try Clojure as my next language (I am enjoying Rust for now; Rust macros are also cool, but way more complicated)...

Re: Why Clojure?

#134
post #87

Earlier quoted context omitted.

10+ years ago Clojure had a fantastic introductory experience. lein new and away you go. lein was so good and effective, for both tiny hello world projects and real production apps. The experience has gotten worse and worse now for a decade. The core team have continued to take things in a worse direction (supported by a small group of fanboys) and most newcomers are now completely baffled by the tooling.

The cli/deps.edn tooling is different from Leiningen, and far, far less complicated IMO. I've written a good number of Leiningen plugins and it was always brutal to get anything to work properly, especially in combination with other plugins. Leiningen attempts to be everything to everyone in terms of building, testing, and packaging Clojure code. It's Clojure's version of Maven. cli/deps.edn effectively reduces thing…

tools.deps is less complicated mostly because it just flat-out does much less. To mimic everything lein can do required adopting half a dozen other libs and writing your own build scripts.

It's better now, but people are pretty uncritical of the core team, and adopted tools.deps before its surrounding ecosystem was ready to fully replace lein.

The upshot was, everyone got to rebuild the wheel for a couple years. And I say this as someone who once lost a week debugging a subtle lein/maven classpath AOT bug.

Re: Why Clojure?

#135
post #21

Idk ... it feels Clojure stalled since Nubank bought Hickeys company. Worst thing: spec is still in alpha !! I put so much on this ... but nothing really happened since ... idk 8 years?

Call it “stalled” if you like, it’s stable and it’s pure joy. I can just get stuff done with Clojure. And things that may seem inactive, like that lib that you need that hasn’t had a commit in 8 years, turns out that it just works and doesn’t need to change. This is commonplace in Clojure. Spec is still alpha and I’m not sure it will evolve more or if it’ll be something completely different. At least they’re not push…

> At least they’re not pushing you down the wrong path

No, but the release of spec single-handedly killed Schema, a more mature contract lib.

Then spec stagnated, because the core team didn't want to work on it, but as a core team library, nobody else can work on it, either.

Thus was born Malli, because people got tired of waiting.

Re: Why Clojure?

#136
post #96
post #90

I've worked around an open source Clojure codebase for a few years. I've grown to dislike Clojure by virtue of the culture it apparently fosters. As a community organizer in some vibrant decentralized spaces, reading articles from inside the community gives me ick feelings. There's a strange phenonemon involved when you have a diehard community that continually extols the virtues of the language, while the popularity…

I think there's something here. I'm not sure it's a bad thing. A negative framing might be that there's a sort of elitism. A more positive framing might be that it simply reflects a tension between different, valid views of how to build software which are sometimes (but not always) in tension. After all, an elitist can also sometimes be right. Disclosure: I say this as someone who has been about as deep as you can go…

As someone who was equally deep (I worked with you and the Danes), I think a lot of that elitism isn't just about building software.

It's a large part of why I've stepped back from clj these days.

Re: Why Clojure?

#137

I’ve never used Scala or Clojure, but I heard them discussed a lot in the same circles in the late teens. It seems like Scala kinda vanished from common mention. Whatever happened to it, and what made Clojure take off?

I think this is a mistaken assumption. Scala was always more popular than Clojure, and even now, I just checked with Google Trends, and Scala's still searched for 4x more frequently.

Re: Why Clojure?

#138
post #96
post #90

I've worked around an open source Clojure codebase for a few years. I've grown to dislike Clojure by virtue of the culture it apparently fosters. As a community organizer in some vibrant decentralized spaces, reading articles from inside the community gives me ick feelings. There's a strange phenonemon involved when you have a diehard community that continually extols the virtues of the language, while the popularity…

I think there's something here. I'm not sure it's a bad thing. A negative framing might be that there's a sort of elitism. A more positive framing might be that it simply reflects a tension between different, valid views of how to build software which are sometimes (but not always) in tension. After all, an elitist can also sometimes be right. Disclosure: I say this as someone who has been about as deep as you can go…

> A negative framing might be that there's a sort of elitism. A more positive framing might be that it simply reflects a tension between different, valid views of how to build software which are sometimes (but not always) in tension.

I really like this framing of "in tension". Multiple things can be true. I think it represents a healthy tension that I'm grateful exists, even if I'd not personally wish to be operating in that specific tension. But I'm sure the people living in are different than me, and can do things in this world that I could not :)

Re: Why Clojure?

#139
post #3

Because you want the type safety of lisp with the simplicity of the jvm /s

Clojure is strongly typed. That manifests in, for example, when Clojurescript emits compiled Javascript. Surprisingly, often it emits safer Javascript than Typescript ever could with all its static types. Typescript's type system exists only at compile time for development and static analysis. When compiled to Javascript, all type annotations and interfaces are removed, leaving code that runs dynamically at runtime,…

Not the OP, but usually, when people talk about type safety, they're referring to some flavor of static typing, not strong typing.

Very few languages still in use in the modern era are still weakly-typed.

My personal take is that while a lot of type systems can be overblown, nil-punning is not a sufficient substitute for optional/maybe types.

Re: Why Clojure?

#140
post #95
post #90

I've worked around an open source Clojure codebase for a few years. I've grown to dislike Clojure by virtue of the culture it apparently fosters. As a community organizer in some vibrant decentralized spaces, reading articles from inside the community gives me ick feelings. There's a strange phenonemon involved when you have a diehard community that continually extols the virtues of the language, while the popularity…

How to support the creation of beginners might be a different topic (and not a new one to technologies) to the offer of the technology itself. How was your experience in working with the existing Clojure codebase?

Very true. Thanks for noting that.

The codebase was democracy-related civic tech software. I was a bit biased against Clojure because I wished for the world to show up in the codebase, but it was written in an uncommon language that scared away most every coder who showed up with curiosity.

Probably just the wrong language for the culture I wished to exist around the software. Plus the maintainers used Rich's essays to emphasize their desired ethos of "singular vision" development, which I admittedly became resentful of.

Post reply on HN