Dive Into Python 3: The Foreword

October 25th, 2009 § 13 comments

Sev­eral months ago; Mark Pil­grim con­tacted me, ask­ing if I would be inter­ested in writ­ing the fore­word to Dive Into Python 3 — the lat­est revi­sion to his sem­i­nal book Dive Into Python.

After I was done being flab­ber­gasted, and after I picked myself off the floor, I gladly accepted. What fol­lows is what I wrote, and what will appear in the print edi­tion of Dive Into Python 3 (ama­zon link).

I wanted to con­vey my pas­sion for both the lan­guage, the com­mu­nity — for every­thing involved in this. I wanted to explain why I, as just another devel­oper see Python 3 as crit­i­cal to the evo­lu­tion of Python the Lan­guage. I also wanted to con­vey my thanks to Mark for a book which fun­da­men­tally helped alter what path I’ve taken in my life.

I hope you enjoy it, and I hope you enjoy Dive Into Python 3.

Seven years ago, had you asked me if I would be sit­ting here writ­ing the fore­word to a book, much less the fore­word to a pro­gram­ming book — I would have looked at you incred­u­lously and I’d have prob­a­bly laughed.

Yet here I am. Seven years ago, I was sim­ply a test engi­neer with some script­ing skills and a sys­tems admin­is­tra­tion back­ground. Not a lot of pro­gram­ming and no pas­sion for it, by any stretch of imagination.

One day, a soon-to-be-coworker of mine men­tioned this “new” “script­ing” lan­guage called Python. He men­tioned it was easy to learn, and might add to my skill set — although I was wary — pro­gram­mers seemed to be so sep­a­rated from my “real world” of tests and sys­tems and users. I went out to the near­est book­store and bought the first book I found.

The book I bought was the orig­i­nal Dive Into Python by Mark Pil­grim. I have to think that I am not the only per­son who can say with­out exag­ger­a­tion that, that book changed my life and career forever.

Mark’s book — his pas­sion for Python and pre­sen­ta­tion, and the lan­guage itself fun­da­men­tally altered the way I thought. It drove me to not just read “yet another book about tech stuff” – it drove me to code, to rep­re­sent my ideas in a com­pletely new, alien way. His pas­sion for the lan­guage infected me with a new­found passion.

Now, seven years later, I’m a con­trib­u­tor to the Python stan­dard library, an active com­mu­nity mem­ber and teach the lan­guage to as many peo­ple as I can. I use it in my free time — I use it at my job. I con­tribute to it in between my daughter’s naps. Dive into Python — and Python itself changed me.

Python, as a lan­guage may not be the pret­ti­est nor the most flex­i­ble lan­guage out there. What it is though, is clean, sim­ple and pow­er­ful. Its ele­gance lies in the sim­plic­ity and the prac­ti­cal­ity it holds dear. Its flex­i­bil­ity lies in enabling you, or any­one to get some­thing — any­thing — done and just “get­ting out of your way”.

I’ve said for some time — the beauty of Python is that it scales “up” — it’s use­ful for some­one just want­ing to do some math, or script some­thing sim­ple, while stay­ing use­ful for pro­gram­mers want­ing to cre­ate large scale sys­tems, web frame­works and multi-million dol­lar video shar­ing sites.

Python has not been with­out its warts though. Build­ing a lan­guage is much, at least in my mind, like learn­ing to pro­gram. It’s an evo­lu­tion­ary process where you con­stantly have to ques­tion the deci­sions you’ve made, and be will­ing to cor­rect those decisions.

That’s what Python 3 fun­da­men­tally is. It’s both the admit­tance of mis­takes and the sub­se­quent fixes, remov­ing some of the warts and maybe intro­duc­ing some new ones. Python 3 shows a self-awareness and will­ing­ness to evolve in much needed ways you don’t see in a lot of things.

Python 3 does not rede­fine, fun­da­men­tally alter or sud­denly inval­i­date all of the Python you knew before — what it does is take some­thing which is time-proven and bat­tle worn and improve on it in ratio­nal, prac­ti­cal ways.

Python 3 also doesn’t end the evo­lu­tion of the lan­guage — not by any stretch. New fea­tures, syn­tax and libraries are still being added, and will prob­a­bly be added, tweaked and removed for as long as Python itself lives on.

Python 3 is sim­ply a cleaner, more evolved plat­form for you, the reader, to get things done.

