Let’s face it: at the moment, there aren’t too many good Perl tutorials online. Many people who ask trivial questions are being conveyed something like “Read the Llama Book, the Camel Book, the Black Panther book, the Perl Cookbook, and then you’ll know how to convert a file to lowercase.” Maybe I’m exaggerating a little, but it seems people are so content with the books that they don’t seem to think people who don’t want them, cannot afford to buy them, or don’t have time for them, are worthy of learning Perl.
I don’t have anything against people trying to make money off Perl by selling books. But these people are the same people who are the Perl project leaders, and so are responsible to make sure Perl is well-documented. If people get frustrated learning Perl, and become unhappy with it, they will criticize “Perl”. Not the Perl documentation. Not the Perl community. Not even the Perl leaders. “Perl”. If Larry Wall et al. care enough about Perl, they should make sure it has good online documentation. They don’t have to do it themselves, as a simple call for action by a very prominent Perl figure will do. (in accordance to Eric Raymond’s “The Cathedral and the Bazaar”)
If we take a look at Python or PHP for instance, then they have excellent online documentation, which is very useful for most if not all newbies. No need to read a book or take a course. Just surf the Internet on your ADSL connection, install a few things on your Windows machine, and presto! You know PHP or Python or Ruby. I seriously doubt if it can be done with Perl with the same ease.
I am grateful for Simon Cozens for making his Beginning Perl book online for free. I did not take a thorough look at the book, but it is more encompassing than anything I’ve seen. But even one book is not enough. People still want step by step tutorials and things they can cut and paste code out of and tinker it to do something.
When are books that cover a Technology something that I find legitimate? When they are not absolutely needed. I learned the Perl DBI by reading the man page and the online site and asking a few questions. Some people do not like man pages too much and would rather buy a book that covers Perl DBI. That’s OK, and there may be a few fine points of working with DBI that I missed with what I call my “bottom-up learning”.
Such books need not be available online if their authors so much don’t desire. However, Perl is very hard to learn from public electronic resources alone. I believe there may even be a clash of interests because the core Perl people also write them and so may not have enough motivation to improve the online documentation. Making them public will resolve that.
That aside, I also believe that making it available online will not dent their sales much. I still would like to buy the Camel Book (which I borrowed from the local Perl Mongers library), and loved regardless if it’s online so I can read it at bed time and stuff. And I generally have no problems using a computer book or tutorial.
Then there are the mailing lists. I think (but am not sure) that most Perl Mongers mailing lists will gladly accept questions from newbies and answer them kindly. I know this is the case for Israel.PM. As a general rule Perl Mongers should make sure that the newbies mailing list would be the first list they see on the site, or try to subscribe to. Again, good user-interface design.
The Perl Beginners list In my opinion is a bit useless. It is very high volume, and usually whenever one considers replying to a question, it receives three replies by the time he finished composing it. I was also subscribed and it was too high volume to be effective for me as a “guru”. I believe newbies will not be able to handle such volumes either. Unless they can configure their mail readers to filter only their own threads, which I’m not sure they can. Perl can do that, but they need to know it first.
Like I said earlier, I think distributism is the key to our success here. Just like there are many scientific journals with very similar names and themes, (sometimes, “Physics A”, “Physics B”, “Physics C” etc), so there should be several international Perl beginners sites, each with his own mailing list for beginners. Gurus will subscribe to one or more sites and answer questions there, and newbies won’t have to excessively use their delete button. Gradually, each such community will have a different atmosphere, and we will get a more diversified Perl world. (we all agree that diversity is good, right? If you don’t you should program in Python)