This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2021-07-06
Channels
- # aleph (1)
- # announcements (29)
- # babashka (39)
- # beginners (52)
- # cider (3)
- # cljsrn (19)
- # clojure (167)
- # clojure-europe (15)
- # clojure-nl (2)
- # clojure-uk (62)
- # clojurescript (13)
- # community-development (8)
- # cursive (5)
- # datomic (10)
- # introduce-yourself (1)
- # java (10)
- # jobs (12)
- # jobs-discuss (1)
- # kaocha (2)
- # lsp (6)
- # luminus (1)
- # malli (15)
- # meander (3)
- # music (1)
- # nrepl (2)
- # off-topic (91)
- # pathom (4)
- # reagent (21)
- # reitit (10)
- # sci (5)
- # shadow-cljs (17)
- # spacemacs (3)
- # sql (7)
- # tools-deps (40)
- # utah-clojurians (2)
- # xtdb (7)
Morning.
morning
really enjoying rust atm actually, more than expected
emacs editing experience Not Bad:tm: either
very elementary wrangling of smart contracts
rug pull? moi?
Reminds me of https://corecursive.com/064-ethereum-rescue-with-dan-robinson/ which was fascinating (āSmart Contract Rescueā)
ooh this looks interesting. a bit like the 'ethereum is a dark forest' blog post (although that one was a bit overdramatic lol)
I haven't tried rust, although I've spend writing C++ several years. Both Rust and C++ target similar niches, and looking at the syntax, it looks very similar, sharing similar paradigms, sharing some of the ballasts. I'm not sure would I look at Rust unless I needed write anything very high efficient.
Clojure is a such beautiful language, so elegant and so easy to work with data. Even if you need higher efficiency, Clojure with GraalVM should cover most of the cases. If it is not enough, then I would look for other languages
idk, if you're happy writing in ML like languages, and if you are tolerant of monads and Either(s) then rust is loads less painful than C++ etc (imho) modern tooling, good editor experience, great package manager, haskell-like smart compiler hints and errors etc, like I say, not bad at all
when I have to do nodejs stuff I still habitually reach for cljs/re-frame as ofc i love paredit and lispy stuff, but i really have fallen out of love with JVM clojure i think plus, natch, not an option for what i'm doing atm, it's rust or go and rust is a lot better than go lol
Can you tell more what led you to dropping Clojure JVM apart of not being a good fit for the current task?
a few technical reasons, but at its core, ergonomics
the selling point of JVM clojure is "interact with java packages" cool, i see why that's a thing if you're invested in java ecosystem i hate java interop in clojure so š¤· and other build systems and tooling in other languages are so much slicker
for backend stuff? mainly node
so a bit of cljs for my own stuff, typescript for paid work, now a bit of rust
build system is nicer, there's a library for everything, no JVM hassle
obviously deeply subjective š
i mean, if i needed to work with certain things, then i'd consider using jvm clj again
like, err.... kafka, for example
(probably cassandra too, actually)
Yeah, I haven't wrote much Cljs, but I understand what you mean. The JS libs APIs are more Clojurish than Java's. Plus all that deployment platforms: serverless, Firestore functions, CloudFlare workers... I've got an impression that is easier and faster to ship stuff in JS ecosystem. I've been thinking for a while to switch to Cljs but I haven't done it yet.
emacs/shadow-cljs (w/npm)/aws (serverless)
shipping serverless functions is pretty quick in cljs but it might be even faster using typescript if you use fp-ts and go strongly typed functional. obviously no runtime guarantees but monads x typescript compiler is relatively safe and relatively easy to work with, so a decent trade-off for backend services imo
you're essentially right though, the js community has been going more towards functional/immutable over the last few years and it really means the level of pain with interop there is decreasing
I think JS was always more functional and more data oriented then Java. In terms of interop, it is quite natural to use maps to hold function parameters in JS. You can't do that in Java. All the builders, all the patterns to just handle data.
Had you been emacs user prior jumping into Clojure? I've been thinking about investing in learning it, but I'm not sure is it worth it (I'm using Cursive and works really nice).
tbh if you have a setup that works, just use that
i learned clojure for a project, to a deadline in 2014 when cursive was alpha or maybe didn't exist, other devs used emacs so i learned emacs
i've grown to love it and use it for other langs since but it's got a learning curve that's pretty wild if you're not needing it across multiple machines/OS's, etc
yeah, agree, got similar conclusions. I think I would enjoy it, it is just it is quite an investment. Most probably I'll wait with learning it until I end up in a team using emacs.
I used Emacs on and off for close to 20 years, but switched to Atom and then VS Code -- and I think VS Code is great, with Calva (although I turn off the nREPL UI and use Clover with a Socket REPL for all my code eval needs).
Some people just love Emacs -- and use it for a lot more than just editing. Other people just find it to be a huge time sink and an exercise in frustration š
there's things i like about it, and things i don't tbh, but i like that it feels familiar, whatever language i'm in, and it's relatively uncluttered when i need to work
but i am weird and typically also have one to two instances of sublime text open with all the buffers i don't want to think about right now
so i apparently have 6 projects open in sublime right now so i can sort of browse code, but only one open in emacs, the one i'm working on right now
I usually have two or three VS Code instances open: one for work, one for OSS, and sometimes one for whatever random project I'm investigating or helping a beginner with. I like that I can just say code .
and open up a new instance for that folder.
the no-gc-through-type-safety thing that rust does looks pretty compelling to me
a similar idea in a lispy package - https://github.com/carp-lang/Carp
yeah carp is really cool
we had a talk on that at LL in the spring
it may be that medium term carp is where i gravitate, but the mindshare for packages etc in rust is decent, not sure whether carp will get there... lisp doomed to be niche etc
yeahino, mindshare is super important. i don't get why anyone writing a language would write anything other than a lisp, but the universe doesn't agree with me
With the possible exception of when you want a prolog š
i kan haz lispy prolog plz ?
Well I guess you can in the form of something like shenā¦ And you can always use something like core.logic or minikanren; if thatās sufficientā¦ However, Prolog has a similar culture to Lisp; it was a GOFAI language for symbolic computation, it has an equally big culture and history of meta programming, and itās super easy to do, itās also got a minimal syntax etc. So mixing the two feels less minimal, and more like a kitchen sink. That said Iāve never used shen (though have used core.logic a fair bit).
i'm not looking for a kitchen-sink language - i'm just confused why non-lisp language syntaxes even exist, since lisp syntaxes make it so much easier to manipulate the language as data
so i just want all the languages to keep their differing semantics and switch to a lisp syntax š
but i've never done anything more than toy examples in prolog, maybe its syntax is just as easy as lisp
e.g. i see stuff like https://gitlab.haskell.org/ghc/ghc/-/wikis/applicative-do and i think "if only you'd used a lispy syntax for your haskells, that would just be a macro and y'all wouldn't have to wait around for the compiler to change or be dependent on non-standard compiler extensions"
my thoughts exactly