clojuredesign-podcast

Discussions around the Functional Design in Clojure podcast - https://clojuredesign.club/
neumann 2019-07-02T16:00:40.019100Z

@edwaraco Welcome!

2019-07-02T16:26:56.019400Z

@neumann 👋 Thanks!

neumann 2019-07-02T16:31:18.021Z

@channel I'm curious, what got you interested in functional programming? (Reply in a thread)

Cora (she/her) 2019-07-02T16:31:47.021300Z

I don't think channel works on this server?

Cora (she/her) 2019-07-02T16:31:57.021600Z

womp womp

neumann 2019-07-02T16:32:11.021900Z

@corasaurus-hex Yeah, it's metaphorical. 😛

neumann 2019-07-02T16:32:32.022Z

I first learned about it in grad school. It seemed so different from any language I had learned, and I couldn't imagine doing anything interesting in it.

neumann 2019-07-02T16:33:02.022200Z

Since my prof was so pumped up about it, I had to go figure out what all the fuss was about.

Cora (she/her) 2019-07-02T16:34:18.022400Z

I learned erlang like 5 years ago, and we started using elixir at work 3 years ago. a friend of mine is doing clojure professionally and convinced me to try it and now I'm hooked. I've done a good amount of work in elixir and I think the actor abstraction is the wrong one for 90% of problems, but clojure is dynamic and not forced into a bad abstraction soooo

neumann 2019-07-02T16:35:25.022600Z

@corasaurus-hex Oh boy, I got totally hooked on actors in Scala + Akka. That was, at least, until I had to go back to my 1 year-old code and try to add new features. Yikes!

Cora (she/her) 2019-07-02T16:36:09.022800Z

yeeeaaaahhhhh

neumann 2019-07-02T16:37:33.023Z

@corasaurus-hex Aside from not being forced into actors, what else got you hooked on Clojure?

Cora (she/her) 2019-07-02T16:37:47.023200Z

and it doesn't help that actors are so brittle, since all calls are checked at runtime

Cora (she/her) 2019-07-02T16:38:20.023400Z

make a tiny change and you can get cascading process crashes that are super hard to debug

Cora (she/her) 2019-07-02T16:38:43.023600Z

and all to serve an abstraction that's the wrong abstraction much of the time

Cora (she/her) 2019-07-02T16:39:40.023800Z

if I had to write pure networking services I'd probably use it, for the isolation and soft-realtime guarantees and whatnot, but for a webapp or my maze generator? pass

neumann 2019-07-02T16:44:28.024Z

@corasaurus-hex Yes, debugging actors always felt really difficult to me! Definitely feels like the wrong abstraction for everything but distributed agents that need to coordinate at some level.

Cora (she/her) 2019-07-02T16:45:31.024200Z

did you do something like that with akka? I've heard things about it

Cora (she/her) 2019-07-02T16:46:02.024400Z

good things about it.

Cora (she/her) 2019-07-02T16:46:05.024600Z

good things

Cora (she/her) 2019-07-02T16:46:06.024800Z

lol

neumann 2019-07-02T16:48:38.025Z

Yeah, I wrote a bunch of code in Akka for managing a bunch of websocket "subscribers" and broadcasting state updates out to them. I went with actors all the way down, so to speak.

Cora (she/her) 2019-07-02T16:51:53.025200Z

oh, yeah, that's a good use for actors

Cora (she/her) 2019-07-02T16:53:15.025400Z

we use it for a work orchestration system where actors represent the state of a bunch of things, like the the long-running sagas of work for a given job, the ec2 instances where we perform our work, etc

Cora (she/her) 2019-07-02T16:53:19.025600Z

on http://zencoder.com

neumann 2019-07-02T16:54:16.025800Z

Cool!

Cora (she/her) 2019-07-02T16:54:52.026Z

unfortunately people want to eject clojure from the org, there are a bunch of projects using it that people don't want to work with

neumann 2019-07-02T16:55:22.026200Z

Why do you think that is? What is it that bugs them?

Cora (she/her) 2019-07-02T16:56:30.026400Z

I think they just don't do FP at all. Brightcove is a large enough org that a lot of different tech is used.

neumann 2019-07-02T16:56:54.026600Z

Oh, I see. They haven't made the jump to FP at all. It's not Clojure, per se.

Cora (she/her) 2019-07-02T16:57:03.026800Z

yep

Cora (she/her) 2019-07-02T16:57:41.027Z

asking a bunch of java guys to occasionally figure out clojure and make changes to the application can understandably make them frustrated

Cora (she/her) 2019-07-02T16:58:00.027200Z

their only experiences with it are confusion and frustration, over and over

neumann 2019-07-02T16:58:47.027400Z

Yeah, it's so different than OO. That's why we started the podcast. We really want to help people make the jump into FP. Avoid confusion and frustration.