Article Discussion
The Philosophy of Ruby
Summary: Yukihiro Matsumoto, the creator of the Ruby programming language, talks with Bill Venners about Ruby's design philosophy, including design imperfection, the danger of orthogonality, and the importance of the human in computer endeavors.
6 posts.
The ability to add new comments in this discussion is temporarily disabled.
Most recent reply: October 8, 2003 3:48 AM by rasputin
    Bill
     
    Posts: 409 / Nickname: bv / Registered: January 17, 2002 4:28 PM
    The Philosophy of Ruby
    September 28, 2003 11:10 PM      
    Yukihiro Matsumoto says, "I want to make Ruby users free. I want to give them the freedom to choose. People are different. People choose different criteria. But if there is a better way among many alternatives, I want to encourage that way by making it comfortable."

    Read this Artima.com interview with Ruby creator Yukihiro Matsumoto:

    The Philosophy of Ruby

    http://www.artima.com/intv/ruby.html

    What do you think of Matz's comments?
    • Adrian
       
      Posts: 1 / Nickname: ajh / Registered: May 22, 2003 1:08 AM
      Re: The Philosophy of Ruby
      October 1, 2003 11:56 AM      
      Ruby has been my learn-a-language-a-year language this year and it's great fun. Almost all the good things from Perl wrapped up in a nice neat OO package.

      If it wasn't for CPAN I'd probably move to Ruby for all my Perlish things.
    • David
       
      Posts: 1 / Nickname: dgaramond / Registered: September 29, 2003 9:32 AM
      The state of the implementation
      September 29, 2003 1:42 PM      
      Basically I agree with many (if not all) of Matz's view of programming and the design decisions he made in Ruby. Programming in Ruby is so much fun for me than having to code in Python or Java. Ruby is a very nice mixture of Perl practicalities and succintness, nice and clean syntax, and OO power.

      I'm mostly interested in Matz' view of the current state of the implementation. Ruby is over 10 years old, very popular in Japan, gaining popularity in other parts of the world, have thousands of users and hundreds of hackers. However, the implementation (Ruby has only 1 currently, written in C) is pretty weak. It's slow, does not support native threads, does not do JIT compilation (not even bytecode), needs a better GC, etc. It is especially so if we compare it with Java and Smalltalk, who have gotten real good implementations (JIT compilers, fast GC, threads, etc) nowadays.

      What does Matz think about this? Is he still more prioritized in tweaking Ruby's language itself, or have begun to work on the issues of the implementation?

      It's a little shame that the Ruby implementation is not really 'there' yet.
      • James
         
        Posts: 2 / Nickname: jamesbritt / Registered: April 14, 2003 2:36 AM
        Re: The state of the implementation
        October 1, 2003 2:36 PM      
        While there are some truths to your concerns over the Ruby interpreter (and, to the best of my knowldege, they are being addressed), in my actual use these just aren't issues. I'll grant you that I would not use Ruby for every single programming project, but that's also true of C, Java, or any other development tool.

        If speed is critical it is simple enough to code up the bottlenecks in C and call them from Ruby. It's not an either/or choce. The ease of development and programmer-friendly mindset Ruby offers is what make it a compelling choice for most cases.
    • John
       
      Posts: 1 / Nickname: jstoner / Registered: May 14, 2003 7:29 AM
      Re: The Philosophy of Ruby
      October 2, 2003 11:39 AM      
      I think he muddied the issue of orthogonality in this interview. Orthogonality is generally a good thing, but something to be cautious with.

      An example of good orthogonality is default parameters and typed parameters. Both are good, both can be used at the same time, because they don't step on each other's conceptual space.

      Said better: orthogonal syntax for orthogonal language features. The example he gave was a pointed counterexample of that principle. "default parameter values for functions and overloading of function names based on parameters" are two ways to do very close things (almost the same), so of course using them in the same function would be confusing.
    • Qwerty
       
      Posts: 1 / Nickname: qwerty / Registered: November 6, 2002 2:07 AM
      Re: The Philosophy of Ruby
      October 7, 2003 10:05 AM      
      I always hear how ruby is great because it combines the best of perl with OO, and i also agree. what happens when perl6 comes out? i can say 100% that i won't be using ruby or python for much, if anything. Hopefully i can even use perl6 to totally replace java whenever possible.

      has anyone thought of the python and ruby perl6 dilemma coming up? i'd really like to know what other programmers thoughts are on this, i think for recreation use python and ruby will wtill be there, ut other than that, for real world use, i think perl6 will wind up eventually replacing ruby or python anywhere it's used, it just has to strong of a user base for a company to go with anything else.

      i know a lot of perl programmers who have migrated to python and ruby, and i also know they'll ditch python and ruby altogether once perl6 is out.

      i think python had a true shot but the community never focused on modules and a module depot like it should have .That module repository python.org now links to is truley pathetic all on it's own, not even comparing it to cpan.
      • rasputin
         
        Posts: 1 / Nickname: rasputin / Registered: October 7, 2003 11:36 PM
        Re: The Philosophy of Ruby
        October 8, 2003 3:48 AM      
        I'd turn that around and point out that perl6 is going to be such a different beast anyway that you might as well learn a new language.

        Ruby is *very* close to Perl anyway, the OOP model just isn't an abomination like Perls. It's built in but doesnt get in the way if you want a quick one-liner.

        And there's no 'scaffolding' required to use things e.g. iterators, as Java needs. This means 20 line scripts are 'OOPable' and you spend time writing code instead of doing little dances to keep the compiler happy...