Much like Python 3 — “Dive into Python 3″ is an evo­lu­tion of some­thing which was already very good into some­thing even bet­ter. Mark’s pas­sion, wit and engag­ing style is still there. The mate­r­ial has been expanded and improved and updated, but like Python 3 itself — it’s still the same thing which gave me a pas­sion for programming.

Python’s sim­plic­ity is infec­tious. The pas­sion of the com­mu­nity, and the pas­sion with which the lan­guage was cre­ated and main­tained is astounding.

I hope Mark’s pas­sion, and Python itself inspires you, like it did me. I hope you find Python, and Python 3 to be as prac­ti­cal and pow­er­ful as hun­dreds of thou­sands of pro­gram­mers and com­pa­nies across the world.

Jesse Noller
Python Programmer

  • mattcha­put

    It’s actu­ally the foreWORD.

  • http://jessenoller.com jnoller

    Typo, thanks for catch­ing it — fixed

  • tech­no­m­alog­i­cal

    Also, did he really ask if you’d be “interesting”? :)

  • tag

    Great intro, Jesse. It comes at a time when I’m reassess­ing Python 3 (nearly a year since the first offi­cial release) and what it means for the lan­guage. I hope to post these thoughts on my own blog soon. In the meantime:

    Python 3 also doesn’t end the evo­lu­tion of the lan­guage – not by any stretch. New fea­tures, syn­tax and libraries are still being added, and will prob­a­bly be added, tweaked and removed for as long as Python itself lives on.

    You will have read Guido van Rossum’s recent pro­posal which rec­om­mends a mora­to­rium on changes to Python syn­tax. He also says:

    The main goal of the Python devel­op­ment com­mu­nity at this point should be to get wide­spread accep­tance of Python 3000.

    Read­ing between the lines, I think the Python 2/3 fork will mark a sig­nif­i­cant pause in the evo­lu­tion of the lan­guage. The over­head of devel­op­ing, sup­port­ing and main­tain­ing two ver­sions of every­thing is high. New fea­tures would have to be back­ported. Libraries need to work on two plat­forms. Alter­na­tive imple­men­ta­tions have two tar­gets. Etc.

    I’m inter­ested to see how things pan out. Cer­tainly, it’s ref­eresh­ing to read a book like Mark Pilgrim’s, which really does dive right in.

  • http://jessenoller.com jnoller

    Argh. Fixed.

  • http://jessenoller.com jnoller

    I already read Guido’s pro­posal — I vol­un­teered to draft the PEP (it’s in progress) for the mora­to­rium. I know that the 2/3 split will mark a pause — I’m for paus­ing. Being in core dev, my boogey­man has been the stan­dard library — I’d like to see more focus on that, improv­ing, clean­ing, test­ing and other areas out­side of the syn­tax and builtins.

    It will be interesting ;)

  • http://twitter.com/bkjones Brian K. Jones

    Jesse,

    Great fore­word, but just one lit­tle thing:

    If you’re cod­ing *between* your daughter’s naps (e.g., when she’s awake), what are you doing *dur­ing* her naps (when she’s asleep)? And when do you find time to spend with her?

    ;-P

    Con­grats on the honor, and my expe­ri­ence “div­ing into” python mir­rors yours.
    brian

  • http://jessenoller.com jnoller

    Why are you bustin my balls? ;)

    Actu­ally, jug­gling work-work with open-source work and being a par­ent is a painful process for me, hon­estly. It doesn’t help I’m a severe worka­holic. I’d be per­fectly fine with 12 hour workdays :|

  • http://collab.com/ Thijs

    There’s another ‘fore­ward’ typo in the first sen­tence of this blogpost..

  • http://jessenoller.com jnoller

    Thank you; again

  • http://gpiancastelli.wordpress.com/ Giulio Piancastelli

    I have trans­lated Dive Into Python 3 in Ital­ian and I would like both to trans­late also your fore­word and to put it along­side the book’s trans­lated text. First ques­tion: am I allowed to do it? Both the orig­i­nal and the trans­lated book’s text are licensed under CC-BY-SA 3.0. So, sec­ond ques­tion: have you attached / do you want to attach a spe­cific con­tent license to the fore­word text as pub­lished on this page? (Pos­si­bly, a license that would allow me to trans­late it and pub­lish it on sim­i­lar terms?) Thanks!

  • http://jessenoller.com jnoller

    Any text in the fore­word is under the same license as the book itself! Go for it!

  • http://jessenoller.com jnoller

    Any text in the fore­word is under the same license as the book itself! Go for it!

What's this?

You are currently reading Dive Into Python 3: The Foreword at jessenoller.com.

meta