Live data from Hacker News

Clojure Turns 15 panel discussion video

youtube.com

121–130 of 226 posts

Re: Clojure Turns 15 panel discussion video

#121

I have the feeling that after Nubank bought Cognitech, Clojure has gone to stagnation. I mean, i feel that promoting and improving Clojure is no longer a priority. And another think that stinks me everytime Cognitech talks about Clojure they have to bring to the table Datomic. They tried to push Datomic on my company long time ago when they do some consultancy job at my company. You can skip all the talk, because is…

It seems to me that these things are a big deal if you're doing a lot of JVM interop and not so much if you're primarily using Clojure-native libraries.

Clojure has futures, lambdas, streams, a community-maintained java.time library, core.match, and Clojure records. I'm sure there would be benefits to adopting the newer JVM-native equivalents, but I'm not as sure they're worth the costs.

Re: Clojure Turns 15 panel discussion video

#122

Clojure fans seem quite taken to hyperbole. If the language is such a "joy", "ultra-productive" etc I would have expected after such a long period of existence some major open source project to be showing off what the language attributes allow you to do. Happy to stand corrected if there is such a slam-dunk showcase that I've missed, I am actually interested to dig into clojure, if nothing else as a way to deepen my…

Clojure is associated with the JVM platform, Java and Scala and Kotlin end user open source apps are also underrepresented relative to dev population. There are lots of OS Clojure projects but they are mostly tooling, libs, databases, etc. There are a lot of business and data stuff most of which isn't open source.

Come to think of it are there many TypeScript open source apps either?

Re: Clojure Turns 15 panel discussion video

#123

I have been using Clojure for a solo project for a while now and find it shockingly productive. I initially planned to limit how much of the language "surface area" I explored to keep focused on solving the problem but was able to productively use much more of Clojure than I expected: -core.async for concurrency that led me speed up some tasks from ~1000ms to ~40ms (well, core.async got me to about 100ms, or closer t…

I have also been using CLJS/Clojure for a solo project. I debated between CL and Clojure for the backend, but CL’s package ecosystem is too weak to be justified. What other languages did you consider for your stack and what did you think were the tradeoffs?

Re: Clojure Turns 15 panel discussion video

#124
post #5

Earlier quoted context omitted.

I'm intrigued, why do the PMs and such care? (I'm assuming EMs is Engineering Manager?)

Clojure is really good at self-selecting for people that really care about innovation in programming languages. The other jobs in a tech company care about innovation in their domain. They rarely align. So for every weird, cool innovation you see, the productivity is immediately lost because people equally care about how you deal with state on app startup, or routing, or database interaction. And since none of those…

Sometimes with time SW based companies seem to migrate towards "easy to hire maintenance devs" style stuff once the products mature and slow down. It seems to happen to Ruby and Python projects too. But you might not have gotten it built in the first place if you started that way.

(Though I don't think Clojure is really "innovation in programming languages" stuff, it's a rather straightforward Lispy language and has changed much less than eg Java, C#, JS in the last 15 years, and is simpler too)

Re: Clojure Turns 15 panel discussion video

#125

Clojure fans seem quite taken to hyperbole. If the language is such a "joy", "ultra-productive" etc I would have expected after such a long period of existence some major open source project to be showing off what the language attributes allow you to do. Happy to stand corrected if there is such a slam-dunk showcase that I've missed, I am actually interested to dig into clojure, if nothing else as a way to deepen my…

I guess it's impossible to know what you've seen before and dismissed as not having sufficient features/attributes/popularity. Or what types of project would cause you to dig in but here are a few innovative projects using clojure that represent a fairly diverse set of interests.

- https://github.com/overtone/overtone - https://xtdb.com/ - https://github.com/kennytilton/matrix - https://github.com/metasoarous/oz

Re: Clojure Turns 15 panel discussion video

#126

Earlier quoted context omitted.

To name a few: https://github.com/xtdb/xtdb , https://github.com/nextjournal/clerk , https://github.com/penpot/penpot , https://github.com/metabase/metabase

Thanks. I don't know to what extend its "better-because-of-clojure" but I also found overtone https://github.com/overtone/overtone which should be good fun (though the underlying synthesizer is supercollider/C++).

Overtone is interesting because the guy who really kicked it off went on to make Sonic Pi which is Ruby based[1].

[1] - https://sonic-pi.net/

Re: Clojure Turns 15 panel discussion video

#128

I love Clojure the language but I’ve never seen a more fragmented ecosystem. There seems to be a pattern in the language of “a problem emerges > a community solution gains traction > Cognitect develops their own solution but its weird and undocumented”, like deps.edn over leiningen, spec over malli, pedestal over ring, etc. Many prominent clojurists recommend deps.edn over leiningen and socket repl over nrepl, but I’…

I can't agree more. Not only is documentation incomplete (in some cases), things are even worse. For example, spec is still slower than plumatic schema (which predates it) and tools.deps/tools.build still needs to catch up to leiningen options.

Most Clojure projects are maintained by a single person - Alex Miller. Even tickets to jira are manually entered by him after you explicitly write a bug request in ask.clojure.org. Quite a closed community; no wonder many significant contributors left for other venues.

Re: Clojure Turns 15 panel discussion video

#129
post #99
post #48

Earlier quoted context omitted.

I've been working with Clojure for the past decade, and it's still the most enjoyable development experience I've had. Once you experience using an interactive workflow where you can see the results from the code you're writing live, it's really hard to go back.

Can you recommend a good YouTube video that demonstrates this? I'm used to writing code incrementally in Python via the IPython REPL. I've also used Twisted's Manhole to get a REPL inside an already-running Python server process. But I believe you're referring to something substantially richer than that.

For me, it's a combination of having a REPL and having a good interactive interface between the editor and the REPL. Typing forms into and evaluating them in the REPL is one thing, but typing them into your editor file and evaluating them from there in the REPL is much more useful. (I can't fairly say one way or the other whether that's possible/common in IPython.)

Here's a short one to give a taste of that: https://www.youtube.com/watch?v=rQ802kSaip4

A good section from another talk specifically about that "don't type at the REPL" point: https://www.youtube.com/watch?v=Qx0-pViyIDU&t=740s

Here's a longer set of related references: https://clojure.org/guides/repl/annex_community_resources

Re: Clojure Turns 15 panel discussion video

#130
post #64

Earlier quoted context omitted.

In Clojure ORMs aren't really that popular considering most Clojurists just use the built in datatypes (e.g. maps) to represent data. There are no classes as such (unless you use Java interop). If you need a query builder the honeysql library is really nice.

> just use the built in datatypes (e.g. maps) Well, then, MRM: Map-Relational-Mapper.

There's https://www.hugsql.org/ for example. It takes maps for inserts and updates, and returns maps for selects. Other database access libraries over the years have typically shared that characteristic.

If you want to convert between maps that map directly to tables and some other structure, manipulating maps in Clojure is easy.

Post reply on HN