Live data from Hacker News

Clojure 1.12.0 is now available

clojure.org

61–70 of 120 posts

Re: Clojure 1.12.0 is now available

#61
post #41

Earlier quoted context omitted.

Every company likes to hear about increased productivity and less bugs, and that's what Clojure/Script gives you. The trade-off is you get less resumes when hiring. The plot twist is the resumes are much higher quality.

Ha. I personally have sat in a meeting where a clojure enthusiast was explaining how he had quickly built a system. He could not explain the code he had written only three weeks before. Clojure suffers heavily from a “less code is good code, write clever code not verbose code” culture. For newcomers this creates dumpster fires that are quick to create and impossible to maintain. Anywaaay, long story short: no. It doe…

People who complain about verbosity and boilerplate in Java generally fall in 1 of 2 categories: people who haven't used Java for anything non-trivial in a very long time, or people who are bad at designing abstractions.

Less code can be good code, but they largely are orthogonal axes. Without good abstractions, it doesn't matter whether code is dense or verbose, it will be bad and difficult to grok.

Re: Clojure 1.12.0 is now available

#62

This is a wonderful language I've only just started paying attention to, watching the talks from Rich on YouTube have ruined things I loved (like Either types.) I'm struggling with how to introduce it into my company without recommending my colleagues follow my path of working through 3 books and then watching most of the conj talks from the last 12 years on 1.75x speed, while building a personal project and re-imple…

Dont. It wont be appreciated because nobody but you can work on it, and one day you wont work there anymore and the company is stuck with a few projects in Clojure while the rest is on their regular tech stack. You are creating a major company risk just for your own personal benefit.

[dead]

Re: Clojure 1.12.0 is now available

#63
post #47

Earlier quoted context omitted.

Cool! You should post an example :)

Just tested it: You run `clj` to get a Clojure REPL Then you can for instance paste the following into the REPL (add-libs {'thi.ng/geom {:mvn/version "1.0.0-RC4"}}) (use 'thi.ng.geom.viz.core) (use 'thi.ng.geom.svg.core) (->> {:x-axis (linear-axis {:domain [-10 310] :range [50 550] :major 100 :minor 50 :pos 150}) :y-axis (linear-axis {:domain [0 4] :range [50 150] :visible false}) :data [{:values [[0 100] [10 90] [80…

Using (add-lib 'thi.ng/geom) is sufficient here - it uses the newest version by default.

Re: Clojure 1.12.0 is now available

#64

Clojure is great. Brining together Lisp with the Java ecosystem makeand its concurrency model makes it great for building backend system, while still enabling quick changes. One thing that I found noteworthy is that Clujure did not pickup some innovations happening at Java since like version 8, such as Invoke Dynamic in the JVM or streams.

Generally for streams, the equivalent in Clojure with sequences or transducers is much cleaner and simpler so there was not a lot of reason to want them from Clojure. However, it is important to provide interop paths to work with Java libs that make use of them.

The functional interface coercion is implemented with invokedynamic.

Re: Clojure 1.12.0 is now available

#65

This is a wonderful language I've only just started paying attention to, watching the talks from Rich on YouTube have ruined things I loved (like Either types.) I'm struggling with how to introduce it into my company without recommending my colleagues follow my path of working through 3 books and then watching most of the conj talks from the last 12 years on 1.75x speed, while building a personal project and re-imple…

[deleted]

Re: Clojure 1.12.0 is now available

#66
post #61

Earlier quoted context omitted.

Ha. I personally have sat in a meeting where a clojure enthusiast was explaining how he had quickly built a system. He could not explain the code he had written only three weeks before. Clojure suffers heavily from a “less code is good code, write clever code not verbose code” culture. For newcomers this creates dumpster fires that are quick to create and impossible to maintain. Anywaaay, long story short: no. It doe…

People who complain about verbosity and boilerplate in Java generally fall in 1 of 2 categories: people who haven't used Java for anything non-trivial in a very long time, or people who are bad at designing abstractions. Less code can be good code, but they largely are orthogonal axes. Without good abstractions, it doesn't matter whether code is dense or verbose, it will be bad and difficult to grok.

[deleted]

Re: Clojure 1.12.0 is now available

#67
post #61

Earlier quoted context omitted.

Ha. I personally have sat in a meeting where a clojure enthusiast was explaining how he had quickly built a system. He could not explain the code he had written only three weeks before. Clojure suffers heavily from a “less code is good code, write clever code not verbose code” culture. For newcomers this creates dumpster fires that are quick to create and impossible to maintain. Anywaaay, long story short: no. It doe…

People who complain about verbosity and boilerplate in Java generally fall in 1 of 2 categories: people who haven't used Java for anything non-trivial in a very long time, or people who are bad at designing abstractions. Less code can be good code, but they largely are orthogonal axes. Without good abstractions, it doesn't matter whether code is dense or verbose, it will be bad and difficult to grok.

Having done substantial work in both Java and Clojure, my experience with abstraction in both is that in Java, making things more abstract almost always involves making the code larger (adding more interfaces, extending existing types to those interfaces, etc) whereas in Clojure making things more abstract typically means they get smaller.

Over time and at scale, this matters quite a lot. Java code grows and grows at a super linear rate as it handles new and changing requirements. This is ultimately not sustainable. Clojure code typically grows at a more linear rate (accretion of attributes in data or operations on data), but has more tools to create abstraction that can actually (if wielded well), be sub linear instead. This kind of change is not free or easy in any language, but in Clojure it is at least possible.

Re: Clojure 1.12.0 is now available

#69

This is really a massive release with many cool new features My personal favorite is add-libs You can now write single file demos or minimal examples for issues. Really lowers the friction to share small runnable snippets with people You can also actually use it to demo Java libraries as well without all the Java boilerplate. Just poke around in the REPL and paste code into a comment on HN or wherever and anyone can…

Does anyone remember Groovy? It has @Grab annotation which does essentially the same as add-libs you described. Very conventient for writing scripts.
Post reply on HN