This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2016-01-08
Channels
- # admin-announcements (19)
- # announcements (1)
- # beginners (70)
- # boot (192)
- # braid-chat (55)
- # cider (3)
- # cljs-dev (42)
- # cljsjs (2)
- # cljsrn (25)
- # clojars (23)
- # clojure (162)
- # clojure-brasil (3)
- # clojure-czech (18)
- # clojure-russia (10)
- # clojurecup (3)
- # clojurescript (63)
- # code-reviews (6)
- # community-development (340)
- # core-async (7)
- # cursive (4)
- # datomic (20)
- # events (2)
- # funcool (3)
- # hoplon (20)
- # jobs (33)
- # ldnclj (11)
- # lein-figwheel (9)
- # leiningen (6)
- # off-topic (1)
- # om (79)
- # proton (4)
- # re-frame (39)
- # ring-swagger (4)
- # slack-help (2)
- # yada (2)
@mccraigmccraig: dream stack !
@nha: yep - it's working out pretty well so far :)
An understanding of monads […]
@mccraigmccraig do you use monads anywhere in your code? I am asking because I spent >3 years in Scala world and even there the only guys who were using category theory in commercial projects were Haskell devs who started coding in Scala
Speaking for @mccraigmccraig. In the past he has pointed to httpurr/promesa/cats libraries from funcool (https://github.com/funcool) which implement/use them
@jan.zy: all over - both front and back end, mostly as a way of sanely dealing with async and error-handling
and how do you like it? from my experience features like control over side effects, better composability etc. are counterbalanced with larger and harder to read codebase
i haven't found the codebase to be larger or harder to read - do/applicative-do (mlet/alet in cats) syntax makes things pretty easy to read... the principal problem i've had is overlooking return types and not finding out about it until runtime and getting a weird error - but i got to recognize that class of error pretty quickly
i see. problem of return types is not specific to monadic programming style so it looks like choosing this particular programming style is not a big advantage nor disadvantage
the big advantage for me is straightforward presentation of step-wise async code with error-handling... there are other solutions e.g. chain
on manifold/deferred
https://github.com/ztellman/manifold/blob/master/docs/deferred.md but i find the let
style approach of do-syntax somewhat more readable and flexible, and it's certainly nice to use the same lib on both front-end and back-end
e.g. here's a function which updates an entity's unique keys in a cassandra model... it reads very straightforwardly, but each step in the mlet
is an async call with early termination on error https://github.com/employeerepublic/er-cassandra/blob/master/src/er_cassandra/model/unique_key.clj#L251
that fn could certainly be improved some... it's an age since i wrote it, and i've learned a lot since then
and I just realized that I spent lots of time coding like that in my previous language of choice 😉
was that scala ?
what brought you over to the dark^h^h^h^h untyped side ?
@mccraigmccraig: in that example, is there some error handling other than early termination going on? e.g. logging?
@jstaffans: no - i've got some plans to throw a writer in to the mix in some cases, to get some structured logging out, but i haven't implemented yet
@mccraigmccraig: - C++ FTW! - Java: nice, it has garbage collector so I don't have to take care of malloc. but why do I need to learn all this design patterns? and this JEE stuff.. - Scala: FP and no design patterns but after some time I started asking myself why I need types everywhere? libraries are smaller and more powerful - Clojure: FP, no design patterns, types only when I need them, libs come in even smaller packages = better composability 😉
not dissimilar to mine, though i digressed through ruby rather than scala
@jan.zy no design patterns in languages other than java? I think u misunderstand what a design pattern is. The monad is a design pattern
yeah, for Scala and Clojure I should write ‘less design patterns. good practices are enforced by better grammar of the language’
We're still looking for a front end developer who wants to do ClojureScript full time: https://lambdawerk.com/frontend-developer?language=en
Hey, gang! I was contacted about this job position but I’m currently engaged so he asked if I would pass it along to you lot. Here’s the description he sent me: 'I am working with a privately held 3rd Party Logistics company working on a Functional Programming (Clojure Based application) The Director of Data Sciences is a highly intelligent guy with a VERY laid back work life balance outlook. You can work remotely 100% and rarely are you tied to any type of 9-5 hours. Currently the team has a Raleigh based and a Florida based developer and they are looking to add to the team! I was curious if you, or anyone in your network might be interested in an opening like this. The base pay is targeted right around that 6-figure mark with some bonus opportunity as well!’ If you’re interested, contact Sean Devin at <mailto:[email protected]|[email protected]>.