Welcome to the Slashdot Beta site -- learn more here. Use the link in the footer or click here to return to the Classic version of Slashdot.

Thank you!

Before you choose to head back to the Classic look of the site, we'd appreciate it if you share your thoughts on the Beta; your feedback is what drives our ongoing development.

Beta is different and we value you taking the time to try it out. Please take a look at the changes we've made in Beta and  learn more about it. Thanks for reading, and for making the site better!

Dive Into Python

timothy posted about 10 years ago | from the sploosh dept.

Books 309

AccordionGuy writes "If you've ever spent an afternoon in the "Computers" section of a bookstore going through the programming language books, you've probably noticed that most of them seem to exist only to boost a publishing company's fortunes by capitalizing on the hot new programming language of the moment. These books -- essentially glorified bookends -- seem to follow the same format, cover the same subjects and aside from the tiny flourishes that are part of each author's particular writing style, are indistinguishable from each other. Reading them, one gets the feeling that its primary purpose is to allow the author to make some payments on a car or mortgage. I have a few of these books and they're gathering dust on the bookshelf farthest away from my desk." For deVilla's review of Dive Into Python, a book that inhabits a completely different category, read on below.

However, from time to time, you can find a programming language book that stands apart. You can tell from the way the author writes, the topics s/he covers, the unique presentation style and insight that s/he brings that the book is a labor of love. These books enjoy placement on the shelf closest to my desk -- that is, if they're not propped open beside my computer. Dive Into Python is such a book.

One thing that sets Dive Into Python apart from many other programming language books is that its author, Mark Pilgrim, didn't originally plan to make any money from it. As we often say in Open Source circles, he simply had an itch and decided to scratch it. Mark explains this in a story on his weblog in the form of a dialog between him and his manager after showing him a rough 20-page draft:

Manager: "This is really good. You could probably make some money off this someday."
Mark: "Maybe, but I'm not going to. I'm giving it away for free."
Manager: "Why would you do that?"
Mark: "Because this is the way I want the world to work."
Manager: "But the world doesn't work that way."
Mark: "Mine does."

First released in late October 2000 and published in online and downloadable forms under the GNU Free Documentation License, Dive Into Python had grown in fits and starts until 2003, when Mark declared the project closed. Even as an unfinished work, it was held in such high regard by the Python community that developers consistently recommended it; it was also included with ActiveState's Python and FreeBSD's ports distributions. When Mark announced that Apress had decided to pay him to finish the book and publish it, it became the most-anticipated book on Python ever. Even better, Apress has been gracious enough to allow Mark's world to work way it always has: Dive Into Python is still available for free download and is still under the GNU FDL.

What's in Dive Into Python

Many programming language books follow what I like to call the "Computer Science 101 Format", with the first few chapters devoted to covering basic concepts that any moderately experienced programmer already knows. Whenever I leaf through such a book and encounter a chapter that tries to reintroduce me to data types, looping or branching, I feel cheated; I'm essentially paying for a big chunk of book that I'll never read. If you've ever been annoyed by such filler, you'll find Dive Into Python a refreshing change. Rather than wasting time and trees devoting whole chapters to rehashing Computer Science 101, Mark chose to build each chapter after the first around a program that illustrates a number of Python features and programming techniques.

The programs upon which Dive Into Python's chapters are based strike a carefully-maintained balance. They are rich enough to illustrate a number of points and be the basis for some "real world" code, yet small enough to be comprehensible tutorials. For example, chapters 2 and 3 are based on "Your First Python Program", which is a mere six lines of code. However, in those six lines, you are introduced to function declarations, documentation strings, objects and their attributes, importing modules, Python's indentation rules, the "if __name__" idiom, dictionaries, lists, tuples, string formatting and list comprehensions. Within the first hundred pages, a point where many books are re-acquainting you with the "else" keyword, Dive Into Python covers the aforementioned topics as well as Python's reflection capabilities, list filtering, the "and-or trick", lambda functions, OOP and exception handling, all with enough thoroughness to be useful. After reading Dive Into Python, you may have trouble reading other programming language books because they'll seem glacially slow and fluff-laden in comparison.

For the first two-thirds of the book, Mark continues with this approach, presenting a program and then analyzing it to see what makes it tick, teaching Python and oftentimes a programming technique along the way. Each program covers useful tasks that you're likely to run into while programming and does so in an interesting way. At the same time, concepts are introduced in a way that makes sense. For instance, chapter 4 covers two topics that mesh together quite well -- exceptions and file handling -- and it does this by exploring an interesting application: a program that displays the ID3 tag information about each file in your MP3 collection. Later chapters explore regular expressions, HTML and XML processing and Web services. By the time you've finished the first two-thirds of Dive Into Python, you'll have been introduced to enough Python to start writing a wide array of "real world" applications. The book might have benefited from having a chapter covering database access, a task that's at least as common or as useful as accessing Web services, but that's a minor complaint.

While the first two-thirds of the book concerns itself with helping the reader become a Python programmer, the final third is about elevating Python programmers above mere competence. It covers useful topics (albeit rarely-covered in language books) such as refactoring and performance optimization as well as ones that may be new to even some experienced programmers: unit testing, functional programming and dynamic functions. Each chapter in this section is still based on an example program, but rather than analyzing a completed program, its evolution is traced. Although you can get by as a Python programmer without ever reading the material in this section, you'll be a much better one for having done so.

In keeping with the spirit of Python, Mark writes the chapters to present the material as completely and clearly as possible without extra clutter. If there's any additional material that doesn't apply directly to what he's trying to explain, he provides references or links to that material rather than attempting to "fatten up" the book.

