Slashdot Mirror


Three Books About the Ruby Programming Language

DJSpray writes "I've written a review of three books about the Ruby programming language, available on my weblog here. The three books are Yukihiro Matsumoto's Ruby in a Nutshell from O'Reilly, Hal Fulton's The Ruby Way (Sams), and Programming Ruby: The Pragmatic Programmer's Guide by Dave Thomas and Andrew Hunt (Addison-Wesley). Note that the third book is available online here for those who prefer that sort of thing. Executive summary: while I have found several of the other O'Reilly Nutshell series books to be excellent, this one is riddled with errors, confusing writing, and omissions, and does not live up to O'Reilly's usual standards. Fulton's book is filled with good cookbook examples and well-written explanatory material, as well as solid tutorial examples, but it is not structured as a reference. The Pragmatic Programmer's book works well as a reference and covers language features in increasing depth, but with fewer examples. Ruby beginners may find that the latter two books actually complement each other nicely, while I can't recommend this edition of the Nutshell book at all."

7 of 45 comments (clear)

  1. Ruby's biggest problem by metamatic · · Score: 2, Interesting

    I like what I've seen of Ruby. There's just one snag: no UNICODE support except via libraries.

    I already know Perl. I'd like to learn something cleaner, and Ruby looks like exactly what I'm looking for. However, I'm not prepared to put in effort learning yet another language that doesn't have native multilingual text support.

    Doing everything via library calls to get UNICODE support is an ugly hack... and like I say, I know Perl, so my ugly hack requirements are already adequately met.

    --
    GCHQ Quantum Insert installed. If only our tongues were made of glass, how much more careful we would be when we speak
  2. Re:What is Ruby? by bwt · · Score: 3, Informative

    Ruby is a competitor to both Python and Perl. In some sense, it is an attempt to combine the best features of each. My belief is that it succeeds well at this goal. It offers an even purer OO approach than python, while offering much of perl's strong syntactic sugar.

  3. Re:Ideal language by bwt · · Score: 4, Interesting

    Many people who might like ruby better are happy enough with perl and python. Perl has a much larger class library because it's the established player. Many people who were dissatisfied with perl's loosy-goosy style and OO approach probably already left and went to python.

    At some point many potential switchers say "OK, maybe ruby is slightly better at this and has this other advantage, but I can live without that slight advantage because I get a bigger community and class library to draw from by staying with [perl|python]"

    Personally, I don't find that argument persuasive because I think it's good to know more langagues and I give my first look to ruby and fall back to python or perl only if I need class libraries that I don't want to write myself.

  4. I own two by Fished · · Score: 3, Interesting
    I own Ruby in a Nutshell and Programming Ruby. For the most part, I agree with his assessment. Ruby in a Nutshell was originally published in Japanese only. My impression is that it was translated by someone with limited experience; everything is syntactically correct, but the writing style is wooden and it's just not a very interesting read.

    However, I think the Practical Programmers' book is much better than you give it credit for. It does a credible job of introducing an experienced programmer to the Ruby Language (although it's really not for those who are not familiar with an Object-Oriented Language). I have found that that is my standard Ruby resource.

    Incidentally, I only picked up Ruby a few months ago, and have found it to be a great language. Unfortunately, some of the support is not yet there. I've ended up doing my latest project in Java because I don't want to lock myself into a language that will not support high-end scalability features.

    --
    "He who would learn astronomy, and other recondite arts, let him go elsewhere. " -- John Calvin, commenting on Genesis 1
  5. Re:What is Ruby? by Dr.+Photo · · Score: 5, Informative

    I'd place ruby somewhere between "a cleaner python" (at least, in terms of design-- ruby learned the lessons of Python for free, that Python had to learn the hard way...) and "a saner Perl"... (of course, Perl's insanity is half the fun!)

    It's got all the LISPy goodness of Python (and supports true closures & continuations, which IIRC are only to be found in experimental implementations of Stackless Python), the regexpy powerfulness of Perl, and the dynamic-OO cleanness of Smalltalk.

    I find it really makes programming fun again, and it's very easy to write extensions for it in C (or C++, if that's your bag, baby)... in fact, using ruby as the "brains" behind a bunch of C modules gives you the silly-fast speed of C, while correcting C's worst deficiencies (you get free GC, safer string handling, namespaces, OO, etc.)

    Ruby's "chock-full of heady goodness", and definitely worth adding to your repertoire.

  6. Ruby Developer's Guide also good by bwt · · Score: 3, Informative


    A 4th book on Ruby that I kind of like is _Ruby Developer's Guide_ by Robert Feldt, Lyle Johnson, Michael Neumann (Editor), Lyle Johnson, Jonothon Ortiz.

    This has a series of chapters on more applied topics that would be good for the Slashdot programmer audience: DBI, XML, SOAP, Performace, Parsers, etc... The book is a little wordy, but the topics covered are very useful and it imparts a lot of useful information for people who don't want to relearn basic syntax.

  7. ruby is great by Anonymous Coward · · Score: 2, Informative
    I love Ruby. Unfortunately it still seems young and immature, in terms of libraries. There's nothing near the choice and quality that Perl has (for instance I was looking for a high-quality MIME library like MIME::Tools but there doesn't seem to be one for Ruby, just some very basic libraries that probably wouldn't be appropriate for high-volume mail processing).

    I use it for all my basic scripting needs though, and like I said, I really love it. It's OO makes a lot of sense, the block-passing stuff is awesome, and you can do perl-esque stuff like easy regular expressions.

    Basically I was looking for a good OO language, and although Python is okay, and I like the whitespace blocks, the language doesn't "feel" right to me. Also it seems to be changing every now and then so I'll probably wait until a few more evolutions before I look at it again.

    I have the O'reilly book and yes it does read like it was translated from Japanese but I haven't found any factual errors. I use it regularly for reference.. I don't think I'd avoid it like the reviewer does.

    The Pragmatic Programmer book is probably the best one, I have the paper copy and I'm currently trying to reformat the HTML version to fit on my Zaurus.. there is an XML version but it's really weird. For instance it uses

    between paragraphs rather than AROUND them.........

    Anyway if anybody out there is interested in a good OO language and is getting impatient waiting for Perl 6, check out Ruby.. I'd love for it to mature some more and move in from the fringes................