/r/Clojure
Clojure is a dynamic, general-purpose programming language, combining the approachability and interactive development of a scripting language with an efficient and robust infrastructure for multithreaded programming.
Finding information about Clojure
API Reference
Clojure Guides
Practice Problems
Interactive Problems
Clojure Videos
Misc Resources
The Clojure Community
Clojure Books
Tools & Libraries
Clojure Editors
Web Platforms
Clojure Jobs
/r/Clojure
Please include any restrictions (remote/on-site, geographical, workpermit, citizenship) that may apply.
Hello folks,
I'm a LISPer who recently started using Clojure to write an integration test suite, and I'm really enjoying the language.
I'm now looking to doing some web development (HTTP server and UI framework) and would like to know which libraries you've used and can personally recommend. I haven't used ClojureScript yet.
Any information would be greatly appreciated, thank you.
THIS IS AN ONLINE EVENT
[Connection details will be shared 1h before the start time]
The London Clojurians are happy to present:
Mike Anderson (https://www.linkedin.com/in/mike-cvx/) will be presenting:
"Encoding internet-scale decentralised data structures on Convex"
This discussion will expand on the first Convex event with the London Clojurians (https://www.youtube.com/watch?v=bpKAQgcJRao&authuser=4) which provided an in-depth look at the whole platform. Now that Convex is ready to launch, the second conversation with dive into the significance of these efficient data formats and why the CAD003: Encoding Format (https://github.com/Convex-Dev/design/tree/develop/docs/cad/003\_encoding) will be so revolutionary. The call will also cover examples for users. Note: the VM is written in Convex Lisp, inspired largely by Clojure. This past week Convex was awarded a grant from the EU government for a cross-chain token interoperability project.
Mike is a passionate contributor to open source software projects and an OG Clojurian, all the way back to Clojure 1.1 release. A programming enthusiast since the age of eight, Mike has a particular love for efficient data structures and algorithms. He represented the UK in the 1996 International Informatics Olympiad. Mike has held multiple CTO roles including being a founding member of Ocean Protocol (Blockchain for Data & AI) and Datacraft Sciences (Machine Learning, Data supply chain orchestration) based in Singapore.
If you missed this event, you can watch the recording on our YouTube channel:
https://www.youtube.com/@LondonClojurians
(The recording will be uploaded a couple of days after the event.)
Please, consider supporting the London Clojurians with a small donation:
https://opencollective.com/london-clojurians/
Your contributions will enable the sustainability of the London Clojurians community and support our varied set of online and in-person events:
Thank you to our sponsors:
RSVP: https://www.meetup.com/London-Clojurians/events/304286685/
Given the recent posts about Caveman and Zodiac, I thought I'd replug this email I sent to the mailing list (text copied below): https://groups.google.com/g/clojure/c/uroL-ftfrqY
Hello, thoughts about the Clojurish web stack have been bouncing around in my head for a while now. In recent months, I've noticed an uptick in conversations about the same. Maybe it's recency bias. Maybe not. The "boring business web app" is where the money is, after all.
I wonder if people would like to put heads together to come up with something general-purpose that helps people understand + construct + apply web things built by community members over the years.
Personally, I'm not convinced that a One True Framework is the solution. However there might be opportunity to out-framework all the framework-heavy communities by making a way to construct one's own framework.
The "constructor" might spit out a "standard recipe" that could be: "Ring + Compojure" or "Ring + Reitit" or "Kit" or "Duct" or "Sitefox" or "Donut" or "Pedestal" if the user feeds in well-specified requirements that match one or more of said framework/library collection. Or, it might run us through a decision tree to incrementally expand requirements into a project on disk (a clj-new template, but created incrementally).
AND, as m'colleague Kapil insists (and I agree) it should be a "full system" system... have us covered from parts assembly to production deployments.
/Explanations/ would be a key feature of such a constructor; Why this and not that? How to wire X and Y together? What are some example use cases? The explanations would be sourced from source repos.
Basically, this thing would respect and support the diversity and inventiveness of the Clojure web ecosystem /while making it accessible/ to the masses. The innovation is distributed, but the composition is centralised. This sort of thing is definitely in userspace and not language maintainerspace. IMHO, SciCloj is a great example of a special interest group that's doing yeoman service.
I'm not sure if I'm making any sense, but I'm sure smarter people that I have struggled enough to have had ideas of their own and if they come together, they might conjure up a very creative solution. What I am confident about, is that this is a complicated task, but not a complex one.
Anyway, I just wanted to put this out into the clojureverse and see what happens.
May The Source be with us,
- Adi
P.S. I'm sorely tempted to cite names / references that have informed and inspired me, but that will put people on the spot.
So whomever is interested in this line of thinking may self-identify by replying to this thread, with their current state of the art thinking (videos, essays, books, frameworks etc.).
Here's some of my stuff on these lines, for example:
https://github.com/brettatoms/zodiac
Zodiac is a small web framework for Clojure that provides a reasonable set of defaults while also being easily extensible. Zodiac stands on the shoulders of giants rather than being innovative. At its core Zodiac is mostly just a preconfigured Ring app and not more that a few hundred lines of code.
Zodiac tries to fill a similar niche as the Flask framework with defaults that make it quick to start a new Clojure based web app without being heavy-handed.
What Zodiac includes by default:
What Zodiac doesn't do:
And that's about it. Zodiac is mostly feature complete. Additional features like common database setup and asset handling will be done as Zodiac extensions.
UIx — Idiomatic ClojureScript interface into modern React, v1.2.0-rc3 is out with a bunch of goodies com.pitch/uix.core {:mvn/version "1.2.0-rc3"}
^:memo
tag for defui
to create memoized components in-placeuix.core/clone-element
helper for cloning UIx elementsset-state
in use-state
hook behaves like cljs.core/swap!
when passing updater function, (set-state update :n inc)
uix.re-frame
ns with use-subscribe
hook (previsouly implementation was only listed in docs)If you are using UIx, give it a try and report issues on GitHub
Please ask anything and we'll be able to help one another out.
Questions from all levels of experience are welcome, with new users highly encouraged to ask.
Ground Rules:
If you prefer IRC check out #clojure on libera. If you prefer Slack check out http://clojurians.net
If you didn't get an answer last time, or you'd like more info, feel free to ask again.
Hello everyone,
I'm new to the world of clojure programming. I come from a C++ and Python background. I have started learning Clojure from the book "The Joy of Clojure" because I prefer old school text book like books which explains everything.
However I noticed that it implements a lot of Java interops and does a lot of things like Java (eg Regular expression, AWT stuff, etc).
Do I really need to learn Java to be a better Clojure programmer? Or I can stick to purely Clojure and focus only on it?
I found a couple options
curious what people actually use. or do most people custom implement it
I know Cursive has a Perpetual License. What other software built with Clojure allows you to buy it once and it indefinately?