February 01, 2006

What all programming manuals should be like. A beginner's guide to Ruby, the shiny (and trendy) new scripting language fresh off the boat from Japan. Written by someone who's obviously a little high, which of course means the manual is not boring. He also coded this nifty interactive Ruby tutorial.

Also by this author: So You Want To Shoot A Giraffe In The Forehead.

  • Today I was at this Italian restaraunt, Granado’s, and I was paying my bill. Happened to notice (under glass) a bottle of balsamic vinegar going for $150. Fairly small. I could conceal it in my palm. Aged twenty-two years. I’ve spent a lot of time thinking about that bottle. It is often an accessory in some of these obsessive fantasies. In one fantasy, I walk into the restaraunt, toss a stack of greenery on the counter and earnestly say to the cashier, “Quick! I have an important salad to make!” Genius.
  • I thought it was amusing, but not really very good at teaching Ruby programming as it spends so much time trying to be amusing. And it wasn't finished. Looks like it still isn't.
  • Good to see Rory Hayes becoming more influential.
  • I just did the entire tutorial! I am particularly excited about Ruby because I am a front-end webdev but I have always had the hardest time with from-scratch javascript. Ruby seems like it might be friendlier. thanks so much for the super handy post, not to mention the links to the nutty cat cartoons (at least I think they are cats...)
  • Browser's don't do Ruby, servers do. So I'm not sure how that really helps you as a "front-end webdev", Medusa. I found the Poignant book entertaining, but really not an effective teacher. See also: A Poignant book - tenderly written, The ascendancy of Ruby, and Now THIS is a shopping cart.
  • well sometimes I have to play with the back end (but I dont really know how)...heehee that sounds dirty, doesn't it?
  • I miss The FORTRAN Coloring Book (the author talks a little about it here). From 1978, but still the best way to meet FORTRAN for the first time.
  • I am intimidated by programming language manuals. I hate to admit that; there should be some kind of support group. But I can't program for beans. This is very bad, because my job involves having to do a lot of simple programming tasks at which I totally and uttely fail every time, and also because all my friends are programmers and once a programmer kicked sand in my face at the beach, and I feel like a digital wimp. I don't think it's because I'm dumb, or impatiant. I've honestly spent meny hours bashing my head against the metaphorical wall. Rather, I think it's just that I don't think the way that people who write programming manuals think. They think, they've been trained to think, like programs, and they explain entire languages like they would a short equation: "My language contains elements a b and c where: a has the properties xyz; b has the properties qwe and; c has the properties iop." ... only with many more elements, and instead of the properties of each element being in a single line, it's an entire chapter called "functional whend doolips" which starts "Functional whend doolips are implimented in rAndomLetter according to an 'if then notif by not, double-not' scheme." The point is that to understand the language, they want you to read the entire manual and hold it all in your head at once and only when the last essential element falls into place will the whole make sense. It's like a John le Carre novel written on powerpoint slides. So maybe I want something like this: something that's fun to read and makes me want to learn the language and most importantly lays out the information in a way that a humanities educated person like myself can make sense of it. I need a crutch to get over the hump where the actual reference manual will make sense. I haven't read the whole thing yet, so maybe it won't live up to advance billing, but I'm hopeful that this is the kind of thing I can find useful.
  • Dreadnought, I began learning Python using the Python Callenge and Google. I found the challenge addictive enough to make me want to figure out how to do each level, then used the solutions to see the "right" way of doing them. Most fun I've had learning a language. (And just quietly, Python will get you way more chicks (and/or guys) than Ruby.)
  • (And just quietly, Python will get you way more chicks (and/or guys) than Ruby.) Crikey!
  • Python will get you way more chicks Python is one of the least sexiest languages, because you have to shoehorn your expressiveness into the mandatory rigid control of whitespace. It's like a language written for beaurocrats.
  • Ugh I loathe working with Python.
  • Really? Actually, I was mostly joking. I didn't like Python back in the 1.5 days when I learned it, it had too many things broken in it (scoping, closures, speed, iteration...), but they've fixed almost all that, and added some nice new features since 2.0. It's just as good as Perl or Ruby these days. Just not as sexy (i.o.w. expressive). :)
  • Well I have no idea of the version I was working with but it drove me nuts. Although to be fair it could have been that I was working with it in Zope, which I found to be very restrictive. And everytime there was an upgrade things broke left, right and centre. I'm not especially in love with php either - but I feel more comfy working in it. At least it covers a wider range of situations I'm likely to come across it in.
  • So maybe I want something like this: something that's fun to read and makes me want to learn the language and most importantly lays out the information in a way that a humanities educated person like myself can make sense of it. I need a crutch to get over the hump where the actual reference manual will make sense. I think this is the point. Those who didn't find the manual that helpful are, I'm guessing, already at least familiar with the basics of coding. Looked at through the eyes of someone who's never coded before and doesn't have an automatic facility for this kind of thing, I think this manual does a great job (granted, of course, that he hasn't finished it yet). The slow pace, the frequent interruptions with humor, the random sidebars -- all this takes the intimidation factor down significantly and helps the reader to get acclimated. Not to mention that, as Dreadnought points out, a hell of a lot of programmers are ill-equipped for writing about what they do in plain English for the non-techie. This guy's good about drawing real-world analogies to define concepts like hashes and methods and introduce the OO model to the uninitiated.
  • (And just quietly, Python will get you way more chicks (and/or guys) than Ruby.) Indeed- a Python programmer has snagged this chick! :-) A Monkey-made Python tutorial can be found here.
  • I also like that he calls me "Smotchkiss," and I would like you all to follow suit.
  • There's also Dive Into Python and the Python Cookbook.
  • Here's one thing I'm not clear on: do you have to have special Rails-compatible hosting for RoR-built sites?
  • Yes, Smotchkiss. Metafilter is not answering the phone at the moment, but when it is back you may want to check this AskMe thread.
  • I should also mention that I think paying for hosting is a complete waste of money if all you want is a development environment to learn/play around with. You can do that on your local machine. For example, if you are a OS X (Tiger) user, see: HowtoInstallOnOSXTiger.
  • *hugs mecurious*
  • As a work of humour I love that book/site. As a tutorial for a programming language I found it absolutely terrible. Also, if you think that Python is not as "powerful" or expressive as Perl, then it's obvious you haven't mastered the [expr for var in sequence] syntax, and the filter and map functions. Ruby programmers emphasize functional style code more that Python programmers but with a bit of skill a Python program can be just as expressive and terse as Ruby. IMHO.
  • Monkeyfilter: That crazy dog must have looked like a party with legs. Lovin' it.
  • *notices 'h' and 'n' keys on keyboard have been mysteriously switched*
  • I've just finished working on a project using RoR, in my first use of Ruby at all, and I actually read this book before I started. It's rather good. I'm a Perl guy usually, but I'm pretty smitten with Ruby: it's hard to say what it is, but just that every time I guessed at how to do something, it turned out to be exactly how its done in Ruby. I got so much done just by asking myself, "ok, if I was the most elegant scripting language in the world, how would I express that?" and typing it in. It always worked.
  • Those newbies interested in Python might check A Byte of Python. "This book will help you to learn the Python programming language, even if all you know about computers is how to save text files." (Download the book)
  • Why Python? (Not Monty)
  • through