Earlier quoted context omitted.
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
Clojure 1.11 is now available
51–60 of 74 posts
Re: Clojure 1.11 is now available
#52Re: Clojure 1.11 is now available
#53I do wonder what has to happen for greater adoption of Clojure.
Re: Clojure 1.11 is now available
#54Earlier quoted context omitted.
GraalVM has made creating Clojure binaries with quick launch times much more possible. I suggest checking out babashka (Closure bash scripting) as an example and as a means.
Does that also work on embedded platforms with limited resources?
There is Ferret [https://ferret-lang.org/] if you want Clojure compiled to C++11.
For microcontrollers, I've always used uLisp or plain C.
Re: Clojure 1.11 is now available
#55So 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?
The choice of default meanings is good too, lists/application, indexed sequences and k/v mappings are useful widely used primitive constructs (clojure makes sets (the math meaning, unordered collection, no dupes) with #{} which is handy).
It cleans up the code nicely, having these literals, and now I find non-clojure styles to be a bit annoying to read with the extra noise from contructor function calls.
And when describing data/DSLs using these literals people generally carry the general meanings over, so things can be a bit more intuitive. And in a lot of places just using ('s and ['s in a way that makes it easy to disambiguate them when reading some DSL or literal value also makes for nicer reading of code (just in terms of a bit less mental parsing effort).
I'm the type to not be immediately a fan of extra syntax added to a lisp, but I've been convinced that edn notation is pretty wonderful and I've been converted.
Re: Clojure 1.11 is now available
#56I 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…
What are you finding that is breaking? Backwards compatibility is pretty stellar in the language
Re: Clojure 1.11 is now available
#57Earlier quoted context omitted.
- 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…
> - 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. What are you finding that is breaking? Backwards compatibility is pretty stellar in the language
In general, Clojure still has poor documentation compared to more popular languages.
Re: Clojure 1.11 is now available
#58If 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 i…
Re: Clojure 1.11 is now available
#59If 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 i…
A nitpick: Your code will not run faster in GraalVM vs the JVM, it will start faster. If its small scripts where the startup time dominates, then of course it goes faster. For anything long-lived (even in the range of tens of seconds), the JVM has better performance.
Re: Clojure 1.11 is now available
#60Earlier quoted context omitted.
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.