Why's (Poignant) Guide to Ruby 60
Colonel Panic writes "Why the lucky stiff has written one of the most unusual (and poignant) books about programming that I've ever encountered. The best description for it so far (seen on comp.lang.ruby) is that it's sort of like 'The Little Prince meets SICP'. However, it defies all attempts at description (at least in this small space), you've got to read it for yourself. Like SICP, the full text is available for free. This one is destined to become a classic - it will likely be known to future generations of jobless American computer scientists as 'The Fox Book.'"
Don't read this comment! (Score:3, Funny)
I'm proud to say that I skipped it.
You can read this one: (Score:3, Funny)
Obligatory (Score:3, Funny)
Bad name (Score:1)
Baaaaad name. Decimals are not floats. Floats are binary, decimals are decimals.
How do you call decimal numbers (full presition) in that lang.? Currency? Digits? Anyone?
Re:Bad name (Score:2, Insightful)
Re:Bad name (Score:2, Insightful)
Re:Bad name (Score:3, Insightful)
Re:Bad name (Score:4, Insightful)
There's also a mailing list and a project site... (Score:5, Informative)
The list archives are here [rubyforge.org] and the project site is here [rubyforge.org].
I hate to say it, but I like it. (Score:4, Interesting)
Ruby seems like Perl, written to be a lot less obscure and much more object-oriented. Cool. And the style reminds me a bit of Mr Bunny's Guide to ActiveX. If you liked his book, you should read that too, whether you're interested in ActiveX or not.
But the non-existance of Chapter 4, just after the book started to get into the meat of things, was a bit of a non-starter.
I guess it will be ready for Slashdot in, well, six months.
Or twelve?
Or
I guess it's up to the LuckyStiff. Maybe he's doing luckier stuff nowadays.
D
Mr. Bunny (Score:3, Interesting)
It was... entertaining, from what I recall, but I wouldn't recommend it for learning Java (well, it's out of date now anyway). But the main problem was that the book often sacrificed precision and accuracy for humor, and would have led to some strange misconceptions about Java, for a beginner reading it.
This book looks interesting, though I only skimmed the beginning (gotta get back t
seems like an odd choice (Score:4, Insightful)
Yes, and that's what we have languages like Logo for. Or, if you want something readable and more adult, Smalltalk (and the Squeak.org environment). Python, of course, originally also was designed for education.
Ruby is a nice language, but I don't think it comes out of an educational background. It syntax is cleaner than Perl's but doesn't seem like it would be all that intuitive to non-computer users either (both Smalltalk and Logo seem better in that regard).
Altogether, Ruby just seems like an odd choice when it comes to really caring about teaching people to program. Not a bad choice, but not clearly better than the more obvious choices either.
Re:seems like an odd choice (Score:5, Interesting)
The one advantage that Ruby has over Smalltalk and Logo is that it's included with every copy of OS X. So is Perl, but please, please, please nobody teach children to program using Perl. It could doom us all!
Python is included with OS X as well, so that would be a fine alternative. Me, I like Ruby. Just because.
=Brian
Re:seems like an odd choice (Score:1)
That's even funnier than the emails I'm getting from the man who's giving me those creepy "i'm thinking about a man" smiles at work these days.
Re:seems like an odd choice (Score:4, Insightful)
I think Ruby would be a great teaching language, it's so darn simple, everything is an object, including classes, everything responds to methods, there is no distinction between methods and fields, debuggers and profilers can be written entirely in Ruby itself without external hooks, etc.
PS: Python was originally a "sysadmin language" for writing scripts clearer than Perl, at least that's what I thought Guido wrote once.
Re:seems like an odd choice (Score:2)
Don't get me wrong, Ruby is a nice language... But it really doesn't have anything on Smalltalk. And with Smalltalk being almost 20 years older than Ruby, I'd hope they would do more to it than adding regexps and giving it a slightly more Algolish syntax.
Re:seems like an odd choice (Score:2)
Again,
Re:seems like an odd choice (Score:2)
What is an FFI? Think of it as a C plug-in but without all the work. In Squeak, the FFI works on pretty much every platform Squeak does- Mac OS 9/X, Unix, Linux, Windows, RISC OS, and others. It allows you to specify the fun
Re:seems like an odd choice (Score:2)
Re:seems like an odd choice (Score:3, Insightful)
So, I take it that you really don't know Smalltalk or Ruby?
| a b c |
| a, b, c |
Smalltalk and Ruby for local variables... Etc.
Re:seems like an odd choice (Score:2)
Ruby likes to pretend it's some kind of Smalltalk successor. It isn't. Ruby is a Perl successor that borrowed a few tidbits from Smalltalk.
Re:seems like an odd choice (Score:3, Interesting)
A good observation. Ruby is definately not a Smalltalk successor, although it is a nicer language (on paper->in my head) than Python or Perl is, at least to me. But it has nothing to compell me from switching to it from Smalltalk. And when I want to do a task that Ruby would be a tiny bit better, I just use Perl anyway. More fun, somehow- at least to me.
Re:seems like an odd choice (Score:3, Insightful)
So, I take it that you really don't know Smalltalk?
Sure, defining local variables is similar. But there are plenty of other differences. That whole dot-operator is one among many.
I'm a Smalltalk coder who also knows Ruby. I continue to choose Smalltalk over Ruby for a number of reasons, including th
Re:seems like an odd choice (Score:2)
Re:seems like an odd choice (Score:1)
> comes out of an educational background. Its
> syntax is cleaner than Perl's but doesn't seem
> like it would be all that intuitive to
> non-computer users either (both Smalltalk and
> Logo seem better in that regard).
I don't know Logo, but I think non-programmers would find Ruby a lot more intuitive than Smalltalk. In Smalltalk, 2 + 3 * 4 is 20. In Ruby, it is 14, just as you'd expect it to be.
Python is a better choice choice for newbies, a
Classic, huh? (Score:3, Interesting)
OK, I'm definitely a curmudgeon. Still I think I'm right.
How right you are (Score:2, Informative)
A "classic", to me, is a book that puts the maximum amount of useful and usable knowledge in my head with the least amount of effort. This doesn't necessarily mean the shortest book. A "terse" book can take more time and effort to read than a longer book with better explanations.
But a book like this, with such a low useful_stuff/useless_fluff ratio, is not my idea of a classic.
Re:Classic, huh? (Score:4, Insightful)
This book could fit perfectly into that when it is done. Therefore I think I'll reserve judgement until later. Especially since Why's web site is the only geek site I've ever recommended to my non-geek friends just because it's so amusing and fun to read.
Re:Classic, huh? (Score:1)
Re:Classic, huh? (Score:2, Interesting)
Re:Classic, huh? (Score:1)
Re:Classic, huh? (Score:1)
Well, I honestly didn't think the parts of it I read were very good. Also I think that if you announce something publicly, you open it to criticism; if it's not in a state where you want criticism, don't publish it (I say this having done some amount of public writing and speaking). I found the prose long-winded, the presentation not amenable to experimentation or reference, the "pure fun" material purely distracting, and the self-aware st
Re:Classic, huh? (Score:1)
Hey sharpknife, Slashdot automatically inserts the domain of any URL to which one links. My friend's blog is hosted by Havard, her employer.
I make no attempt to hide the opinionated nature of my opinions. (I have assumed here that you misspelled "opinionated," although perhaps I lack the life experience to know as many words as you do.)
Nifty, but... (Score:5, Insightful)
Seriously, the author is biting a LOT off and while one chapter is a good start, it remains to be seen whether the author is biting off more then they can chew.
Truthfully, many programming languages are easy but even in this introduction there are signs that this isn't going to go down as well as the author would like, like the "symbols" discussion which I understood perfectly but is likely to make, say, my zoology-trained wife go "huh? so what are they good for? why not just use strings?"
You can also over-simplify Perl or Python this way too but when you start discussing @ISA or __metaclass__es, you're in trouble, and there is often just no way around those things, esp. if you're trying to read the code of others.
I am hopeful this will turn out well; it looks like a lot of fun and is full-unto-overflowing with personality, which can certainly reach out to a new audience. But it is also extremely ambitious and will be time consuming, so I must confess to a little bit of pessimism that that quality of output can be sustained all the way to the end of the book.
Oh, and entirely seperately, comparing a single chapter of an otherwise-unfinished book to the SICP disrespects the SICP. You do neither work a favor by comparing the two.
gaaaah! (Score:2, Insightful)
Otherwise, it's pretty good.
Architecture of Hofstadter ? (Score:3, Funny)
"I" think.the difference was that Hofstadter wanted to talk to "computers" as if they were "old_wizened_demigods,"
here "Why_The_Lucky_Stiff" wants to talk to the "computer" as if it were an "Enraptured_Infant" called "Ruby."
and "I" mean it in a good way.
.
A fun read (Score:2, Interesting)
Ruby needs more than this (Score:3, Informative)
When I moved from Perl to Python for big projects, it was pretty cool. I could read my code, and it was a lot more consistent because of the built-in object support. Python doesn't exactly register high on the "elegance" meter but it works.
Then I tried Ruby
But, Python has all the docs and libs. So at work I use Python. I enjoy the new features that are being bolted on here and there, but it's got all the signs of a language that peaked in popularity before the design was finished.
So I don't use Ruby for much except code generation and other little tasks. I want to though.. I'm waiting until somebody writes better libs and docs, or at least until I have the time to contribute.
So please, less pretentious web sites, more English documentation.
Re:Ruby needs more than this (Score:4, Informative)
Re:Ruby needs more than this (Score:2)
And not only OOP (OOP is not a universal need for programming and often OOP woks bad to reflect requirements), don't forget FP. In that case I would immidiately mention Lisp, Scheme, Erlang, Mozart, ML and Haskell. But if you insist on sticking to OOP forever, than it just reduces the list of FP languages to MOP/Lisp, Mozart, OCAML and OHaskell.
Any way, the list o
I like the style, but not the content (Score:1)
Eg: "a variable is like a nickname". Meh. A variable is a box. The name of the variable is the label on the box. The value of the variable is the contents of the box.
Or again: the author says words starting with a colon are "lightweight strings". And then fails to say what a string is, or how much it weighs. I bet your average punter believes a string is a length of twisted fibre.
Having said that,
Re:I like the style, but not the content (Score:5, Informative)
Wrong. In C/C++ a variable is a box. In Ruby (as in Python and many other dynamic languages) a variable has reference symantics, making the "nickname" metaphore reasonably apt.
Two Words. (Score:2, Insightful)
Bacon.
I like the comics, they are sometimes funny and make concepts easy to remember. They may be silly, but people will remember them because of that. Hopefully, they will remember the concepts too.
Recommendation: do not skip ahead for 'the meat' (Score:3, Insightful)
Normally, very little is lost by skipping ahead in a technical book. You're in a rush, and you just want to know how the new language maps into other languages you know. It is probably a mistake to read in this skip-ahead way, but in many cases the writing is so unengaging that we cannot stomach reading it all.
Well, the defining characteristic of this "book" is that some readers will find it enormously engaging, so much so that they will read all the words, starting at the start. This is quite an accomplishment for the writer, and it might be very beneficial for readers who enjoy the style, since Ruby is probably not best learned by analogy to the other popular languages.
The book is aimed at newbies, but experts might also find it amusing or perhaps even insightful.