Fork me on GitHub
#off-topic
<
2018-09-18
>
john00:09:02

The linux kernel devs are working on some pretty cool lock free data structures these days

andy.fingerhut01:09:34

I haven't read that article and understood it all, but on a brief scan, it has a lot of occurrences of 'lock', 'synchronize', multi-readers single-writer for something called a "lock free" data structure. Maybe I misunderstand what "lock free" means, though.

andy.fingerhut01:09:10

maybe it's free as in beer? 🙂

😆 4
john02:09:54

yeah, there's lockfree, waitfree and obstruction free.

john02:09:20

lock free just means that even if everything is locked, at least one thread is making progress

john02:09:50

But isn't that what we always want 😉

andy.fingerhut06:09:48

I would think that calling that "deadlock free" would be more precise.

andy.fingerhut06:09:26

Even there, avoiding deadlock is a global property, and a single data structure being deadlock free doesn't guarantee your whole system is. Anyway, I guess names are sometimes confusing.

orestis17:09:13

We have a team of 5 that is evaluating Clojure for transitioning a relatively simple (yet messy, real life) web application. Would you think that it’s best to dive into the deep end and try to do both frontend & backend at the same time (with the benefit of having a single language during the transition) or perhaps we should tackle backend first and focus on the API instead?

orestis17:09:16

Or perhaps a rephrase, does any here have a combination of JS on the browser and Clojure on the backend? If so, how does that work for you?

borkdude17:09:41

I would say do both in clojure, but this is just my personal preference.

orestis17:09:42

I should’ve mentioned that 3/5 would need to learn Clojure almost from scratch…

mattly17:09:03

what langauges are they coming from?

mattly17:09:13

clojure itself is easy to learn

orestis17:09:13

In my mind the risk of taking on both Clojure and CLJS is that it would be too many moving parts — including the browser and all that jazz for some people.

mattly17:09:19

the concepts underlying it, not so much

orestis17:09:41

We use Javascript now — but we have a diverse background. Mostly mid-level to senior people (at least in years of experience).

orestis17:09:47

I have to say, most of the evangelizing that the community provides is comparing Clojure with Java, where Clojure can be an obvious win. In comparison with JS, with its first-class data structures, first-class functions and general freedom, the comparison can be muddied — or at least, harder to get across if the audience hasn’t even used even an FP before.

orestis17:09:53

Interestingly enough, the best argument so far is asking people to watch Simple Made Easy — this tends to lower their disbelief a little bit to hear what the smart man has to offer.

orestis17:09:18

@mattly The concepts being data-driven, simple, decomplected and so on? Or something more tractable such as immutable data, succession model, concurrency non-issues?

mattly17:09:00

Had to go catch a bus so on my phone but

Alex17:09:08

I would say that if you’ve any taste for a programming language that embraces functional paradigms throughout, it’s worth moving to Clojure + ClosureScript.

mattly17:09:51

I think its more the overarching concepts of immutable data, state management with pure functions, etx

mattly17:09:02

How to build up patterns with those

Alex17:09:32

It’s great being able to write JS for the server, and for the web. In the same vein it’s lovely using the same syntax for web and server when you’re using CLJS and Clojure

mattly17:09:57

And i fully agree with Alex about this

mattly17:09:18

I work with clojure on the JVM, in the browser, with react native, and in node, and having a unified language for those environments is amazing

orestis18:09:13

Is there actually any form of code sharing or is it mostly syntax+paradigm that helps there?

orestis18:09:30

Because I have to confess, with JS on Node/browser, we have zero shared code.

Alex18:09:42

It’s syntax + paradigm

Alex18:09:53

Figwheel is A+, too

Alex18:09:01

Kicks webpack out of the park

orestis18:09:35

OK, interesting. We have a small separation between frontend/backend so it might not even be the same people working on those (which seems weird for a 5 person team, but it is what it is).

orestis18:09:56

Yeah, I know — figwheel is the bees knees. I have to go to dinner, thanks everyone.

idiomancy22:09:59

anybody out there do any work with Ethereum? I'm trying to ask newb questions but don't know where to turn 😅

idiomancy22:09:42

okay, I figured it out, had to go up one level higher to blockchain terminology in general.