community-development

https://github.com/clojurians/community-development
ackerleytng 2019-03-31T00:10:36.003200Z

I'm thinking of teaching clojure at my workplace - gathered some initial feedback and the big question was "Why should I learn clojure?". What would make a good 1 hour demo to convince people to learn clojure?

orestis 2019-03-31T07:02:49.016Z

Word of caution: live coding can go really really wrong. Consider having the code on slides, with diagrams showing the “architecture” so that people can follow along with the essence, instead of the trivialities.

orestis 2019-03-31T07:03:10.016700Z

Out of curiosity, which languages are you using now in your company?

ackerleytng 2019-03-31T11:38:41.017Z

We're using python and react, some others are using Java and kotlin

cvic 2019-03-31T12:25:28.017200Z

and what type of products are you building?

ackerleytng 2019-03-31T12:35:36.017400Z

enterprise web applications! for internal use

cvic 2019-03-31T20:57:15.019300Z

Interesting!

ackerleytng 2019-03-31T23:02:52.019500Z

Has anyone else successfully evangelized clojure at work?

orestis 2019-04-01T03:58:30.020400Z

I’m in the process of doing that. Currently developing a new feature for our SaaS with it.

ackerleytng 2019-04-01T12:22:37.020600Z

Is the rest of your SaaS in java?

orestis 2019-04-01T14:11:16.020800Z

Nope, 100% node. We’re actually trying to split the system (not in microservices, but some better integration points and define API).

hipster coder 2019-04-01T14:33:39.021Z

Node is good for 1 off api type projects. It does have really low network latency. But they are trying to make node handle multi core. But if I need to scale an API, I put it on the JVM. Node is as fast as JVM until you hit around 20k messages per core.

timgilbert 2019-04-04T20:04:01.029700Z

A long time back I came up with this little slide deck for a "super-fast intro to clojure" talk I gave at work, please feel free to use any of it if it looks useful... https://github.com/timgilbert/cljs-intro-slides

ackerleytng 2019-04-09T13:08:14.031900Z

cool, thanks!

2019-03-31T02:04:43.003400Z

It very much depends on the people’s experience and expectations there. Try to think about problems you are experiencing with what you currently use and how Clojure is better suited to address them. Also think about their likely objections and how those can be addressed with Clojure. For instance at my day job, I would show a comparison of an over-engineered python class and show how it can be made simpler by composing Clojure core functions that are very easy to test.

2019-03-31T02:05:53.003600Z

Additionally demonstrating the live REPL & editor integration is interesting.

2019-03-31T02:13:26.003800Z

I feel Clojure as a language has only trade-offs compared to other languages so it may be more effective to demonstrate the value of functional programming and how Clojure leverages those ideas to make better systems faster, that are easier to scale.

orestis 2019-03-31T06:39:02.005Z

I like to pitch Clojure as a pragmatic, get things done language. Do your prototype quickly in Clojure, and it’s also production ready.

orestis 2019-03-31T06:42:50.007100Z

Also, once traditional “frameworks” like Django/Rails might start to fail you, because your problem domain moved past their sweet spot, then Clojure was an extremely good fit.

orestis 2019-03-31T06:47:14.010Z

So to answer the original question, doing an one hour demo is tricky, precisely because Clojure is more suited for harder problems (I think). However, showcasing the REPL, perhaps for data exploration or developing some tricky algorithm would be interesting.

orestis 2019-03-31T06:47:51.011Z

Solving an actual problem is always interesting. Bonus points for asking for the audience for a problem :D

orestis 2019-03-31T06:50:19.014200Z

Or another angle: showcase how nice libraries interoperate, without the need of frameworks. E.g. start with raw jdbc, add clojure.jdbc, then add honey sql, change it to hug sql, then add a web layer on top. Should be doable if rehearsed...

ackerleytng 2019-03-31T06:58:46.014400Z

Thanks guys! I think I think I could try the SQL one. You're right about practicing first!

danielcompton 2019-03-31T20:12:47.018500Z

What do the admins think about deleting #spec? It's archived, but is the first autocompletion for typing "spec" in the command switcher. AFAICT it wasn't really used, and the description says "this channel will be removed eventually"

1
seancorfield 2019-03-31T20:30:59.018900Z

Done!

seancorfield 2019-03-31T20:31:09.019200Z

I'd forgotten it was still around.