introduce-yourself

Abdullah Akalın 2024-11-13T20:39:01.765709Z

Hello everyone. I am Abdullah. I have a long history of not being able to learn Clojure. This time may or may not be different at all, just another attempt. I will be focusing on ClojureScript and kindly ask from those of you who would bother themselves with providing me an (subjectively) ordered list of keywords related to the ClojureScript development, a few tips so that at the very least I can put myself in the right track for a project that only uses the features of plain JavaScript with standard DOM manipulation. Otherwise, just hi.

👋 5
👋🏻 2
👋🏼 1
Abdullah Akalın 2024-11-14T08:55:40.621319Z

The restriction is having no external npm dependencies. I am restating it in case it wasn't clear enough. The motivation is about the work I do. Sometimes we need internal tools that are immune to npm package updates for long periods of time in which case we rely on the barebones and keep things very simple. By DOM manipulation I just mean calling getElementById, setting innerHTML and such. Thank you for the welcome 👋

pez 2024-11-14T10:00:22.895299Z

A way to make you immune to npm package updates, while leveraging more of the Clojure power is to go for #replicant. It is pure Clojure/ClojureScript and has zero npm dependencies. In fact it has zero dependencies. There is generally much less need to worry about dependency updates with ClojureScript than with JavaScript. For two reasons: • There is a tradition in Clojure to not break your callers when updating a library. This stems from the way Clojure is developed. You can pick up a Clojure project from ten years ago. Bump all Clojure dependencies, and also Clojure to the newest version and mostly expect everything to work without changes in your project. • The way Clojure dependency management works, you choose when something should be updated in your project. If you, despite this, think you need to stay completely in old-school set innerHTML land, it is as easy to do this with ClojureScript as with JavaScript. The interop is stellar. For an example, have a look at the full-stack #shadow-cljs mini-app that #calva can create and start for you. You reach it from the REPL button in the VS Code status bar. (Takes less than a minute to install VS Code and Calva.)

Abdullah Akalın 2024-11-14T13:34:15.400609Z

Thank you very much. I think I got my keywords for a starting 👍

2024-11-13T22:32:09.533849Z

Welcome! 👋🏻

2024-11-13T22:32:13.254189Z

What's the motivation for having such a restriction? And to clarify, do you mean doing your own DOM manipulation via ClojureScript?