clojuredesign-podcast

Discussions around the Functional Design in Clojure podcast - https://clojuredesign.club/
neumann 2019-06-24T17:44:35.015600Z

Yeah, not having state variables was very difficult for me. I was using to being able to change things in place, so it took me a while to figure out how to handle state.

neumann 2019-06-24T17:45:08.016300Z

I know what you mean about having to stick with it for a while until things made sense!

spfeiffer 2019-06-24T18:03:31.018500Z

Yeah, i left Clojure, but i could not get it out of my mind. It was still tickling me, so i returned for more attempts.

nate 2019-06-24T18:05:50.019400Z

@spfeiffer what was it that made Clojure stick in your mind? some promise of a better experience? curiosity about lisp?

spfeiffer 2019-06-24T18:07:45.021800Z

I guess the mismatch between my ability to make sense of the concepts on the one hand and the fact that others solved business problems with it elegantly. That told me there must be more behind it than i understood so far.

spfeiffer 2019-06-24T18:14:37.030500Z

That was before Java 8, so these functional concepts were even more alien back then. I saw Clojure code in a joint public research project where participants from a german university donated a component that took a formal description of legal agreements between participants of a data distribution platform for sensitive engineering data, and generated a RabbitMQ routing configuration file from it. Like: I am A, and B may see this part of my data, C may see this other part, and i have no relationship with D. This configuration was mathematically proven to be correct.

spfeiffer 2019-06-24T18:15:07.030900Z

By formal model verification

nate 2019-06-24T18:15:34.031800Z

oh wow

spfeiffer 2019-06-24T18:17:16.034300Z

The clojure code was very concise and seemed to be elegant. I as a Java cargo culter was asking myself: „This is all? Where are all the other lines of code?“ I did not understand the code at all, but i was fascinated, especially as the project collaborators from that university praised Clojure so much 😉

spfeiffer 2019-06-24T18:18:19.035900Z

You know, Clojure code is just data, right? That makes reasoning about the code rather simple and approachable for mathematical analysis.

spfeiffer 2019-06-24T18:19:26.037600Z

One of the names of these Clojure people i saw in the contributors list for Clojure 1.10 (clojure.core).

spfeiffer 2019-06-24T18:20:25.039700Z

That must have been around 2013ish when i got to know Clojure through this encounter

neumann 2019-06-24T18:20:37.039900Z

That sounds like a fascinating project! Yes, it's amazing how being data-oriented makes things simpler. Data goes into a function and data comes back out. No magical side-effects you have to know about.

spfeiffer 2019-06-24T18:24:35.044800Z

Well, i was project staff of an industry partner on this data platform, so i was tasked with integrating our product with said platform (using Java), but this generating of RabbitMQ routing configuration from formal contract definitions was surely one of the technical highlights. The university was into formal software verification methods, so they needed something „academia-style“.

spfeiffer 2019-06-24T18:25:44.046Z

Anyway, in the end this project contribution of other people made me a Clojurian. Funny coincidences.

nate 2019-06-24T18:30:29.046500Z

and have you been able to program in Clojure since then?

spfeiffer 2019-06-24T18:41:52.049500Z

Only in private. And i sneaked in a small config validation tool written in Clojure at a former employer. It's just a JAR, right? 😉 But that was undercover and not approved by management. Don't know they ever found out.

nate 2019-06-24T19:18:25.050Z

Heh, covert Clojure. One nice benefit of being a hosted language