News for hackers. Stuff that matters.
Re:A Year in Clojure by yawn on Sunday October 07, 2018 @10:57AM (#18160858)
> All of a sudden you can stop worrying about "what am I getting in this function"

I think what you're saying is something like "this function guarantees that the thing I get here conforms to this shape" and I do like that. Something I don't see a lot of people express is just the simple "I know what the shape of this thing is by looking at the signature". Whenever I find myself reading other people's Clojure code, it feels like I end up spending more time figuring out what is being passed into a function. I have to look around to find the origin of a value. I wanted to tear my hair out the first time I tried reading Ring's source code to figure out how it worked. With F#'s Suave, I can tell what each function gets and what can be done to it--it's self documenting. In Clojure, as the original author you can play around in the repl full steam ahead because the types are in your head at the moment. Those who come after you have to assemble the puzzle with less information.

Re:A Year in Clojure by gered on Sunday October 07, 2018 @11:11AM (#18160931)
I think you've really summed it up well here. I have exactly the same concerns when looking at large Clojure codebases. It gets incredibly tiresome having to do this and even at the end of it, I'm still left with that nagging doubt "did I miss some detail somewhere?". Hopefully there's a unit test or three to help put my mind at ease but, at least at my work, that's really quite the pipe dream.
Re:A Year in Clojure by zmmmmm on Sunday October 07, 2018 @08:51PM (#18163455)
Couldn't agree more, but what I don't understand is that Python is plagued by this problem and nobody seems to have any issue with it. Trying to understand large Python codebases drives me crazy.
Re:A Year in Clojure by camgunz on Monday October 08, 2018 @12:33AM (#18164158)
I think a lot of Python engineers don't yet realize they have this problem. It's a classic issue in predominantly OO languages because you often get so caught up in defining objects you lose sight of control flow and data flow. Toss multiple inheritance and metaprogramming on top and it's basically hopeless.
Re:A Year in Clojure by StreamBright on Sunday October 07, 2018 @11:34AM (#18161054)
I usually put these into the description so the next engineer has a better time tracking what is what.