This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2021-08-01
Channels
- # announcements (3)
- # babashka (1)
- # beginners (29)
- # calva (3)
- # cider (5)
- # clojure (17)
- # clojure-europe (9)
- # clojurescript (31)
- # conjure (2)
- # cursive (14)
- # datomic (51)
- # deps-new (4)
- # honeysql (8)
- # introduce-yourself (1)
- # lumo (8)
- # malli (28)
- # missionary (1)
- # off-topic (20)
- # pathom (2)
- # polylith (22)
- # practicalli (10)
- # reagent (3)
- # reitit (6)
- # ring (2)
- # schema (2)
- # shadow-cljs (25)
- # spacemacs (3)
What's great is that these days high order functions like map and reduce are just so common in other environments, JavaScript, Ruby and many more, that many programmers simply start with this mindset. I started with Ruby something close to 15 years ago and with Ruby it's all high order functions, the languages has for/while/until and the likes, but no one ever use them. And of course with many people being exposed to JS, and JS having very impressive FP capabilities for a mainstream language, things are getting even better.
Going from that to something like Golang makes me feel like I'm in no-mans land though 😅
Go has other concepts that are super neat though like structural typing (duck typing), in-built high performance CSP with green threads, and a big comprehensive, just works kind of standard library and tooling. It had all of these things right off the bat, which makes it really attractive and robust. But yeah, if you are used to an expression based, functional, dynamic style you really feel like you are compiling by hand when writing in a language like Go.
I've been doing go for last month or two at work, i absolutely hate it, if it goes on much longer ill be looking for another job. I find it too miserable to work in all day. Everything requires so much code and so much effort.
While Go certainly has some neat constructs, it really is miserable to work with (especially when working with dynamic data - structurally unknown at compiletime) and I, too, considered changing jobs due to too much usage at work.
Just a small rage about CSP in Go: it has neat green threads etc. but having to fall back to interface{}
(or copy-paste) every so often to share channel helper functions makes me feel helpless.
Also - why would a consumer not be able to say that it has enough and close the channel?
My opinion is that core.async
does a much better job than golangs CSP even if its missing green threads.
I think that’s the crux of it though. If you are missing something like green threads, the abstraction doesn’t hold. You are starting to think about threads as a real thing, so the barrier is violated. I consider it a missing piece.
Its true that in core.async
you have to think a bit more about what you really do in a go
to not lock up the threadpool but I believe as far as you are a little aware of it that hardly does any harm or gets in the way.
With golangs CSP it seems that synchronization is a bigger problem than in core.async
if chosen not to communicate through channels only.
The abstraction might not be perfect but still much better to work with in my experience.
I was a ruby pro for close to that long, too. collection handling was super familiar coming to clojure
Oh cool 😎 Yeah, agreed and thank God for that, at least something was familiar 😄
Rumors that Lewis might be suffering from long COVID. And possible dsq for vettel and Russell due to lack of sufficient fuel for scrutineering
If Hamilton wins with a dsq for seb and ocon then he might be the luckiest driver ever in f1. His luck this season has been almost supernatural. Max has a 10 place engine penalty to take later in the season after Hamilton put him in the tyre wall (dumb rule, should get free engine repair if someone else puts you off) , i just cant see max winning the title. And of course Hamilton has a team mate that will always just move over for him. His celebrations after Silverstone win were really out of touch...