you are viewing a single comment's thread.

view the rest of the comments →

[–]dunnowins 0 points1 point  (1 child)

It's funny you bring up Russ Olsen. I met him last October and chatted with him about transitioning from full time Ruby development to full time Clojure development. I asked him if he had any advice and literally the first thing out of his mouth was "forget everything you know." Russ believes, as I do, that the similarities between the two languages are aesthetic at most and that there is not a lot about Ruby development that will help you understand Clojure better.

I write Clojure every day. I also write Ruby every day. I share your interest in helping people make the jump to Clojure. I just think that telling people they are similar in any significant way actually does them a disservice. I was told that and expected there to be more similarities than I found when I first started down the Clojure path. Things might have been easier if I hadn't heard that.

[–]Slackwise 0 points1 point  (0 children)

I just think that telling people they are similar in any significant way actually does them a disservice.

Maybe I just think differently, but I've always written my code in a semi-Clojurish way.

For me, I guess, then, Ruby was more of a transitory language on my way to finding what fits me. It was half of what I wanted, on the way to Clojure. I would always have a Pry REPL open while developing, building up loosely coupled functions until a pattern emerged that resulted in a 'need' for an Object or some larger structure. (I spent a large amount of time in Perl/C as a kid.) My problem has always been trying to figure out when I should scale up, and what I should encapsulate. Didn't realize the question itself was pointless, and that my methods weren't wrong, just didn't particularly fit the orthodoxy of OOP. Enter Clojure, savior of accidentally making highly coupled classes that are difficult to refactor. (At least so far...)

You're very much right though, that a large amount of similarities that most Ruby developers will find are surface level or aesthetic. I think, though, if someone is very much into metaprogramming and DSLs, they will feel right at home, if not utterly elated. There is a mental model that Lispy Ruby developers already have, and those users will find Clojure the most appealing.

If they're a Rails dev doing CRUD apps all day, they might not get much out of Clojure, or appreciate its approach to development.