I have high expectations for David Black’s forthcoming book. I’d be
hard pressed to name another person I’d like to see a Ruby book from.
The book is called “Ruby for Rails” and the subtitle is “The Ruby you
need to master Rails”. David Black is a great candidate to write that
Advanced Ruby book I wish existed, but I don’t think it’s this one. I
hope I’m wrong though.
Hmmm… that subtitle is actually a bit off: it’s “Ruby techniques for
Rails developers” (as per the cover), though I see that it’s listed
the way you’ve got it on at least one website. I’ll put the official
version in my sig
In any case, the book is basically written for the “coming to Ruby
through Rails” constituency, broadly speaking. It covers some (not
all) of the topics that are coming up on people’s table of contents
ideas for advanced Ruby. I think that’s partly because of my belief
that some in things in Ruby, while certainly in a sense advanced, are
more accessible and learnable than their reputations sometimes
suggest. So, while working from the basics, I don’t hesitate to aim
fairly high.
I have high expectations for David Black’s forthcoming book. I’d be
hard pressed to name another person I’d like to see a Ruby book from.
The book is called “Ruby for Rails” and the subtitle is “The Ruby you
need to master Rails”. David Black is a great candidate to write that
Advanced Ruby book I wish existed, but I don’t think it’s this one. I
hope I’m wrong though.
+1. I’d also be much more interested in pure, advanced Ruby rather than
specifics of this or that library.
I answered Phil in email, but I’ll answer briefly here also.
What you say is compelling, but the fundamental style of the book
isn’t going to change that much. There will be some coverage of
advanced techniques (as well as elementary techniques).
There will definitely be material added in the “more advanced”
sections. Some material will be deleted, but mostly because it is
boring, not because it is too elementary.
Coverage of specific libraries will be incomplete, and will occupy
the minority of the book. But this material will still be there.
Sorry if this disappoints. It’s a design decision.
That’s one reason I want assistance in prioritizing things. In addition,
some of these I know little about, and will have to learn within the
next ninety days or so, or just skip them.
Can you use the community? Together we know a fair amount.
That’s an understatement.
I’m using the community already. I knew that the announcement itself
would be followed by opinions expressed.
And I’ll have questions as I go along. Believe me.
My experience is:
Study, and you think you know something.
Study harder, and you think are good at it.
Use your knowledge, and you learn even more.
Teach it, and you will learn still more.
Write a book, and you will realize how little
you really know.
“100 pages deleted”: does this mean Rb vs. perl/python sections are
expendable? I can understand, these entail a lot of research, &
recently there’s been an explosion of R vs. p/p/java/smalltalk/lisp
blogs which can be collected on ‘Ruby eye for python guy’ or some
wiki.
Probably so. Those were longer than I intended in the first place.
To rewrite them would require time and effort (and help, since my
Perl is weak and my Python weaker).
The part of Way r.1 that’s most valuable to me today is the “Things to
remember” list on pages 45+
I’m glad it was useful, but I dread having to update it.
I’m anxious to see the 100 pages you plan on deleting. Always good to know
the things to unlearn too.
There’s not terribly much to unlearn. Some things that I showed how
to
do are now part of the core (such as hyperbolic trig, base conversions,
etc.).
Other things are just silly or irrelevant. Sometimes there is now a
“better
way” to do things.
To find all the changes, you’d need the old TOC, the new TOC, and a long
rainy Saturday.
… Please be sure to provide it in PDF form… That’s how I have my
current edition and I really appreciate it.
Make that a Pickaxe-2-style-beta-book and I’m signing up right away
Well, my publisher is not as cool as Dave. There won’t be a
beta program as such, and the only way you’ll get a PDF (that I
know of) is through something like Safari.
There’s more to a book than a list of topics. What about depth,
starting point, assumptions of reader ability, reference vs
learning model (see Kathy Sierra’s blog), inclusion of
tutorials, examples, exercises…
If you’re familiar with the first edition, the basic style and
philosophy will not change.
So, do you think you got it right? No use going by the feedback
here, limited range of opinion…
–
Chris G.
Bug? That’s not a bug, that’s a feature. -T. John Wendel
A guide to libraries would be handy, but indeed many are ephemeral or in
flux, and learning a set of distinct APIs for one thing or another is no
substitute for a proper understanding of Ruby itself.
It’s the difference between being a [application|library] scripter and a
Ruby programmer.
I would say the best approach would be to introduce ruby idioms
using existing libraries as code examples. This would likely
contrast nicely with readers’ previous experience.
But Hal knows best, so we shall see what he comes up with
But Hal knows best, so we shall see what he comes up with
Haha… thanks for the vote of confidence, but I don’t necessarily
know best in this case. I only make informed decisions based on
my own opinions, and keep my fingers crossed…
If you’re familiar with the first edition, the basic style and
philosophy will not change.
So, do you think you got it right? No use going by the feedback
here, limited range of opinion…
It’s a matter of opinion. I mostly achieved my objective, and I
stayed within the parameters I set for the project.
But the ultimate test of whether I got it right is whether people
like the result. And I think that will always be mixed. A book is
a tool, and different people are looking for different tools.
Shifting the focus of the thread a little bit, but what would your
idea table of contents look like in an Advanced Ruby book?
Off the top of my head randomly ordered:
Variable Scope
Regular Expressions
Unit Testing
Integration Testing
User Interface testing (Web, GUI)
{
Module
Class
} Probably rolled together =>
OO design practices in Ruby (Design pattern ‘thumbnails’, etc)
Metaprogramming
Domain Specific Languages
* including Parsers, XML, YAML, etc
Functional, logic, and Aspect oriented programming in Ruby
Continuations
* including Continuation Passing style
Threads and Processes
* Can you pass some of the work to Unix (an OS really geared up
for threads and procs)? And what to do if you are on VMS,
Windows, or others.
Extensions
Embedding Ruby
Security, $SAFE in depth, [cryptography, hashing].intro
Performance, benchmarking, profiling, and data structure
selection advice
Ruby as a tool to aid ruby development:
Project automation, version control, ruby within and
around your favourite editor, documentation (RD, RDoc,
PDFs, and LaTeX) tools, and what scripting
might help in the developent process.
Packaged as an electronic book because the paper version would
be too big!
Hal, we meet last year at RubyConf 2004. You signed my copy of the
Ruby Way book and we talked about Tycho and delicious amongst other
things.
Just wondering what it would take to get the jEdit Ruby Editor Plugin
into your keyword tagsoup? It’s currently number one for the search
“ruby editor”.
I don’t think the publisher has any plan of such. In fact,
they might hate the very idea. But I will mention it.
I’m sure you know all of this, but just the same…
You should point them to the success of AWDWROR [1]. It certainly is
a new/controversial idea, but it seems to be win/win.
Publishers:
They get cash in early, followed by errata submissions before going to
press, so they’re final product has a higher quality. They also get
to market a product at 3 levels, the PDF buyer who can’t afford the
book, the average book buyer, and those of us who want both.
Readers:
They get a chance to read it before it goes to press (and many of them
can’t afford to wait). When they finally get their print copy, it’s
far more likely to be error free. On top of that, they get the same
buying options mentioned above – which gives them the chance to have
a book they can read at the beach, and/or a PDF they can quickly
search while coding.
I know the PragProg guys say there’s no such thing as a ‘magic bullet’
for programming, but they sure seem to have found one for publishing.