Dive Into Python 3: The Foreword

Several months ago; Mark Pilgrim contacted me, asking if I would be interested in writing the foreword to Dive Into Python 3 – the latest revision to his seminal book Dive Into Python.

After I was done being flabbergasted, and after I picked myself off the floor, I gladly accepted. What follows is what I wrote, and what will appear in the print edition of Dive Into Python 3 (amazon link).

I wanted to convey my passion for both the language, the community – for everything involved in this. I wanted to explain why I, as just another developer see Python 3 as critical to the evolution of Python the Language. I also wanted to convey my thanks to Mark for a book which fundamentally 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 sitting here writing the foreword to a book, much less the foreword to a programming book – I would have looked at you incredulously and I’d have probably laughed.

Yet here I am. Seven years ago, I was simply a test engineer with some scripting skills and a systems administration background. Not a lot of programming and no passion for it, by any stretch of imagination.

One day, a soon-to-be-coworker of mine mentioned this “new” “scripting” language called Python. He mentioned it was easy to learn, and might add to my skill set – although I was wary – programmers seemed to be so separated from my “real world” of tests and systems and users. I went out to the nearest bookstore and bought the first book I found.

The book I bought was the original Dive Into Python by Mark Pilgrim. I have to think that I am not the only person who can say without exaggeration that, that book changed my life and career forever.

Mark’s book – his passion for Python and presentation, and the language itself fundamentally altered the way I thought. It drove me to not just read “yet another book about tech stuff” – it drove me to code, to represent my ideas in a completely new, alien way. His passion for the language infected me with a newfound passion.

Now, seven years later, I’m a contributor to the Python standard library, an active community member and teach the language to as many people as I can. I use it in my free time – I use it at my job. I contribute to it in between my daughter’s naps. Dive into Python – and Python itself changed me.

Python, as a language may not be the prettiest nor the most flexible language out there. What it is though, is clean, simple and powerful. Its elegance lies in the simplicity and the practicality it holds dear. Its flexibility lies in enabling you, or anyone to get something – anything – done and just “getting out of your way”.

I’ve said for some time – the beauty of Python is that it scales “up” – it’s useful for someone just wanting to do some math, or script something simple, while staying useful for programmers wanting to create large scale systems, web frameworks and multi-million dollar video sharing sites.

Python has not been without its warts though. Building a language is much, at least in my mind, like learning to program. It’s an evolutionary process where you constantly have to question the decisions you’ve made, and be willing to correct those decisions.

That’s what Python 3 fundamentally is. It’s both the admittance of mistakes and the subsequent fixes, removing some of the warts and maybe introducing some new ones. Python 3 shows a self-awareness and willingness to evolve in much needed ways you don’t see in a lot of things.

Python 3 does not redefine, fundamentally alter or suddenly invalidate all of the Python you knew before – what it does is take something which is time-proven and battle worn and improve on it in rational, practical ways.

Python 3 also doesn’t end the evolution of the language – not by any stretch. New features, syntax and libraries are still being added, and will probably be added, tweaked and removed for as long as Python itself lives on.

Python 3 is simply a cleaner, more evolved platform for you, the reader, to get things done.

Much like Python 3 – “Dive into Python 3″ is an evolution of something which was already very good into something even better. Mark’s passion, wit and engaging style is still there. The material has been expanded and improved and updated, but like Python 3 itself – it’s still the same thing which gave me a passion for programming.

Python’s simplicity is infectious. The passion of the community, and the passion with which the language was created and maintained is astounding.

I hope Mark’s passion, and Python itself inspires you, like it did me. I hope you find Python, and Python 3 to be as practical and powerful as hundreds of thousands of programmers and companies across the world.

Jesse Noller
Python Programmer

  • I have translated Dive Into Python 3 in Italian and I would like both to translate also your foreword and to put it alongside the book's translated text. First question: am I allowed to do it? Both the original and the translated book's text are licensed under CC-BY-SA 3.0. So, second question: have you attached / do you want to attach a specific content license to the foreword text as published on this page? (Possibly, a license that would allow me to translate it and publish it on similar terms?) Thanks!
  • Any text in the foreword is under the same license as the book itself! Go for it!
  • Jesse,

    Great foreword, but just one little thing:

    If you're coding *between* your daughter's naps (e.g., when she's awake), what are you doing *during* her naps (when she's asleep)? And when do you find time to spend with her?

    ;-P

    Congrats on the honor, and my experience "diving into" python mirrors yours.
    brian
  • Why are you bustin my balls? ;)

    Actually, juggling work-work with open-source work and being a parent is a painful process for me, honestly. It doesn't help I'm a severe workaholic. I'd be perfectly fine with 12 hour workdays :|
  • tag
    Great intro, Jesse. It comes at a time when I'm reassessing Python 3 (nearly a year since the first official release) and what it means for the language. I hope to post these thoughts on my own blog soon. In the meantime:

    Python 3 also doesn’t end the evolution of the language – not by any stretch. New features, syntax and libraries are still being added, and will probably be added, tweaked and removed for as long as Python itself lives on.


    You will have read Guido van Rossum's recent proposal which recommends a moratorium on changes to Python syntax. He also says:

    The main goal of the Python development community at this point should be to get widespread acceptance of Python 3000.


    Reading between the lines, I think the Python 2/3 fork will mark a significant pause in the evolution of the language. The overhead of developing, supporting and maintaining two versions of everything is high. New features would have to be backported. Libraries need to work on two platforms. Alternative implementations have two targets. Etc.

    I'm interested to see how things pan out. Certainly, it's refereshing to read a book like Mark Pilgrim's, which really does dive right in.
  • I already read Guido's proposal - I volunteered to draft the PEP (it's in progress) for the moratorium. I know that the 2/3 split will mark a pause - I'm for pausing. Being in core dev, my boogeyman has been the standard library - I'd like to see more focus on that, improving, cleaning, testing and other areas outside of the syntax and builtins.

    It will be interesting ;)
  • technomalogical
    Also, did he really ask if you'd be "interesting"? :)
  • Argh. Fixed.
  • mattchaput
    It's actually the foreWORD.
  • Typo, thanks for catching it - fixed
  • There's another 'foreward' typo in the first sentence of this blogpost..
  • Thank you; again
blog comments powered by Disqus