Live data from Hacker News

Clojure 1.11 is now available

clojure.org

41–50 of 74 posts

Re: Clojure 1.11 is now available

#41

I do wonder what has to happen for greater adoption of Clojure.

- ease the onboarding. Every few months I try to give clojure another shot, and every few months _some_ part of the setup has changed and / or is broken. - compile to small binaries that run fast. I get what the langage gets from the JVM, but those 5,10 seconds I get before _anything_ runs, even after I had everything compiled ? - show me an example of how having 'spec' is going to help me refactor the code that I go…

> show me an example of how having 'spec' is going to help me refactor the code that I got wrong the first time, as easily as what a proto-ML-like static type checker does. It's not a question of "types are bad vs types are good thing". It's a question of "this property was called 'name', but now I need it to be 'names', and I really need to know every possible place of my code base that uses it so that I can recursively change all code paths to handle the fact that it's a list, now." I read the spec doc a dozen times, and I don't think it does help in this simplest of simple case.

For this, I think the way to go is to use `fdef` to annotate the arguments to each function. This is a lot more explicit keyboard-typing on the programmer's part, but then so is a statically-typed language.

Where I think Clojure will still come up short is in tooling to support finding each reference in a better way than grepping your project for `:user/name`. All the information you need is in there, as you can see from this proof-of-concept tool[0], but it's not implemented seamlessly into the workflow.

[0]: https://github.com/clj-kondo/inspector

Re: Clojure 1.11 is now available

#42

So thankful to be programming in Clojure the past few years. Thank you, Clojure Team, for all you do! My favorite things about using Clojure: 1. Runs on the JVM. Battle tested, tons of libraries, and well engineered. 2. Immutable Data Structures. I wouldn't want to live without this safety ever again. 3. LISP syntax - so simple to remember and just basically code functions! I also find reading Clojure code very simpl…

About the syntax. I tend to prefer Scheme because (, [ and { mean the same thing, whether in Clojure they are different constructs. How do you feel about this minor point?

Re: Clojure 1.11 is now available

#43
post #42

So thankful to be programming in Clojure the past few years. Thank you, Clojure Team, for all you do! My favorite things about using Clojure: 1. Runs on the JVM. Battle tested, tons of libraries, and well engineered. 2. Immutable Data Structures. I wouldn't want to live without this safety ever again. 3. LISP syntax - so simple to remember and just basically code functions! I also find reading Clojure code very simpl…

About the syntax. I tend to prefer Scheme because (, [ and { mean the same thing, whether in Clojure they are different constructs. How do you feel about this minor point?

No post body was provided.

Re: Clojure 1.11 is now available

#44

Earlier quoted context omitted.

I believe fintech is mostly a functional hub. There's an above average amount of Haskell, F#, and Scala in it. Most of the Clojure influence I believe comes from Nubank initially starting out as a Clojure shop IIRC. Unfortunately I also happen to not get paid to play around with languages, although I'm open to such a position if you know of any available one. I get paid to write robust software and to work with engin…

> I get paid to deal with requirements that change every bloody week because we have quick customer feedback In my experience this is something where clojure is exceptionally good at.

It seems I have been very unlucky. Because mine was that hacks piled, and piled, and piled, and no one ever got back to them because we could just do something horrible with metadata and cond our way to no man's land, without any types serving as documentation for the mess that was being created.

Re: Clojure 1.11 is now available

#45

So thankful to be programming in Clojure the past few years. Thank you, Clojure Team, for all you do! My favorite things about using Clojure: 1. Runs on the JVM. Battle tested, tons of libraries, and well engineered. 2. Immutable Data Structures. I wouldn't want to live without this safety ever again. 3. LISP syntax - so simple to remember and just basically code functions! I also find reading Clojure code very simpl…

When you say immutable data structures, do you mean all lisp data structures are immutable? It’s been awhile since I’ve worked with lisp (and that was implementing a MAL not actually writing lisp.)

Re: Clojure 1.11 is now available

#46

So thankful to be programming in Clojure the past few years. Thank you, Clojure Team, for all you do! My favorite things about using Clojure: 1. Runs on the JVM. Battle tested, tons of libraries, and well engineered. 2. Immutable Data Structures. I wouldn't want to live without this safety ever again. 3. LISP syntax - so simple to remember and just basically code functions! I also find reading Clojure code very simpl…

When you say immutable data structures, do you mean all lisp data structures are immutable? It’s been awhile since I’ve worked with lisp (and that was implementing a MAL not actually writing lisp.)

Clojure data structures are immutable [1], core to its principles.

1 https://clojure.org/reference/data_structures

Re: Clojure 1.11 is now available

#47
post #46

Earlier quoted context omitted.

When you say immutable data structures, do you mean all lisp data structures are immutable? It’s been awhile since I’ve worked with lisp (and that was implementing a MAL not actually writing lisp.)

Clojure data structures are immutable [1], core to its principles. 1 https://clojure.org/reference/data_structures

Ah okay that’s cool then. I thought you were calling out some low level implementation detail of lisp I had overlooked. I’m trying to build a lisp as the intermediate of my new toy programming language. So I wanna get that right.

Re: Clojure 1.11 is now available

#48
If you have been filtering out clojure due to dislike of JVM, give it a try with GraalVM either directly [1] or via Babashka [2]. GraalVM will in most cases not only run your code much faster than JVM, but cuts startup time from seconds down to msecs [3][4], not to mention compiling to native with c api or LLVM. With Babashka, it packages a subset of GraalVM so you don't have to install that but is more limited. So if you just want to play around with clojure to see if you like it, Babashka is a great way to start.

[1] https://github.com/oracle/graal

[2] https://github.com/babashka/babashka

[3] https://arnoldgalovics.com/java-cold-start-aws-lambda-graalv... (large proj - dynamoDB)

[4] https://dev.to/wololock/groovy-script-startup-time-from-2-1s... (small proj)

Re: Clojure 1.11 is now available

#49
post #42

So thankful to be programming in Clojure the past few years. Thank you, Clojure Team, for all you do! My favorite things about using Clojure: 1. Runs on the JVM. Battle tested, tons of libraries, and well engineered. 2. Immutable Data Structures. I wouldn't want to live without this safety ever again. 3. LISP syntax - so simple to remember and just basically code functions! I also find reading Clojure code very simpl…

About the syntax. I tend to prefer Scheme because (, [ and { mean the same thing, whether in Clojure they are different constructs. How do you feel about this minor point?

I guess for me, I like having them be different things, like they are in Clojure. But that could certainly be because Clojure is my first and only exposure to a LISP type syntax.

Re: Clojure 1.11 is now available

#50
post #42

So thankful to be programming in Clojure the past few years. Thank you, Clojure Team, for all you do! My favorite things about using Clojure: 1. Runs on the JVM. Battle tested, tons of libraries, and well engineered. 2. Immutable Data Structures. I wouldn't want to live without this safety ever again. 3. LISP syntax - so simple to remember and just basically code functions! I also find reading Clojure code very simpl…

About the syntax. I tend to prefer Scheme because (, [ and { mean the same thing, whether in Clojure they are different constructs. How do you feel about this minor point?

> (, [ and { mean the same thing...

That's not a feature of Scheme. It must be a feature of the implementation you use. (Which one?) E.g. in R7RS, [ ] and { } are explicitly reserved for future language extensions.

https://standards.scheme.org/official/r7rs.pdf

Post reply on HN