The book's long gestation period, assisted by years of reader feedback and James Cox's editing has paid off. It doesn't have the rushed feel that many language-of-the-moment books have (especially the ones written by an army of authors, each one taking a chapter). As far as I know, there isn't any of the sloppiness that pervades many programming books these days, save one instance of the popular typo "teh" (and really, what truly 1337 book doesn't have one of these?).

Mark is aware that Python is likely not to be the reader's first programming language; it's more likely to be some descendant of ALGOL (or more precisely, a language that borrows heavily from either C or BASIC). He also knows that many programmers tend to misapply techniques from the languages with which they're familiar to the language they're learning. With these in mind, he's taken great care to introduce Python idioms as soon as possible. If you follow his advice, you'll be writing "real" Python and taking advantage of what the language has to offer rather than just writing Python-flavored version of whatever programming language you're most comfortable with.

Dive Into Python's Audience

The "user level" specified on the back cover of this book says "Beginner - Intermediate", which I feel is a little misleading. As I mentioned earlier, the book takes great care not to rehash topics with which programmers with some experience are already familiar and is written with the assumption that the reader is proficient in at least one object-oriented programming language. I think many programming novices would be overwhelmed with the speed with which Python features are introduced.

Experienced programmers, whether they are new to Python or are fluent with the language will benefit the most from the book. One programmer I know works with Python daily and and even submitted a patch to wxPython; even he said that Dive Into Python showed him things about Python that he never knew. If you're tired of books aimed at "Introduction to Computer Science" students, you're going to love this book. This doesn't mean that people who don't normally program can't benefit from the book: Joi Ito, who is a tech entrepreneur and not a programmer, learned enough from Dive Into Python to put together jibot, a bot for the IRC channel that bears his name. If you're new to programming, you might want to make Dive Into Python your second book or supplement it with an introductory text such as Apress' own Practical Python, O'Reilly's Learning Python or the free online book How To Think Like a Computer Scientist (the Python edition).


Dive Into Python may be one of the thinnest programming language books on my shelf, but it's also one of the best. Whether you're an experienced programmer looking to get into Python or grizzled Python veteran who remembers the days when you had to import the string module, Dive Into Python is your "desert island" Python book. If you're new to programming but have heard all the wonderful things about Python, make sure that this is the second programming book you read. My congratulations to Mark Pilgrim on an excellent book and authorial debut!

(Remember, you don't have to just listen to my effusive praise. Dive Into Python is available for free at Read it for yourself and if you like it, vote with your dollar!)

You can purchase Dive Into Python from Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.

cancel ×


Sorry! There are no comments related to the filter you selected.

Don't forget the author's website (5, Informative)

Anonymous Coward | about 10 years ago | (#10192892)

Dive Into Mark [] . Lots of interesting/useful stuff.

Re:Don't forget the author's website (-1, Flamebait)

Anonymous Coward | about 10 years ago | (#10193061)

Manager: "This is really good. You could probably make some money off this someday."
Mark: "Maybe, but I'm not going to. I'm giving it away for free."
Manager: "Why would you do that?"
Mark: "Because this is the way I want the world to work."
Manager: "But the world doesn't work that way."
Mark: "Mine does."

And maybe this is the reason why FLOSS-zealots do not become managers.

Re:Don't forget the author's website (1)

Charvak (97898) | about 10 years ago | (#10193207)

May I also suggest using BoostPython library to embed python into your c++ program(or viceversa)

Re:Don't forget the author's website (-1, Offtopic)

Anonymous Coward | about 10 years ago | (#10193273)

If it was Dive Into Cindy, I would have taken a look at it :P

shrinking shelf space (0)

Anonymous Coward | about 10 years ago | (#10193736)

Not to troll, but has anyone else noticed that the total shelf space is much smaller than it was just a few years ago for computer books and specifically programming books ?

php style documentation (1)

karl_marzd (786404) | about 10 years ago | (#10192931)

Any chance we'll get php style documentation to accompany this wonderful book?

Dive into Kerry (-1, Offtopic)

Anonymous Coward | about 10 years ago | (#10192936)

Stop the fascist oppression of the poor and weak by the Bush administration, stop the warmongering and the hate!
Join the rapidly growing youth movement for JOHN KERRY, AMERICAS SAVIOUR! []


Anonymous Coward | about 10 years ago | (#10192960)

Congratulations on your purchase of a brand new nigger! If handled properly, your nigger will give years of valuable, if reluctant, service.


You should install your nigger differently according to whether you have purchased the field or house model. Field niggers work best in a serial configuration, i.e. chained together. Chain your nigger to another nigger immediately on unpacking it, and don't even think about taking that chain off, ever. Many niggers start singing as soon as you put a chain on them. This habit can usually be thrashed out of them if nipped in the bud. House niggers work best as standalone units, but should be hobbled or hamstrung to prevent attempts at escape. At this stage, your nigger can also be given a name. Most owners use the same names over and over, since niggers become confused by too much data. Rufus, Rastus, Remus, Toby, Carslisle, Carlton, Hey-You!-Yes-you!, Yeller, Blackstar, and Sambo are all effective names for your new buck nigger. If your nigger is a ho, it should be called Latrelle, L'Tanya, or Jemima. Some owners call their nigger hoes Latrine for a joke. Pearl, Blossom, and Ivory are also righteous names for nigger hoes. These names go straight over your nigger's head, by the way.


Owing to a design error, your nigger comes equipped with a tongue and vocal chords. Most niggers can master only a few basic human phrases with this apparatus - "muh dick" being the most popular. However, others make barking, yelping, yapping noises and appear to be in some pain, so you should probably call a vet and have him remove your nigger's tongue. Once de-tongued your nigger will be a lot happier - at least, you won't hear it complaining anywhere near as much. Niggers have nothing interesting to say, anyway. Many owners also castrate their niggers for health reasons (yours, mine, and that of women, not the nigger's). This is strongly recommended, and frankly, it's a mystery why this is not done on the boat


Your nigger can be accommodated in cages with stout iron bars. Make sure, however, that the bars are wide enough to push pieces of nigger food through. The rule of thumb is, four niggers per square yard of cage. So a fifteen foot by thirty foot nigger cage can accommodate two hundred niggers. You can site a nigger cage anywhere, even on soft ground. Don't worry about your nigger fashioning makeshift shovels out of odd pieces of wood and digging an escape tunnel under the bars of the cage. Niggers never invented the shovel before and they're not about to now. In any case, your nigger is certainly too lazy to attempt escape. As long as the free food holds out, your nigger is living better than it did in Africa, so it will stay put. Buck niggers and hoe niggers can be safely accommodated in the same cage, as bucks never attempt sex with black hoes.


Your Nigger likes fried chicken, corn bread, and watermelon. You should therefore give it none of these things because its lazy ass almost certainly doesn't deserve it. Instead, feed it on porridge with salt, and creek water. Your nigger will supplement its diet with whatever it finds in the fields, other niggers, etc. Experienced nigger owners sometimes push watermelon slices through the bars of the nigger cage at the end of the day as a treat, but only if all niggers have worked well and nothing has been stolen that day. Mike of the Old Ranch Plantation reports that this last one is a killer, since all niggers steal something almost every single day of their lives. He reports he doesn't have to spend much on free watermelon for his niggers as a result. You should never allow your nigger meal breaks while at work, since if it stops work for more than ten minutes it will need to be retrained. You would be surprised how long it takes to teach a nigger to pick cotton. You really would. Coffee beans? Don't ask. You have no idea.


Niggers are very, very averse to work of any kind. The nigger's most prominent anatomical feature, after all, its oversized buttocks, which have evolved to make it more comfortable for your nigger to sit around all day doing nothing for its entire life. Niggers are often good runners, too, to enable them to sprint quickly in the opposite direction if they see work heading their way. The solution to this is to *dupe* your nigger into working. After installation, encourage it towards the cotton field with blows of a wooden club, fence post, baseball bat, etc., and then tell it that all that cotton belongs to a white man, who won't be back until tomorrow. Your nigger will then frantically compete with the other field niggers to steal as much of that cotton as it can before the white man returns. At the end of the day, return your nigger to its cage and laugh at its stupidity, then repeat the same trick every day indefinitely. Your nigger comes equipped with the standard nigger IQ of 55 and a memory to match, so it will forget this trick overnight. Niggers can start work at around 5am. You should then return to bed and come back at around 10am. Your niggers can then work through until around 10pm or whenever the light fades.


Your nigger enjoys play, like most animals, so you should play with it regularly. A happy smiling nigger works best. Games niggers enjoy include:

1) A good thrashing: every few days, take your nigger's pants down, hang it up by its heels, and have some of your other niggers thrash it with a club or whip. Your nigger will signal its intense enjoyment by shrieking and sobbing.

2) Lynch the nigger: niggers are cheap and there are millions more where yours came from. So every now and then, push the boat out a bit and lynch a nigger.

Lynchings are best done with a rope over the branch of a tree, and niggers just love to be lynched. It makes them feel special. Make your other niggers watch. They'll be so grateful, they'll work harder for a day or two (and then you can lynch another one).

3) Nigger dragging: Tie your nigger by one wrist to the tow bar on the back of suitable vehicle, then drive away at approximately 50mph. Your nigger's shrieks of enjoyment will be heard for miles. It will shriek until it falls apart. To prolong the fun for the nigger, do *NOT* drag him by his feet, as his head comes off too soon. This is painless for the nigger, but spoils the fun. Always wear a seatbelt and never exceed the speed limit.

4) Playing on the PNL: a variation on (2), except you can lynch your nigger out in the fields, thus saving work time. Niggers enjoy this game best if the PNL is operated by a man in a tall white hood.

5) Hunt the nigger: a variation of Hunt the Slipper, but played outdoors, with Dobermans. WARNING: do not let your Dobermans bite a nigger, as they are highly toxic.


Niggers die on average at around 40, which some might say is 40 years too late, but there you go. Most people prefer their niggers dead, in fact. When yours dies, report the license number of the car that did the drive-by shooting of your nigger. The police will collect the nigger and dispose of it for you.



Have it put down, for god's sake. Who needs an uppity nigger? What are we, short of niggers or something?


They all do this. Shorten your nigger's chain so it can't reach any white women, and arm heavily any white women who might go near it.


Not unless it outnumbers you 20 to 1, and even then, it's not likely. If niggers successfully overthrew their owners, they'd have to sort out their own food. This is probably why nigger uprisings were nonexistent (until some fool gave them rights).


Yeah, well, it would. Tell it to shut the fuck up.


A nigger's skin is actually more or less transparent. That brown color you can see is the shit your nigger is full of. This is why some models of nigger are sold as "The Shitskin".


What you have there is a "wigger".


They're as common as dog shit and about as valuable. In fact, one of them was President between 1992 and 2000. Put your wigger in a cage with a few hundred genuine niggers and you'll soon find it stops acting like a nigger. However, leave it in the cage and let the niggers dispose of it.


And you were expecting what?


This is normal.


Where are we, Wonderland? You'll have a lot of trouble getting it to fornicate with *other* niggers.


I don't really understand the question ("better quality of nigger"...?WTF?)

Re:NIGGER OWNER'S MANUAL (-1, Redundant)

angrykeyboarder (791722) | about 10 years ago | (#10193048)

I guesss it's not possible for a mod or someone to delete a post on here is it?


Anonymous Coward | about 10 years ago | (#10193223)

Cool! A bisexual, bondage-enjoying blogger with a pointless personal rant site. Welcome to Slashdot. You'll fit right in.

And no, Goatse, GNAA first posts and all racist and Natalie Portman-related posts are here to stay. Come for the dupes, stay for the trolls, bitch.


Broken Link (5, Informative)

keiferb (267153) | about 10 years ago | (#10192968)

Here's a good link to [] . The one at the end of the review is horked.

'a mere 6 lines'? (4, Funny)

Neil Blender (555885) | about 10 years ago | (#10192974)

With perl, you can learn all that with 6 characters.

Re:'a mere 6 lines'? (4, Funny)

Y2 (733949) | about 10 years ago | (#10193016)

With perl, you can learn all that with 6 characters.

You're thinking of APL. Perl would take you at least 16 characters.

Re:'a mere 6 lines'? (1)

Lehk228 (705449) | about 10 years ago | (#10193049)

Brainfuck [] does everything with just 8 charcters

Re:'a mere 6 lines'? (2, Funny)

saintp (595331) | about 10 years ago | (#10193182)

Yeah, but it sucks for posting code on ./. The lameness filter won't let me post my killer 452-character "Just another Brainfuck hacker" sigline unless I pad it with an UNGODLY amount of filter-circumvention text.

Finally! (5, Interesting)

bblazer (757395) | about 10 years ago | (#10192995)

I have been waiting a long time ti find a book like this. It is a breath if fresh air. Similar (as far as fresh air goes, not writing style) to the Head First series. While the Oreilly 'animal' books take up most of my shelf space, this one will find a place there too.

Example 2.6 (1, Interesting)

Anonymous Coward | about 10 years ago | (#10193276)

Why is this example function named 'fib' when it computes the factorial of a number, not the nth fibonacci..?

WORKING LINK (-1, Redundant)

Anonymous Coward | about 10 years ago | (#10192996) []

more links for those interested (-1, Offtopic)

Anonymous Coward | about 10 years ago | (#10193002)

here [] is some more info on python products for those of you who are interested...

Great Book (5, Interesting)

wackysootroom (243310) | about 10 years ago | (#10193003)

It's the first thing I recommend to read after the official python tutorial [] to my co-workers who are just starting to learn python.

This book, Python in a nutshell, and the online python library reference are the 3 tools that I always recommend for python newbies

Re:Great Book (0)

Anonymous Coward | about 10 years ago | (#10193072)

I learned python using this book in the first place. I had prior experience with a lot of java and some c.

Great thing, I read it online first, which was the additional beauty of it. I have been looking for books like these for other languages I want to learn, ones that do not take 100 pages to tell you about the else statement, as the reviewer said.

The Apocalypse is Nigh! (-1, Offtopic)

Weltanschauung (760763) | about 10 years ago | (#10193038)

He didn't give it a numerical rating!

It's just shorthand (0)

Anonymous Coward | about 10 years ago | (#10194207)

If there is no numerical rating, just assume a "9". Almost all book reviews are a "9" under the Slashdot Book Rating System.

Python and Perl... (-1, Offtopic)

goldspider (445116) | about 10 years ago | (#10193051)

Logout Preferences Subscription ~goldspider (445116)
Journal of goldspider (445116)
Info Journal Messages Friends Fans Foes Freaks
[ goldspider's Journal | Write in Journal | Delete/Edit Entries | Edit Preferences | Friend's Journals ]

goldspider (445116)
(email not shown publicly)
Karma: Excellent
AOL IM: GoldSpider (Add Buddy, Send Message)
ICQ UIN: 383186 (Add User, Send Message)
Ladies and gentlmen of the jury, I'm just a caveman. I fell on some ice and later got thawed out by some of your scientists. Your world frightens and confuses me! Sometimes the honking horns of your traffic makes me want to get out of my BMW and run off to the hills or whatever. Sometimes when I get a message on my fax machine I wonder, Did little demons get inside and type it? I don't know! My primitive mind can't grasp these concepts. But there is one thing I do know. When a man like my client slips and falls on a sidewalk in front of a public library, then he is entitled to no less than two million in compensatory damages and two million in punitive damages.

Python and Perl...
Tuesday October 14, @11:11AM [ Edit | Delete | Enable Comments | #49045 ] ...are for rank ameteurs, and there's no two ways about it! They are unelegant and clumsy languages that are only used by unsophisticated, lazy, self-titled "developers" who don't understand Unix as well as they would have us or their employers believe.

There is nothing, and i do mean NOTHING that a real Unix professional can do with Python or Perl that he or she can't do with awk, sed, and grep.

Any argument to the contrary would not only expose your own inadequacies as a Unix programmer, but would also perpetuate the myth that (as Microsoft also argues) bloated, "feature-rich" languages are appropriate for use in business applications. I submit that such an argument would be itself an attack on the very concept of open source software.

Re:Python and Perl... (1)

haluness (219661) | about 10 years ago | (#10193098)

Is there a point to this?

Boy, did THAT ever go wrong! (0)

Anonymous Coward | about 10 years ago | (#10193127)

Time to back off on the cold medication! Mod to you hearts' content :(

Re:Boy, did THAT ever go wrong! (0)

Anonymous Coward | about 10 years ago | (#10193242)

i don't care if i can do it with sed, awk and grep - i can do it with perl too :) - if you do it with those then your the m3g@ 1337, aren't you?
come down man - world is evoluing, even if you don't like it (or cannot follow)

Re:Python and Perl... (0)

Anonymous Coward | about 10 years ago | (#10193257)

What a Tool. What drives awk, sed grep with ease? It's bash, ksh, csh, or what ever the hell shell you use.

Re:Python and Perl... (1, Flamebait)

static0verdrive (776495) | about 10 years ago | (#10193303)

I like your style clown-shoes, but isn't OSS all about choice? I agree with you, but let the proverbial baby have his bottle; shit, if I wanted NO choice I'd use windows!

Re:Python and Perl... (1)

tiptone (729456) | about 10 years ago | (#10193482)

Yawn...stretch...Database access.

Just looked in the man pages (cause i'm not a real Unix developer) and none of those programs (sed, awk, grep) have any kind of network connection. So add to database access any type of networking...

Re:Python and Perl... (1)

GuardianAngus (780535) | about 10 years ago | (#10193715)

It seems to have been a while since you have had to do some quick file parsing on a windows box as well. There is much to be said of the common syntax that can be supported on all of the platforms that I need to touch.

Well, ok... nothing is really "supportable" on WinCE, but besides that...

In Soviet Russia..... (-1, Offtopic)

Anonymous Coward | about 10 years ago | (#10193055)

python dives into YOU!

Awesome (2, Informative)

izakage (808061) | about 10 years ago | (#10193068)

This book was awesome, I've been using it for awhile, and it's a really good python guide.

Re:Awesome (0)

Anonymous Coward | about 10 years ago | (#10194079)

> This book was awesome, I've been using it for awhile, and it's a really good python guide.

This was modded "informative"? Waste of mod points.

,,,a dive into disaster. (-1, Offtopic)

Anonymous Coward | about 10 years ago | (#10193070)

I jumped into a python once at the zoo and he say "wtf.." so he bite me long time.

Not suprising; I hope the book's good (3, Interesting)

Donny Smith (567043) | about 10 years ago | (#10193107)

If writing a book like that could get me $60K a year kind of job, I'd write one for free too.
(I hope the author makes enough money - I just want to point out a possible reason for doing that kind of thing).

From the article I noticed one interesting thing - his world didn't quite work out until that company chipped in some money for him to finish the thing.
The same is with music and software - if it weren't for companies and/or sponsors....

Just in case the site crashes, you should be able to get the book via eMule( "diveintopython" the current version is 5.4.)

Re:Not suprising; I hope the book's good (3, Interesting)

janbjurstrom (652025) | about 10 years ago | (#10193839)

I guess you could see it that way. But I read his weblog semi-often, and from what I've learned, Mark did a sort of 'project house-cleaning' a while back (sometime after his marriage?). He talked about wanting to use his time in the most meaningful way, and therefore listed a few time-consuming things he would

a) stop doing altogether
b) keep maintaining but not work actively on
c) spend his 'new-found' time on.

I believe the Diveintopython project was put in group a). So IIRC this would mean that APress gave him an offer to finish it after he chose to abandon the project himself.

I could be mistaken but I'm too tired to check his site now.. You do it ;).

Re:Not suprising; I hope the book's good (3, Interesting)

Jason Earl (1894) | about 10 years ago | (#10193925)

Dive into Python has always been a good book for some time now. The difference is that now it is available in a dead tree version, and it has had some professional editting.

His world worked out just fine. In fact, his free edition was good enough that he's getting paid to make a dead tree version while still giving away the electronic version.

It just goes to show that there is money to be made in this kind of stuff. Not huge piles of money probably, but enough to make it worth your while.

Re:Not suprising; I hope the book's good (4, Interesting)

nessus42 (230320) | about 10 years ago | (#10193977)

From the article I noticed one interesting thing - his world didn't quite work out until that company chipped in some money for him to finish the thing.
So? His world still worked out the way that he wanted it to. He still gives out the book for free if you don't want to pay for it. Proponents of free information have never said that the creators of the information shouldn't also be able to make money from it.


Re:Not suprising; I hope the book's good (1)

Matheus Villela (784960) | about 10 years ago | (#10193993)

From the article I noticed one interesting thing - his world didn't quite work out until that company chipped in some money for him to finish the thing.

For what i understood his world works, he's giving the book for free. If someone is paying or not to he finish the book doesn't seen to be the question, he said that maybe he would make money but giving the book for free, he doesn't said that he would not make money.

Re:Not suprising; I hope the book's good (1)

4of12 (97621) | about 10 years ago | (#10194256)

If writing a book like that could get me $60K a year kind of job, I'd write one for free too.
(I hope the author makes enough money - I just want to point out a possible reason for doing that kind of thing).

I'd bet the money making part is one level of indirection from writing the book.

That is, when you put out a resume looking for consulting jobs, etc. being able to list yourself as the author of a widely-recognized and lauded work is helpful.

a series of well planned coincidences. (3, Interesting)

knowles420 (589383) | about 10 years ago | (#10193112)

strange that this article should pop up today when just last night, i was digging through the local barnes & nobles looking for a good python book and went home with nothing more than another work of fiction.

i've been meaning to get further into computer programming than the basic knowledge i already have, and this book seems worthy of a purchase. i have suffered through quite a few "intro" books that do little more than teach how to code math equations and silly text manipulations.

what i am really in need of is either a series of problems to be solved (with solutions, natch) or a good book suggestion that actually makes me want to write programs.

the how-to books are easy, but i tend to get bored with huge compilations of instructions pretty quickly. perhaps what i need is a good "why-to" book. any suggestions?

Re:a series of well planned coincidences. (5, Informative)

bhsurfer (539137) | about 10 years ago | (#10193614)

Have you read The Practice of Programming [] by Brian Kernighan & Rob Pike? I thought it was a pretty good "why-to" sort of book that didn't spoon feed you anything, plus it gives examples/assignments in multiple languages so you can see the differences between them. If you haven't read this one, check it out. They probably have it at the library if you don't want to read it, but I'm glad I own a copy.

Re:a series of well planned coincidences. (1)

bhsurfer (539137) | about 10 years ago | (#10193654)

I meant "...if you don't want to BUY it..."

Re:a series of well planned coincidences. (1)

Hatta (162192) | about 10 years ago | (#10193928)

If you don't want to read it, they probably still have it at the library.

Re:a series of well planned coincidences. (5, Interesting)

claytongulick (725397) | about 10 years ago | (#10194050)

The "Why-to" question is the core of what separates good programmers from bad.

Inadvertantly, you question strikes to the core of modern IT, it is not language specific, but it is the root driving force behind all "geeks".

For too many people, the "Why-to" is "because I heard you can make lots of money as a programmer". To answer this demand, colleges and universities churn out rank and file incompetent and ambivalent programmers, weilding their Microsoft inspired toolchest of Visual Basic 6 or MS Access, they flood the resume pool, and pollute the code base with their lazy half-hearted attempts at development, causing project failures and frustration on a massive scale and dramtically increasing the costs of corporate IT.

These are the type of programmers who react with anger and fear when anyone mentions exploring different languages or technology. Who, when confronted with a problem or issue they don't understand are willing to shrug and say "I don't know" and pass the problem off to the true "geek" on the team.

On the other hand, you have the type of coder to which the "Why-to" question is like breathing... to whom coding grants god-like powers of creation, who is willing to stay up late solving obscure problems just for the rush of satisfaction when s/he gets the answer.

To this type of coder, the question is not so much "Why-to" but more, "How could I not?". Coding is not a job, it is a system of thought, the logical structuring of the chaotic real-world into discrete lines of code.

To this type of programmer, there is nothing more exhilarating than a new project, a blank file, a clean slate, from which they can craft the perfect solution. Starting from scratch and creating from nothing is the ultimate expression of their intellect, and they judge themselves critically by the result.

This is a quality that can not be taught in a univeristy, or measured by a multiple choice exam. These are the "basement geeks" who clutter their shelves with gadgets and obscure books.

They may have started on the IRC with the classic question "How do I make a game?", or as a sysop of a dial-up BBS who needed to add functionality.

The point is, for the true coder, the "Why-to" question was answered BEFORE the language question... they had some sort of need that could only be solved by learning to code... and after that they were hooked. They constantly evaluate new languages and more effecient/elegant methods of solving their problems.

There is no book that will make you _want_ to code, first you want to code _then_ you buy the book.

Asking "Why should I program?" is similar to picking up a shovel and saying "Why should I dig?". Unless you have a need, there is no point, and you will never understand why all those ditch-diggers keep debating the finer points of different shovels. You are out of context. For you, the answer is "You shouldn't".

That is, until you need a ditch.

My 2 cents (5, Insightful)

KillaKen187 (794540) | about 10 years ago | (#10193153)

Python is great very robust, easy to use, and capable to do a lot of things quickly. I also know that Mark is a great guy. I have sent him emails on trouble I have had on things and he has given great responses to them. Very upstanding guy. All blessings to Mark Pilgrim and his contribution to OSS with Python.

Re:My 2 cents (1, Interesting)

Paulrothrock (685079) | about 10 years ago | (#10194231)

I don't know... I don't want a language that sees a difference between a space and a tab. If nothing's there, then it should mean nothing.

But, then again, I'm lazy, impatient, and full of hubris.

I dove into python... (4, Funny)

bludstone (103539) | about 10 years ago | (#10193158)

...and got covered in spam. ...bloody vikings

Re:I dove into python... (0)

Anonymous Coward | about 10 years ago | (#10193365)

That's because its not supposed to be a Spanish Inquisition.

Nobody expects the Spanish Inquisition!

Sweet Jumping Jehovah... (0, Offtopic)

Anonymous Coward | about 10 years ago | (#10193165)

The first two posts modded up to 3+ on this article, and BOTH of them are pimping their free iPod links in their sigs.

Moderators: Down with the "free iPod" spammers!

Sure, I could turn off sigs, but occasionally people actually do have interesting/informative links. But these iPod referral crap links are just too much.

Now go ahead and mod me down. Argh.

Python and Perl... (take two!) (-1, Flamebait)

goldspider (445116) | about 10 years ago | (#10193177)

...are for rank amateurs, and there's no two ways about it! They are inelegant and clumsy languages that are only used by unsophisticated, lazy, self-titled "developers" who don't understand Unix as well as they would have us or their employers believe.

There is nothing, and i do mean NOTHING that a real Unix professional can do with Python or Perl that he or she can't do with awk, sed, and grep.

Any argument to the contrary would not only expose your own inadequacies as a Unix programmer, but would also perpetuate the myth that (as Microsoft also argues) bloated, "feature-rich" languages are appropriate for use in business applications. I submit that such an argument would be itself an attack on the very concept of open source software.

Re:Python and Perl... (take two!) (0)

Anonymous Coward | about 10 years ago | (#10193250)

How do you do sql db access via those tools? What about multithreaded/multiprocess tcp/udp servers?

Re:Python and Perl... (take two!) (0)

Anonymous Coward | about 10 years ago | (#10193274)

Python and Perl are for amateurs

YEAH! Google is just a bunch of amateurs, using languages like Python! OTOH, it is now your duty never to use Google anymore. Do you think you can do it?

Joy of programming... (4, Interesting)

powerlinekid (442532) | about 10 years ago | (#10193178)

A few years back I needed to develop a program to download all of UserFriendly's archives (ok need is a strong word but thats not important). At the time I was familiar with the normal languages; java, C, C++, etc. I had heard about Python and figured this was something I could use to learn it.

I was blown away. Having never touched the language within a couple of hours of going through the online documents I had picked up enough to write the full script. Once that was done I didn't want to stop. I found Python to be an absolute wonderful language that made programming fun again. Since then I've written my fair share of Python apps to do nearly everything. Infact anytime I need a program that I can't quickly find or isn't out of it's realm, it gives me an excuse to use Python. A lot of the time I lookup a way to do something and sit there smiling to myself going "now thats freaking cool".

I haven't read this book, but from my experience Python is an awesome language. I'm sure the Perl people feel the same way about their language. To me Python feels clean, flexible and productive. Most importantly its fun.

Re:Joy of programming... (2, Funny)

Osty (16825) | about 10 years ago | (#10193370)

A few years back I needed to develop a program to download all of UserFriendly's archives

You're either a masochist, or this was some form of cruel and unusual punishment. Perhaps you could enlighten us as to why someone would willingly subject himself to UF's brand of mind-numbing "art" (requires quotes because I can't call it real art with a straight face) and "humor" (same reason for the quotes).

Re:Joy of programming... (0, Troll)

slashpot (11017) | about 10 years ago | (#10193520)

I can answer that one...

Because if you've ever worked at an ISP you "get it" which apparently you "don't" so "fuck off" troll.

Re:Joy of programming... (1)

DarkFencer (260473) | about 10 years ago | (#10193799)

Yep, the above poster was one of the people who get me to look into python. I love it now. I hate when I have to go back and look at perl code that I or others have written now.

Python: The Movie (5, Informative)

PissingInTheWind (573929) | about 10 years ago | (#10193179)

For all of you who still haven't seen it, I strongly recommend this 'propaganda' gem from the Python community:

Video: Introducing Python []

Features GvR, ESR, etc.

It's so bad it hurts. You'll want to show it to all your friends.

Re:Python: The Movie (1)

vivek7006 (585218) | about 10 years ago | (#10193521)

It's so bad it hurts

Oh come on. I think t was really funny. Note that this movie was aimed for high-school kids.

Purpose of Python? (-1, Troll)

Anonymous Coward | about 10 years ago | (#10193186)

Seems to me Python is simply another moneymaking tool by publishers greedy to cash in on nerds riding the latest programming fad. Lets see..for serious programming we have C++, Java and their derivatives. Perl pretty much takes care of any casual loose ends. What could possibly be the purpose of Python except to confuse and frustrate those coming into the computer field with one more of hundreds of new irrelevant languages?

Downloaded and loved (1)

GoClick (775762) | about 10 years ago | (#10193193)

I've been using Python for years and I like to read all the books I can get my hands on. Yeah I'm one of those Python Zealots.

This book is quite good, although the PDF has odd little gray icond behind some of the text for some reason. It doesn't bother me really but I'm not sure what their for.

The book does have some great chapters and some not so hot ones but it's probably not the best read if you don't already have some Pygramming (that's Python Programming) experiance.

Lots of fun and by far one of the best free books I've ever read.

Re:Downloaded and loved (3, Interesting)

cryptochrome (303529) | about 10 years ago | (#10194192)

I've been programming pretty much exclusively in python lately - but as my programs have become more advanced the downsides are becoming more obvious. I ended up writing a python extension in C (painful when you've been programming in python). Specifically, you can't compile python - and interpreted it's just too slow for anything computationally expensive. Also you have to load the interpreter, (or embed w/extra modules) it's slow and uses more memory than it should.

PyObjC is a start, but the little differences in how things are implemented between Python and Objective C makes using it a bit difficult to learn. Plus it's mac-only. Pyrex looks interesting but I've yet to try it. PyPy seems to have been in development forever.

For starters, I think the distutils module needs an option to produce a package/binary that is runnable on any similar machine whether python is installed or not.

Python is amenable to a variety of programming styles, is very readable, has well developed libraries, and is quick to write. But I've found myself wanting more than it can deliver, in terms of raw speed and number-crunching power, and even occasionally the need for typing and assignment by reference. I hope they find some way to deliver it someday, or make a language that retains the ease and efficiency of python but is also compilable.

I beg to differ with AccordianGuy's assessment (5, Insightful)

BuzzLY (267639) | about 10 years ago | (#10193212)

As an author of one of those "bookends," I'd have to assume that AccordianGuy has never written one. The money is certainly not a huge draw -- it's not enough to live on, for sure. I can't speak for all authors, but for me, it was an opportunity to do two things that I love - play with one of my favorite programming languages, and write. Perhaps it really is crap, but at least I enjoyed writing it!

Re:I beg to differ with AccordianGuy's assessment (1)

Gaetano (142855) | about 10 years ago | (#10193851)

I agree. That part of the review seemed ill-informed. May I ask which book you wrote?

Python, prototyping, and gmailfs (5, Interesting)

HungSquirrel (790165) | about 10 years ago | (#10193213)

The developer of gmailfs [] wrote it in Python. He claims it is his first jump into Python, and apperently he learns fast--two days from zero Python knowledge to a working prototype of gmailfs. Odds are decent that he learned from this book. If everything people are saying about Python is true, I might have to give it a go. I can already tell from Chapter 2 of this book that it's my kind of programming guide, so I shouldn't have any trouble.

Re:Python, prototyping, and gmailfs (2, Funny)

Anonymous Coward | about 10 years ago | (#10193390)

That's the weirdest endorsement I've ever seen for a book. "This guy, who's not remarkably good at X, but claims to have picked it up quickly, may or may not have learned X from this book. However, I'm assuming that he did! What a great book!"

Re:Python, prototyping, and gmailfs (1)

nkh (750837) | about 10 years ago | (#10193694)

I hate to troll but Gmailfs what not the most difficult project ever. It is written on top of the libgmail library (which was the hard part to write).

Re:Python, prototyping, and gmailfs (1)

platypus (18156) | about 10 years ago | (#10193891)

I'd say that FUSE [] , which is the other package gmailfs is very dependend on, is even a bigger programming venture. One day I'll have to take a sharp look at it.

Apress (1)

static0verdrive (776495) | about 10 years ago | (#10193249)

How very, very cool of Apress. Nice to see - now I'll probably buy the book to show them the GNU FDL can work - you can make money with open works.

The Python Tip (-1, Troll)

Anonymous Coward | about 10 years ago | (#10193291)

Everyone needs to get off the Python tip.
The language of true hackers.
Give me a break. It's a f*cking scripting language.

Thoughts of Python... (5, Interesting)

Golthur (754920) | about 10 years ago | (#10193335)

I wasn't a Python Zealot(tm) until I tried it... in fact, just the opposite.

When I heard about the whitespace-is-significant, I had nightmarish flashbacks of MVS JCL (thoughts of which still cause me to twitch uncontrollably). As such, I refused to even look at Python seriously for quite some time.

However, that being said, once I actually did get over my (admitted) prejudice and gave it a serious test - it earned an official "WOW", something which few languages have ever done for me. Never mind that I was as productive while just learning Python as I am as an expert in any of the other languages I use regularly.

Now, I'm an official convert. Python gives you all the tools you need, but never forces you to use the wrong one for the job.

All I need to do now is find a shop that actually uses Python...

Re:Thoughts of Python... (1)

ashultz (141393) | about 10 years ago | (#10193566)

Interesting to hear this, because that is exactly my reaction to python.

"Wow, sounds interesting but when you cut and paste chunks of don't you run the risk of shooting a hole in your foot and then somehow choking to death on the fountain of blood?"

I'd be interested to know whether you still dislike the significant whitespace, or have somehow come to like it. And if so, why?

Re:Thoughts of Python... (3, Informative)

nkh (750837) | about 10 years ago | (#10193740)

Indentation to create blocks is stupid when you begin to learn Python. And after a day or two you don't think about it anymore. The language is cool, and tabulation is just a detail when you've got OOP, regexpes...

Re:Thoughts of Python... (4, Informative)

Anonymous Coward | about 10 years ago | (#10193890)

"Wow, sounds interesting but when you cut and paste chunks of don't you run the risk of shooting a hole in your foot and then somehow choking to death on the fountain of blood?"

Get a smart text editor; one that can handle this. When I cut'n'paste Java code in Eclipse, for example, it makes all of thew whitespace perfect. Indenting and outdenting code should be no more than a few keystrokes. ("<<" or ">>" in vim's visual mode. ctrl-[ or ctrl-] in Eclipse. etc.)

This is something I always did in other languages anyway, so Python's whitespace handling never bothered me. Improper whitespace drives me nuts (too hard to read), so a language that enforces proper whitespace is perfect to me.

Re:Thoughts of Python... (0)

Anonymous Coward | about 10 years ago | (#10194176)

Yes, it's a PITA to copy and paste python from the web, but emacs will make it more or less painless. The whitespace thing sort of fades away at that point, and you're left with even more irritating things that are fundamental about python. Like crippled lambda, read-only closures, and syntax that really isn't all that flexible (want to create new block structures? too bad). Good language, but I can't help but think that a couple hours of tooling around with syntax macros in lisp or scheme would produce nearly identical results with a much more powerful runtime to boot.

Re:Thoughts of Python... (5, Interesting)

iguana (8083) | about 10 years ago | (#10193974)

I use it daily in my job ( Our test fixture (tests new boards coming off the line at our custom manufacturer) is written in shell scripts and Python on an embedded SiS-550 Linux board running 2.4.9, uClibc, BusyBox, etc.

I rewrote our Windows-based management tools into Python for myself. Using that protocol library, I've sent quick and dirty py2exe wxWindows programs to customers. "Just unzip and run." Unless they look closely, I'm sure they don't know (and don't care) they're running Python apps.

It's not exactly "in your face" like Zope but it glues together my day.

Re:Thoughts of Python... (1)

Cro Magnon (467622) | about 10 years ago | (#10194245)

I'm still a beginner in Python, but in languages that ignore whitespace, incorrect indentation is the quickest way to turn me into a raving madman! A language that FORCES you to indent properly is GREAT!

Very useful (1)

sparkywonderchicken (759502) | about 10 years ago | (#10193383)

Python might be the most useful language since scheme.

python's list processing rules (4, Informative)

graveyhead (210996) | about 10 years ago | (#10193416)

For those who haven't tinkered yet, or are just getting started with Python, I've found one of it's greatest strengths is it's ability to munge lists.

e.g, look at this super-terse, but still legible, sub-array code:
l = l[1:]
List comprehensions are another great feature:
l = [ do_something(x) for x in l ]
This is so amazingly compact when compared with list processing in Java or C++.

Anyhow, hats off to Guido Van Rossum for such a great language. I'll have to check this book out... I've been using the python cookbook (OReilly) and the documentation on the site almost exclusively...

Re:python's list processing rules (2, Interesting)

nkh (750837) | about 10 years ago | (#10193817)

Actually, I have a problem with lists comprehensions:

With Python: [ x ** 2 for x in xrange(100000) if x % 2 == 0 ] (8 seconds)
With Ruby: (1..100_000).select { |x| x % 2 == 0 }.map { |x| x ** 2 } (2 seconds)
but Ruby is supposed to be 10 times slower (not compiled, bigger...) What's happening? (it's not a troll, it's a real question)

Re:python's list processing rules (4, Informative)

Mendenhall (32321) | about 10 years ago | (#10194198)

Actually, that took me a while to figure out, too. If you try it with 50000 instead of 100000, on my machine python takes 0.384 seconds while ruby takes 0.537 seconds. With 100000, the comparison is much as you show (except about twice as fast in both cases). If, instead of squaring x, you take x alone, python is also faster.

Apparently, there is something quite different about ruby's handling of long integers (>32) bits from python's. In the python case, this expression automatically switches to infinite-precision integers (at least for python 2.3). I don't use ruby, so I don't know what it is producing when the numbers get beyond 32 bits. Does it automatically go to long integers?

Anyway, the speed difference in this pair of examples seems contrived to get ruby to do something much faster than python, since it requires 'special' values including integer overflow to exercise this effect. Maybe ruby really has better long integer handling than python. Can any on who knows ruby comment on the result of the overflow?

Re:python's list processing rules (0)

Anonymous Coward | about 10 years ago | (#10194236)

Ruby more than likely is doing enough dataflow analysis to know you don't want the list result, and thus might not bother to build it up. 'course, a little more analysis would optimize away all benchmarks like that ;)

Could be python's memory management (not great) or list concatenation behavior (only recently made tolerable in recent versions). Grab python 2.4 and try this generator expression

for i in ( x ** 2 for x in xrange(100000) if x % 2 == 0 ): pass

Re:python's list processing rules (1)

Greyfox (87712) | about 10 years ago | (#10193932)

Does that include the spiffy stuff that you can do using boost? [] I haven't done C++ in a while so I haven't had a chance to really play with boost yet, but I'm led to believe that it lets you get the language down to about that level of compactness.

Personally I'm a fan of (mapcar (lambda (x) ...))

Re:python's list processing rules (1)

necrognome (236545) | about 10 years ago | (#10194092)

Here's something else that's cool:
>>> a = 'slashdot'
>>> a[::-1]
mylist[::-1] returns a list with the elements of mylist in reverse order.

good and bad (4, Interesting)

rjnagle (122374) | about 10 years ago | (#10193434)

Funny, I have been reading both the online version and the print version over the weekend.

It is in many ways an excellent book, but geared towards more experienced programmers than I. The style is readable, but the program illustrating introspection (chapter 4 I believe) is really hard to get into. Mark could have chosen a better example.

I particularly liked the way that Pilgrim annotated the code. He started out a chapter with the raw code, broke them into blocks with annotations and then concluded the chapter with a review.

The approach of these diveinto books is to introduce unfamiliar concepts and then dissect them one by one. My only complaint is that sometimes he introduces a lot of things all at once. It would have been better (though less succinct) to use more examples with fewer concepts thrown together all at once. On the other hand, I can appreciate the succinctness of the example programs by presenting them without first dumbing them down. The good thing about diveintopython is that it helped me to read a program pretty easily --although that doesn't imply that I can apply this knowledge..Give me another week or two:) The key question is at what point do I feel like coding on my own? I tried the examples in chapters 1 and 2, and then didn't feel like I could start coding until I finished the first 8 chapters. (and am slowly getting the hang of it).

Interestingly, when I started out, I found that I was referring to Oreilly's Python in a Nutshell [] more and more. Didn't look that user friendly at first, now seemingly more useful.

My sense is that programming is a matter of incremental mastery. (First read Fun with Dick and Jane, then read Wizard of Oz, then Melville, then Shakespearean sonnets). This book starts out by throwing out the Shakespearean sonnets at us and then explaining piece by piece until we have a sense of the whole.

Guido von Rossum's tutorial is more of a stepping stone approach, though the example code is more academic than practical.

One advantage of the online book: great hyperlinked references to Rossum's tutorial and other sources.

Despite my griping, this was still a good instructive read (though challenging). And way to go Mark for putting this online for free!

OT--Gmail invite fairy (-1, Offtopic)

anethema (99553) | about 10 years ago | (#10193465)

I'm hoping this wont get modded down..just tryin to help some ppl out

I hope you guys who have it will leave it for the few left who dont.. (remember slashcode fucks the url up..take out any spaces, they dont belong) c5 8e0-946a20db5b a7e0aa0f-43f6515 6b9-13aa1f22ad a7e0aa0f-0f7c734 b9d-86e85e077f a7e0aa0f-7c57c31 30b-52365eb5e7 a7e0aa0f-a578b2f 9fb-41f9ef6010 a7e0aa0f-33c7e1a 004-9308a2e6f2 c6933de8-8cf1b1b 5e3-6aec1fe593 c6933de8-986d36f 10c-ab860089af c6933de8-3852221 7a0-d0ca8638d4 c6933de8-36b405c 9d8-e1c7bd537a c6933de8-cf39b17 0e0-c12f13df71 c6933de8-83d3993 d8a-56222a5738

Re:OT--Gmail invite fairy (1)

anethema (99553) | about 10 years ago | (#10194021)

Alrite, well, that was fun but thats the end of those invites, ill find someone more diserving i guess.

It's also in Debian. (4, Informative)

jonathan_atkinson (90571) | about 10 years ago | (#10193497)

If you use Debian, you can just:
# su
# apt-get install diveintopython
And the book will be downloaded and placed into /usr/share/doc/diveintopython/


diveintomark slashdotted (0)

Anonymous Coward | about 10 years ago | (#10193649)

Anyone got a mirror?

We need a Dive into Zope book (2, Interesting)

ikhalil (738889) | about 10 years ago | (#10193662)

I think someone should write us a Dive into zope book with the same quality as Dive into python!

Re:We need a Dive into Zope book (0)

Anonymous Coward | about 10 years ago | (#10194272)

Dive into Python still refers you back to the excellent Python documentation in order to learn more. Zope ... I've given it three tries, and given up because of its CRAPPY documentation.

The thinner, the better (4, Interesting)

mwood (25379) | about 10 years ago | (#10193769)

Fat language books are just, well, fat. I learned 98% of FORTRAN IV from a book about .75" thick, and my ALGOL 68 book is even thinner. It takes very little space to thoroughly introduce the programmer to Modula or Icon. Even COBOL books don't have to be wordy even though most COBOL code is.

When I see a slender volume sitting among the telephone-directory-sized tomes, I usually pick it up on the assumption that it should be good if it's so lean. I am not often disappointed.

(I just realized that LISP books *all* tend to be rather slender. McCarthy, Siklossy, and Steele all managed to say quite a lot in very little space. Hmmm.)

Re:The thinner, the better (5, Funny)

Mr. Bad Example (31092) | about 10 years ago | (#10193832)

> (I just realized that LISP books *all* tend to be rather slender. McCarthy, Siklossy, and Steele all managed to say quite a lot in very little space. Hmmm.)

It's because the chapters are recursive.

Python (3, Insightful)

jefu (53450) | about 10 years ago | (#10193800)

A few years back I wrote some scripts for web input processing. I knew a smattering of Perl so wrote them in Perl. They worked ok as far as I could tell . I had other things to do so stopped working on them, then went back after a while to add some functionality and discovered that I had no idea what I had done or how. Eventually I worked it out and added the functionality I wanted (and comments, yup) and went away again. The next time I went back I had to learn the whole thing again and my comments and cleaned up code didn't help.

So I'd heard about Python and that it was good, so (since I like the process of learning new languages) I decided to try rewriting the scripts in python. In about two days I had them doing everything the perl had done and the added functionality as well and with remarkably few bugs.

Eventually I went back to add on more functionality and "Lo!" I had no trouble reading my Python code and even better adding in the new stuff was simple.

The biggest problem with Python has been the lack of a good book, I'll be considering "Dive into Python" carefully - being in the education biz I'm looking for a really good Python book for students.

Why Are These People So Naive? (2, Insightful)

reallocate (142797) | about 10 years ago | (#10193995)

>>... one gets the feeling that its primary purpose is to allow the author to make some payments on a car or mortgage...

Geez, how did some people become so naive? Just figuring out that professional authors write for money? And you're offended by it?

Note to AccordionGuy (-1, Offtopic)

Anonymous Coward | about 10 years ago | (#10193996)

Your first paragraph is full of negativity. In fact that's all it is. I'm not sure what you're trying to do but if your article is meant to recruit new python fans, it's failed totally. You don't need to tell us about the good points of a book or a programming language by throwing stones at random other authors and publishers. There's enough negativity in the world as it is, and way too much of it already on Slashdot.

Honestly, I stopped reading at the end of the first paragraph, it doesn't contain a single remark about the subject, nor a single nice about anyone. So I assume the rest is similar, or at least is so clouded by your own bias that it's useless. Perhaps next time, you can leave for your petty negative feelings to comments and write articles that are constructive in nature.

Honestly, there is absolutely no need to discuss the virtues of a book or a programming by putting down others as much as you do.

I had no idea (2, Interesting)

Cereal Box (4286) | about 10 years ago | (#10194052)

Mark Pilgrim works down the hall from me. I had no idea he wrote this particular book.

Small world.

mirror (4, Informative)

Kedder (529127) | about 10 years ago | (#10194100)

here is a mirror []

I thJank you for your time (-1, Redundant)

Anonymous Coward | about 10 years ago | (#10194209)

you got 't4ere. Or
Load More Comments
Slashdot Login

Need an Account?

Forgot your password?

Submission Text Formatting Tips

We support a small subset of HTML, namely these tags:

  • b
  • i
  • p
  • br
  • a
  • ol
  • ul
  • li
  • dl
  • dt
  • dd
  • em
  • strong
  • tt
  • blockquote
  • div
  • quote
  • ecode

"ecode" can be used for code snippets, for example:

<ecode>    while(1) { do_something(); } </ecode>