Ruby Developer's Guide
The writers of the book are very enthusiastic about both Ruby and the Ruby Application Archive (RAA), Ruby's response to CPAN. Overall, the text does a very good job demonstrating the base knowledge necessary for each of the libraries introduced and so can be quite useful to any developer with an understanding of core Ruby programming.
Directed towards programmers with a working knowledge of Ruby, the text is a quick read even with working through the examples. It effortlessly introduces the basic concepts of each package worked through and then gives locations where more in-depth information can be gathered. If you wish to work through any of the topics covered without digging through documentation just to obtain a basic grasp of the package, then this book is for you.
The book itself is a Syngress publication, and comes with a "1 year upgrade buyer protection plan" which seems to mean they have an errata page for the book and an "Ask the Author" section on the books website, along with a couple of other features mostly involving email. Looking at the errata page, it seems to be useful and up to date. The "Ask the Author" section also seemed to be fairly well-used by prior customers. Syngress seems to be serious about keeping customers up to date about the state of the book and providing services beyond that.
As for the book's problems, none of which are horrible, but do get old after a while: First, the book is big, and not completely because of content. The examples in the book span pages, and the text used in the source is a larger font that in the rest of the text. The examples also are full applications within themselves, instead of being presented in chunks and then having the full source available online. Another annoyance is each time the book mentions installing a package or library it goes through the whole "$./configure.rb; make; make install" process. The book also appears to have some organization issues, with notes for the text in the table of contents, which just served to irritate me. The final negative thing I noticed was that, though the text assumes programming knowledge of Ruby, the first chapter is dedicated to walking the reader through downloading and installing Ruby. The chapter is a big one too. So the book has a couple of hitches, mostly related to layout or mixed expectations towards the ability of the reader.
If you can deal with these small issues and are interested in the material covered, I can definitely recommend the Ruby Developer's Guide. The content is definitely there and they authors know their stuff.
Chapter List:
- Booting Ruby Discusses downloading and installing Ruby, IDE and editor support for Ruby and syntax stylings.
- GUI Toolkits for Ruby Covers use of Tk, GTK+, FOX and SWin GUI toolkits with a brush through on others available.
- Accessing Databases with Ruby Introduces the Ruby/DBI, Ruby/ODBC, Ruby/LDAp and Ruby DBM-file drivers.
- XML and Ruby Talks about the use of XML, including a basic introduction to it and then goes into parsing and creating XML using libraries from the RAA.
- Web Services and Distributed Ruby Goes into the libraries used for RPC's, SOAP and running distributed services with Ruby.
- WWW and Networking with Ruby Implements a server using high-level and low-level Ruby networking classes, then goes into using Ruby for the web, finishing up with a discussion of mod_ruby and eruby.
- Miscellaneous Libraries and Tools This chapter finishes the discussion centered around the RAA, going into graphics programming, data structures, genetic algorithms and other topics that didn't fit into a chapter of their own.
- Profiling and Performance Tuning Introduces the aspect of analyzing algorithms in Ruby, profiling your programs and discusses the advantages of similar Ruby constructs depending on what your focus is, with the intent of getting lean, mean programs.
- Parse Generators Discusses using Ruby instead of Bison or Yacc for creating a parser, and then goes into the advantages of various Ruby libraries to each other.
- Extending and Embedding Ruby Covers writing extensions to Ruby in C and C++ and later embedding Ruby into programs.
You can purchase the Ruby Developer's Guide from bn.com. Want to see your own review here? Just read the book review guidelines, then use Slashdot's handy submission form.
Lanugage homepage is http://www.ruby-lang.org/en/.
. ht ml
:).
Theres a intresting presentation of it, comparing to some other languages here:
http://www.io.com/~jimm/downloads/rubytalk/talk
Looks like the language uses lots of sort cuts, might give it a try sometime
You can find out here: http://www.ruby.ch/en/rubywhat.shtml
42
is a programming language. It is beginning to catch on in the EN world, but has been going strong in JP for some time now.
For those who have no idea what Ruby is (the review wasn't clear), check out
http://www.rubycentral.com/
and
http://www.ruby-lang.org/en/index.html
Cynicism, like dogmatism, can be an excuse for intellectual laziness. - Susan Shirk
(arms flamethrower)
Ohhhh... he said "RAA"... never mind.
Monday is a horrible way to spend 1/7 of your life.
I use Ruby and love it.
. html.
No documentation? The entire Programming Ruby: The Pragmatic Programmer's Guide book is online for free at http://www.rubycentral.com/book/index.html. The book (in HTML Help format) also comes with the Windows install package at http://www.rubycentral.com/downloads/ruby-install
Cynicism, like dogmatism, can be an excuse for intellectual laziness. - Susan Shirk
Documentation: the book (Ruby's answer to the Camel) is available online. That's all the documentation you need. It's all there.
No Documentation? You can download the entire text of Programming Ruby for crying out loud -- what more do you want? You just don't get this amount of free documentation in the Perl or Python worlds. Additionally, the Developer's guide is at least the fourth dead-tree Ruby book published, so it is clear that *somebody* is buying them. As for buggy bindings, I haven't noticed that Ruby bindings are any more buggy than those of other languages.
You can find some code examples of the Ruby language (as well as several other languages) here.
As with the sun's light
My mom was magnificent
Unquestionable
No documentation? Like Programming Ruby and the Library Reference? People are even working on a javadoc-like documentation system called RDOC. There are lots of documentation and books out there: you just have to read them!
"Ruby is a refuge for Perl-morons who finally realize that the hideous hairball a dead-end, but whose ego refuses them to submit to Python."
Although I am a Java developer, I use alot of Ruby.
See "The Pragmatic Programmer", page 103, tip# 29: "Write Code That Writes Code"
(Ruby code that writes Java code).
-... ---
WRT to your 'maybe if it had gotten out there before python' comment: explain, then, why it is MORE popular than Python in Japan, in spite of having come out later. I think the acceptance issues have been driven more by the fact that much of the work has been done in Japan (and, hence, much of the documentation is in Japanese).
/me swivels in chair and looks at shelf behind
As for 'Like no documention': Like, dude, I've got Like 4 books on the shell behind me about, Like, Ruby.
As for wrong bindings. You have actually written the authors about these, right? So far I've found Ruby module authors to be just as pleasant and helpful has their Perl and Python counterparts, in spite of my complete lack of Japanese language skills and their oft admitted poor English skills.
I would argue that Ruby is benefitting from maturing after Python, like all languages should. Matz is learning what to include and what to avoid in his language design.
Finally... you can't seriously expect us to take the "this software has bugs, so we can't use it" argument, do you? All software has bugs. All languages have warts in their design and bugs in their implementation.
The Norton Anthology of English Literature, 4th Ed., Vol 2
Programming Ruby by David Thomas and Andre Hunt is available online and for free at www.rubycentral.com/book/
Skip
--------------------
"To create an apple pie from scratch,
you first must create the universe."
And some in german:
-larsch
http://freak.aagh.net/ruby/intro/
It's only a first draft, but it should give a reasonable overview to the curious.
Python currently has better database connections, and it's currently easier to distribute Python for computers that don't already have Python installed than it is to distribute Ruby to computers that don't have Ruby installed.
... and that by the time I hit it I may have several thousand lines of code to re-write. I don't know of any proof, and anyway proofs tend to deal with possibility rather than practicality. (E.g., one could use the method of Goedels proof to create an essentially unbreakable cypher. The problem is that it would take an truly unreasonable amount of time to both create the message and to decode it. So it's totally useless.)
Also, there is a bit of a disagreement about the GUI interface to use with Ruby. Fox is preferred on Windows machines, but it often causes library conflicts if you attempt to install it on Linux machines.
These are "growing pains", but for the moment Python is significantly more useable for many purposes. (OTOH, if I'm only using it on my own machine, or I only intend to distribute it to other programmers, and if GUI doesn't need to port to a system that can't handle gtk properly (e.g., Win95), then I prefer Ruby.)
OTOH, I'm still not totally convinced that importable modules can actually replace multiple inheritence. So far I haven't run into any show stoppers, but I keep having the nagging feeling that one is lurking somewhere in the future
I think we've pushed this "anyone can grow up to be president" thing too far.
I haven't been a fan of dynamically typed languages like ruby until about 5 months ago, but the combination of
* a terse syntax
* True object orientation
* dynamic typing
* and *unit tests*
is a winning combination. The first three allows you to write well-factored, compact and flexible code. With a comprehensive test suite you have much more confidence in your code than you get from static typing, so it effectively voids that issue.
Another thing I really like about Ruby is that you can reopen classes. This means that you can add features to existing classes, if that is where they really belong. When you do that every object of that type automagically gets the new features. Along with the fact that a lot of built-in features in ruby are methods, and the fact that you can rename and redefine existing methods means that ruby itself can be extended in very interesting ways! E.g, lets say you want to load ruby modules from zip files! Simple, just redefine Kernel.require to access zip files as well as directories.
Most of all, though, I just like the ease of expression you get with ruby.
Actually, the entire content of the post is one question and two outright falsehoods.
:)
:)
Check out the ruby-lang pages list of docs there's a lot of good stuff there.
I own Programming Ruby - The Pragmatic Programmer's Guide (available in full online) known as 'The Pickaxe Book' (ie the Ruby Camel) and Ruby in a Nutshell from OReilly by the language designer Yukihiro Matsumoto (known as matz on the mailing list). Hail matz!
Then there's a personal favorite dead tree of mine The Ruby Way by Hal Fulton. I haven't finished it yet but it's full of crunchy goodness.
Between, those books and the wealth of tutorials and docs linked from www.ruby-lang.org/en there's a lot more material available than there was for Python when I started using it.
And the fact that these books keep selling and getting published implies to me that people are using Ruby.
When in doubt check the Ruby Book list at www.rubygarden.org to see whats out now and whats in the pipe.
As far as the bindings being buggy - I've only played with a few but they seem as good as I recall pythons bindings from when I used python. (admittedly that was a while ago)
C'mon give Ruby a try - I've found it a delight to play with. You might like it - and if not -well, learning why you dislike it is a valuable type of learning as well
I suggest the Pickaxe book (you'll eventually want to buy a hardcopy) and if you don't want to download the interpreter right now - well hold onto your hats. A clever fellow named Clemens Wyss has an 'interactive' version of the Pickaxe with all the code examples live in your browser so you can play with the code a lil. Find it here
In closing:
RubyCentral
RubyGarden
Ruby-Lang
Ruby-Talk Mailinglist
or check out the newsgroup at comp.lang.ruby
Kevin
--
'Just another Ruby Miner'
The problem of support is, of course, a real one in many applications. The fallacy of the "who cares?" argument here is that the same argument could probably have been used against every programming language since the first assembler was written. Not every new language "makes it" by a long shot, but not every well-supported language lives forever, either. Python was barely on people's radar for the very longest time; it has succeeded because enough people were convinced it had advantages that outweighed a temporary (or possibly even permanent) disadvantage in publicity, support, or whatever reason-to-fail you might give.
Well, you can be proud of your heritage without repeating the sins of your parents. :-) As far
as I can tell (I've programmed in Perl since 1991
and in Ruby for a few months), Ruby retains much
of Perl's flexibility while hugely reducing
the amount of (non-regexp) "line noise" feel that
even I think Perl sometimes has, and dramatically reducing the number of oddball special cases. I
know you could say the same thing about Python,
but I never really "got into" Python, for whatever
reason. Like it or not, I think we all realize
that tastes vary somewhat in these things.
Babar
I personally found Perl so arcane that the half-life of code was short (after a time it degenerates into an unreadable state even when commented well as one moves on to other projects). But it has one advantage over Python: momentum. CPAN is several orders of magnitude a grater body of useful libraries and modules than anything Python has. The Vaults of Parnassus dim in comparison. Does Ruby have more promise than Python. To the casual observer, it seems even more sketchy that Python. And, honestly, Jython is a great to use: the power of Swing and jarred Java code with the ease of a scripting language. Maybe Jython is why the Vaults are lying fallow: Java code can be jarred and used in Jython. Comments anyone?
And don't forget that Syngress typically offers a sample chapter for each book:
p le.htm
http://www.syngress.com/book_catalog/183_Ruby/sam
If you want to see what the book is like.
(Note: I write books for Syngress, though I have no financial interest in this one. Consider this a plug if you like.)
Looked into it briefly on a couple of occasions.
I'm not so much interested in having Ruby and Java work together in any sense.
I'm just using Ruby as one of my tools to write Java.
-... ---
I wish more programming books had these kinds of problems.
Ergonomica Auctorita Illico!
I don't know that it offers a value proposition enough to knock off perl's "good enough" (CPAN still has tons and tons more libs, dbish with DBD::ODBC is just the neatest thing in the world for a db developer), and the syntax certainly won't really sway the python crowd. I mean it's a good language, but I can't get mod_ruby binaries, last I looked couldn't get mod_ruby at all for win32 (yes, I use apache on win32, it's all about what I can fit on my laptop, and vmware causes too much thrashing on this pitiful thing).
Lack of a CPAN type tool is *still* the reason I haven't mainly switched to python BTW. Download sites like VoP aren't even in the same category.
I've finally had it: until slashdot gets article moderation, I am not coming back.