I'm looking for a book (or two cheap ones) for my brother-in-law for Christmas. He runs a small computer company that's been doing MS based solutions, but wants to migrate to doing Linux based Web work. What would you recommend?

What I have in mind would be something covering the sort of ground that _Web Development with Apache and Perl_ by Theo Peterson seems to from it's TOC, but I'm concerned that it is now too dated: maybe Apache configurations have changed or the Perl modules and frameworks he uses have been superseded. Maybe this is too much to do in one book, too.

I'm now thinking these two books:

Web Design in a Nutshell, 3Ed
Learning Perl, 5Ed

Either that or get him one piece of the puzzle, like David Flanagan's Javascript book or Kennedy and Musciano's HTML book.

He runs a small computer company that's been doing MS based solutions, but wants to migrate to doing Linux based Web work. What would you recommend?

Given the choices you are beginning with, it sounds like your brother-in-law is more bigger picture management oriented as opposed to being deep in the trenches. In that case, I would lean more towards titles such as:

Lie & Bos proposed CSS to W3, & this book covers many of the reasons why CSS is as it is. Front-end presentation work should not be done in HTML anymore. CSS should be doing the bulk of presentation today. This is why knowing CSS is important.

As for Perl & the Web, a lot of people still use it, & Perl shops still exist (I work for one...). However, for people coming into lower-level back-end Web development today, I would suggest going with Ruby (which has a good framework, but few people use Ruby outside of Rails...) or Python (which is more widely used, but the Web frameworks aren't as good...).

This is why I should have tried much harder to make him pick the language instead of leaving it to me. I'll advocate Perl, others will point out PHP is most commonly used, Ruby has a single obvious choice for frameworks, or Python is a better choice for unknown reasons. I thought each of these languages have good support for web programming, so I figured to steer him towards the language with the finest books. Unfortunately, I'm only familiar with the Perl books, and he just wouldn't pick a language. The client side books might be good, but he asked for something web and linux related, so that doesn't fit what I think he's looking for -- he may already have knowledge of that side from Windows work.

Too bad _Why's (poignant) Guide to Ruby_ doesn't have a printed edition. Ruby appeals to me second after Perl, but somehow I got the impression it was on decline after it's pinnacle a couple years ago, more so than Perl. I have trouble giving a book with _Agile_ in the title a fair chance. This is a better book than David Black's _Ruby for Rails_? Some of the reviews make it sound like it's not a first book for Ruby or Rails. Maybe in combination with David Flanagan's and Matz's _The Ruby Programming Language_? Or maybe I should just get him that. I've read a little of it, and it reads quite well.

Just to add some perspective, Perl5 is essentially mature as a platform. Unfortunately, many equate "mature" with "dead". While I understand the rationale, Perl can be a highly productive environment because the tools are there & the third party library repository (CPAN) is very rich. The question, as with all tools, is knowing how to effectively use them.

Quote:

The client side books might be good, but he asked for something web and linux related...

Attempting to look at this from a Windows perspective, the Microsoft world offers IIS & ASP. If that is what he is getting at when saying "Linux-related", I would suggest looking at Web server books, & here's a few:

I don't have the highest opinion (yet) of Packt's publishing style as editing seems to to be wanting much of the time. However, they tend to have titles on obscure subjects that other publishers haven't touched.

Quote:

...but somehow I got the impression it was on decline after it's pinnacle a couple years ago, more so than Perl.

Supposedly, Ruby is bigger in other parts of the world. Here in the US, it hasn't blossomed past Rails. I suspect this is partially because of Guido van Rossum (Python's developer) now being at Google.

Quote:

I have trouble giving a book with _Agile_ in the title a fair chance.

Understood, but this is the best Rails title I have found.

Quote:

This is a better book than David Black's _Ruby for Rails_?

From what I recall, yes. Black comes at Rails from "What of the Ruby language do I need to know?" whereas Thomas comes at it from "What does the framework do for me?" Web people find the latter more relevant.

Quote:

Some of the reviews make it sound like it's not a first book for Ruby or Rails.

Thomas was my first Rails title, & I think that is where it should be. I am discounting titles attempting to explain how to turn a computer on first. I'm beyond that, & I suspect your brother-in-law is too.

Quote:

Maybe in combination with David Flanagan's and Matz's _The Ruby Programming Language_?

Flanagan's Javascript book is one of the best in a field of really bad alternatives.

Flanagan & Matz's The Ruby Programming Language I too find to be a solid language book, but a Web head might not be as enamored with it since it is just that -- a language book.

Lastly, as for discounting CSS as a client-side technology, this isn't entirely fair & it ignores what is still required from the server-side. Too much effort has been put into structuring the HTML shipped over the wire. CSS alleviates much of this pain, so CSS should be considered from the beginning at the time of design, not simply as a technology facilitating eye candy. Plus, moving presentation to CSS can reduce the amount of HTML shipped over the wire ~40%.

Another aspect of Web development is how information is stored. If you want to consider database titles as well, let me know.

Thanks for your help, both of you. I looked over some PHP and Ruby books in the bookstore this evening (oddly, they had next to nothing on Python and Django). I ended up choosing _Agile Web Development with Rails_. It seemed well written and to answer the request for something to get him started writing web applications. The book _Learning PHP_ didn't look bad either, but I wasn't sure if it was up to date enough, and Ruby looks like a much more interesting language.

Still I'm uncomfortable with the decision. It seems like Rails won over various Perl frameworks, even with me, largely because authors who are important in the community and qualified to write a good book present it as if you could learn the language and the framework all in one go. I'm sure Randall Schwartz, Lincoln Stein, and Damian Conway could get together, pick one of the frameworks and mix it in with some subset of Learning Perl, throwing in a superficial mention of "agile" and "restful" concepts and have an equivalent book. It would probably be a good marketing exercise for Perl, in a way, if they could stomach the idea of pushing everyone down one single path.

He'll probably like the book, though. It looks mostly good, just a little overambitious. Oh, and not nearly as much fun as Land of Lisp, which will soon go to print, but he's too serious to appreciate that.