How about a book on Delphi (or insert your favorite language here)
I have a long history with Delphi. I remember being in my friend Zack Urlocker's
office at Borland when he showed it to me for the first time. I told him that I
liked the name, and that he should keep it (it was originally a code name for
the project; I suspect many others told him they liked the name as well, but I
like to think I had some influence...). Every once in awhile I would take a dive
into it, and create the odd program. The summer of 2000, after the Borland
conference, I sponsored Marco Cantu to give an advanced Delphi seminar. The best
equivalent for a "Thinking in Delphi" is Marco's collection of books.
Even though Pascal, and Turbo Pascal, were my first languages, I have had so
much experience in C-ish languages that it's awfully difficult for me to go back
to Pascal syntax. So if I did need to create a Windows-specific program and I
couldn't use Python (my favorite language, which I use all the time) then I
would probably use C++ Builder, since I am much more fluent in that syntax.
And books, well. They're getting harder to do, and taking longer, so I get very
careful about what I think I can do. I suspect it has to do with what I want
from a book, which is based on all the feedback I get about the books I put up
on the Web. I'm sure my process could be improved but in general I'm getting
slower rather than faster at producing books (and of course I'm slowed down by
all the other things I do - but somehow Martin Fowler is able to pull it
off...).
As far as a book on a specific language, I carefully consider the languages that
are out there and which ones seem likely to become interesting enough to justify
a book. Although there are many languages that have contributed to computing,
many of them have had their shot at glory and didn't take. Typically, this means
there was a big marketing push at some point, a lot of buzz for awhile
(sometimes quite awhile, as in the case of SmallTalk), and then the language
faded from the scene for one reason or another. Examples of this in the OO realm
are Eiffel and Objective-C, both of which tried to be commercial languages and
are, long after the fact, now available in free versions, but too late to really
do anyone any good. (Python is different -- it's always been grassroots and has
never had any big marketing push behind it, so it's more like Linux. Slow and
steady increments). Yes, Squeak is the most interesting implementation of
Smalltalk and there's a book or two out about it, but I still don't see
Smalltalk making a big recovery. Ruby still looks to me like a language that was
invented because you couldn't (rationally) use objects or references in Perl, so
it has Perl-ish syntax, which I don't think is very helpful (someday I may learn
it, but Python continues to be far more compelling to me). Long ago I used Lisp,
but probably won't again. So no, I'm probably not going to write books on any of
those languages except for Python. One of the important things about being a
programmer is learning to make good use of your time, and choosing the right
languages is an essential aspect of that.