My reading of each of the commandment, I found out, follows a rigourous processus. I always punctuate the disclosure of the commandment at hand with an outraged "preposterous!". At around mid-section, it unavoidly morphs into a "hmmm, I can see his point.. but it ain't for me. It just doesn't jive with my vibes". By the time I've made it to the end, though, it is rare indeed that I haven't seen the light, donned the ritual sackcloth and ashes, sworn to atone for my sins and to walk the straight and narrow from now on.
Seriously, I consider PBP to be the best programming investment I did this year. It is worth its weight in depleted uranium bars, and is twice as entertaining. I recommend it heartily to all my friends, whether they be Perl programmers or not. It's that good.
-- `/anick Champoux on PBP
Perl and C++ are very different programming languages. Nonetheless, I use both regularly and recently had the pleasure of reading two similar books about each:
Personally, I was delighted to see these two books appear. For Perl and C++ are both mature, TMTOWTDI languages and now is an opportune time to reflect on the hard won experience of the past 10 years and lay down the law on how best to utilize these complex languages. Doing so clearly and with authority -- as both these books do -- is especially beneficial to programming teams suffering chronic maintenance and teamwork problems at the coal face.
This meditation compares and contrasts these two fine books.
PBP contains 256 guidelines and weighs in at a whopping 542 pages. CCS weighs less: 101 guidelines, 240 pages.
Why is PBP bigger? It covers more ground, with excellent chapters on documentation, testing and debugging -- missing from CCS. Further, PBP is more self contained than CCS, convincingly explaining the rationale behind each guideline in detail, and with fewer external references. Finally, PBP on occasion invents new art, such as unveiling a suite of funky new CPAN modules authored by TheDamian (as if you couldn't guess;-). CCS, on the other hand, deliberately eschews invention. And strives to keep guideline rationales short, often by providing references to external material.
Though longer, PBP is missing a few nice tips from CCS, such as guidelines on concurrency/threading, error-safe code, automated builds and code reviews.
Generally, PBP emphasizes "Robustness, Efficiency, Maintainability", while CCS seems more concerned with "Correctness, Simplicity, Clarity, Safety" along with "uniformity in the right dimension" and "creativity in directions that matter".
Another conspicuous difference is Conway's gutsy attempt to persuade readers on code layout issues, such as space versus tab indentation and braces placement. Personally, I applaud Conway for this (though doubtless others booed). In any case, I found Damian's carefully reasoned arguments convincing. In contrast, CCS's first guideline, Don't sweat the small stuff, timidly exhorts its readers not to attempt to enforce personal taste on code layout.
As for similarities, both books, in addition to language specific recommendations, offer general guidelines applicable to either language; both books, for example, extol the virtues of version control. In addition to specific similar guidelines (detailed below) both books emphasize similar general principles, such as scalability, abstraction, encapsulation, and preferring to find errors at compile time rather than run time.
Conway and Alexandrescu: Separated at Birth
At first glance, Conway and Alexandrescu seem spookily identical:
On second glance, admittedly, there are some glaring differences:
Some Similar Guidelines Found in Both Books
Extra Tips That Might Be Added To PBP From CCS
Extra Tips That Might Be Added To CCS From PBP
What Might Be Added To Both Books
Books
Other References
Updated 19-oct: A few extra tips plus minor improvements to wording. 23-oct: added more references. 20-jan: added opening `/anick quote.
|
---|
Replies are listed 'Best First'. | |
---|---|
Re: Two Different Languages: Two Similar Books
by pg (Canon) on Oct 16, 2005 at 15:55 UTC | |
by adrianh (Chancellor) on Oct 16, 2005 at 18:06 UTC | |
by EvanCarroll (Chaplain) on Oct 17, 2005 at 02:46 UTC | |
Re: Two Different Languages: Two Similar Books
by ioannis (Abbot) on Oct 16, 2005 at 23:58 UTC | |
by 5mi11er (Deacon) on Oct 17, 2005 at 15:46 UTC | |
by hsmyers (Canon) on Oct 20, 2005 at 03:07 UTC | |
by 5mi11er (Deacon) on Oct 21, 2005 at 16:13 UTC |