Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Fair enough. But if you want to start citing examples, I could say the same about Clojure. As far as I know, without JVM changes there's no way in Clojure to implement conditions and restarts in a way that allows you to handle thrown exceptions from code that doesn't know about conditions. OTOH this is just a library in Ruby. https://github.com/quix/cond

I don't want to get academic/knit-picky. I guess my point is even though living on the JVM definitely has some big advantages, it also has some drawbacks.

I'm not trying to knock Clojure. I think it's great. But this thread is about why you're not using it. So I'm just speaking to that.

[Edited to talk less about Ruby and more about Clojure.]



Cond looks a lot like the Clojure error-kit library:

    (deferror divide-by-zero
      {:msg "Division by zero})

    (defn divide [x y]
      (if (zero? y)
        (raise divide-by-zero)
        (/ x y)))

    (with-handler
      (divide 10 2)
      (divide 18 3)
      (divide 4 0)
      (divide 7 0)
      (handle divide-by-zero
        (continue-with 42)))
Admittedly this doesn't violate your general point; there are things like continuations that are hard to do with Clojure due to limitations the JVM. However, I tend to find there aren't many things Clojure can't do, and in general it seems more flexible and better designed than Ruby.


Uh, the same way that Ruby can't really help with C errors and C can't deal w/ Ruby errors, right?




Consider applying for YC's Fall 2025 batch! Applications are open till Aug 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: