I always mentally wonder about #TypeScript vs #ClojureScript, knowing that #Clojure's decision to avoid #types is very deliberate. But TypeScript is conquering the world; is that an ad populum sign that Types are really a better way to go? Or does ClojureScript offer other things instead? If so, what are they, and to do the benefits of each option find value in different situations?
#Defn #clojure has a new episode out. Apparently soundcloud doesn't make RSS links obvious for everything, so I grabbed theirs from reversed the URL from Apple Podcasts and plugged it into my readers. https://feeds.soundcloud.com/users/soundcloud:users:220484243/sounds.rss
The language #Clojure and #ClojureScript languages are so stable, with breaking changes being frowned upon in the culture. But breaking in the (frankly, awesome!) tooling has been my difficulty as I maintain a dozen projects of varying ages. It is a real problem. #cider #nrepl #figwheel #piggyback
Wait... do you seriously mean to tell me that I've spent hours debugging #clojure the fact that `#js` is NOT recursive? So #javascript #clojurescript `#js {"authorizationParams" #js {"redirect_uri" (-> js/window .-location .-origin)}}` is NOT #js {"authorizationParams"v {"redirect_uri" (-> js/window .-location .-origin)}}`? I probably read this somewhere, but UGH!
And yes, I know that even fixed this equality wouldn't work because JS always breaks #CLJS equality... but the point is clear.
If you wish to make an apple pie from scratch, you must first invent the universe. -Carl Sagan #dependencies #cider #clojure #quotes
I made a #static site using #ShadowCLJS #ClojureScript . The last step was to remove the #CLJS. But I still use Shadow to start up a local server and explore my static site in-browser. It works nicely as a quick server. #clojure
I just had an unexpected error with a #babashka VPN script I run every day. I was re-using a shell that was in a directory of a #Clojure project and got a NPE and "java.lang.Error: Properties init: Could not determine current working directory." It never occurred to me that Babashka might care about my pwd... I suspect I've been missing something valuable.
The original code author was new to the language (this was his first and maybe only project in #Clojure) and loved to explicitly return nil and check `(nil?)` all the time. It turns out, it's harder to remove explicit type and `nil?` checks than I thought.
The glory of #lisp like #clojure is supposed to be the smooth #REPL experience. I have gone back to the stoneage because github actions are receiving an error that I cannot reproduce locally, so I keep making a change, pushing to see if that effects the github test error, and then trying again. Like I'm back in the stone age.
Stupid #javascript errors. Forgot I needed to insert single quotes in my transpiling. But THEN I found out that you can't have - dashes anywhere in variable names in js. My #Clojure heart is really #hiccup ing in sadness.
Excited for this talk on #Clojure performance in an hour. https://www.meetup.com/london-clojurians/events/293273349/?utm_medium=referral&utm_campaign=share-btn_savedevents_share_modal&utm_source=link
Those in #clojure who have not read the History of Clojure paper by Rich really should; great to get a step into Rich's head and to see the evolution of the language. https://www.scribd.com/document/470916091/clojure-hopl-iv-final
A great discussion going on here. Because of the location (#Clojure thread) there is a bias in the demographic, but good reasons are provided either way and no thoughtless "it's just better" answers. https://www.reddit.com/r/Clojure/comments/12wmx51/why_do_you_use_clojure_instead_of_other_lisps/
Call me crazy, but I sort of love #Clojure stacktraces. They are so incredibly useful for debugging. #refactoring
The Beauty of #Clojure as a #DataOriented language really shone for me yesterday when I was data crawling -- nay, slogging -- through a big #PHP multi-type nested blob.
One of the big downsides to being a hosted language like #Clojure is that, regardless of how awesomely stable the ideology with the language itself, you can't avoid problems if your host decides to make breaking changes. I am still doing damage control on the painful #Java 9+ #CoreChanges, where they decided it was time to shrink Java's core library and various dependent packages broke.
I am at a loss in my #clojure app. I've loaded a dependency which has cljc code and works fine in other apps of mine. But now when I load it in cljs, it is all nil. Kondo reads it and knows, eg, function signatures for it, but any effort to use it from the repl is just a lot of nil. I have restarted the repl multiple times, but no dice. "type" on any of it, even the NS declaration, is "nil". But Kondo knows it fine. What!?
Updating my #Clojure #Babashka #OpenConnect #VPN wrapper to work with #GlobalConnect VPNs. https://orys.us/uF
RT @ericdallo
More than 1000 Nubank Clojure services/libraries already use clojure-lsp (and clj-kondo under the hood) as the linter for formatting, clean-ns, and diagnostics 🎉
#Clojure #ClojureLSP #cljKondo
Full Stack Clojure web app engineer