• lobsters__squarism@crustaceanson.theshelf.topM
    link
    fedilink
    arrow-up
    1
    ·
    edit-2
    13 days ago

    I see it more from Joe Armstrong’s three laws of programming design. The things you messed up, those things don’t change. Matz “isn’t a threading guy” so you get EM. Ruby 7.0 could be compile to binary, some very different concurrency model as 1st and only citizen, pure functions or whatever other characteristics that would be significant enough for comparison and uniqueness to other languages but it probably won’t be. Whatever the reason.

    Yes, Ruby has changed. I would say types most recently but I don’t know if it’s been successful. Has adding static types to Ruby been successful? Has it been complete? Is it an addon or type of thing like EM? I don’t know. “Oh, this repo is trying [ Reactor | type safety | pure functions ]” but it can’t commit to the paradigm because it’s like a soft-style inside of a language choice.

    I don’t mean the syntax sugar or small things. I mean concurrency, paradigm, memory model, packaging, runtime performance tier as compared with other languages. I don’t think Ruby itself has changed, I can’t think of any language that has “shipped” is constrained by legacy that has changed a paradigm category. I think this is what Joe meant, or it’s my interpretation.

    1. “What you get right, nobody mentions it.”
    2. “What you get wrong, people [complain] about.”
    3. “What is difficult to understand you have to explain to people over and over again.”

    And so, if things are changeable and you learned a lesson then the language could change. But it doesn’t because of backwards compatibility. But also, the language itself has made a choice. In the major categories of language differentiation, you’re in one camp. I’m trying to think of a language that has switched camps, the language itself. Not a library. This is my point. Making a library to switch camps is imo historically difficult because of what Joe said.


    score 1 · canonical

    • In the major categories of language differentiation, you’re in one camp. I’m trying to think of a language that has switched camps, the language itself. Not a library. This is my point. Making a library to switch camps is imo historically difficult because of what Joe said.

      I addressed this point in my original reply: Ruby is not fully in the OOP camp and never was. If you have that sense, it was because the OOP features previously got more emphasis than the functional ones. But Ruby began as a LISP VM, its functional bona fides are not new, and a greater emphasis on FP in Ruby is not “switching camps.” It’s a false binary.


      score 1 · canonical