4 ms·
Agreed, cyclomatic complexity is definitely something to be aware of when designing functional programming systems. Although, I disagree about Clojure's readab
by janetacarr 4y ago
Agreed, cyclomatic complexity is definitely something to be aware of when designing functional programming systems.
Although, I disagree about Clojure's readability, but that's probably because I've been doing it for so long.
Interesting Java project you've got there. Reminds me of Clojure's core.async library and software transaction memory ;) (though, I know it's not exactly the same thing).
If I was transforming large streaming input from Kafka or Kinesis, I would probably reach for Cortex (a map-reduce style lib for Clojure), or I might rig up some strange, stream-to-lazy-seq adapter and reach for transducers as they have much better performance when dealing with larger input.
- samsquire 4y agoI am really interested by Software transactional memory and enjoyed reading the Joe Duffy's blog posts about Midori and adventures with STM. https://github.com/joeduffy/joeduffy.github.io/blob/master/_posts/2015-11-03-blogging-about-midori.md https://github.com/joeduffy/joeduffy.github.io/blob/master/_... I like left-right concurrency control because it sidesteps a number of thread safety problems by ensuring that a thread can always safely read or write to its own buffer.
- KingMob 4y agoFair warning, STM has largely not panned out in industry, and is no longer in common use. Clojure was built when it was still fashionable, but even having the advantage of immutable-by-default data structures, 99% of modern Clojure doesn't use complicated STM, and instead relies on the humble atom, which is updated with a glorified CAS.