Cover photo
Guido van Rossum
Works at Dropbox
Attended University of Amsterdam
Lives in California
52,587 followers|4,339,022 views


Guido van Rossum

Shared publicly  - 
My son goes to school here. I know many of those kids.
bbosa henry's profile photoJustin Cook's profile photoJustin R. Andrusk's profile photoWenxiang He's profile photo
Add a comment...

Guido van Rossum

Shared publicly  - 
In the memory lane department: Doing some research on Base64 led me to RFC 3548 ( which references as [8] a post by Zooko; however the link seems to go to the wrong post. Viewing the month of those archives ( it's like all the usual suspects: Bram Cohen, +Gregory P. Smith, +Zooko Wilcox-O'Hearn...
Geofrey Sanders's profile photoGuido van Rossum's profile photoAndrew Gray's profile photoMathias Gumz's profile photo
+Brian Jones I haven't been able to get beyond the basics... choose a sequence a such that Σ(a[n]*π^n) = x
Now what?  : s
Add a comment...

Guido van Rossum

Shared publicly  - 
I was asked on Twitter why Python uses 0-based indexing, with a link to a new (fascinating) post on the subject ( I recall thinking about it a lot; ABC, one of Python's predecessors, used 1-based indexing, while C, the other big influence, used 0-based. My first few programming languages (Algol, Fortran, Pascal) used 1-based or variable-based. I think that one of the issues that helped me decide was slice notation.

Let's first look at use cases. Probably the most common use cases for slicing are "get the first n items" and "get the next n items starting at i" (the first is a special case of that for i == the first index). It would be nice if both of these could be expressed as without awkward +1 or -1 compensations.

Using 0-based indexing, half-open intervals, and suitable defaults (as Python ended up having), they are beautiful: a[:n] and a[i:i+n]; the former is long for a[0:n].

Using 1-based indexing, if you want a[:n] to mean the first n elements, you either have to use closed intervals or you can use a slice notation that uses start and length as the slice parameters. Using half-open intervals just isn't very elegant when combined with 1-based indexing. Using closed intervals, you'd have to write a[i:i+n-1] for the n items starting at i. So perhaps using the slice length would be more elegant with 1-based indexing? Then you could write a[i:n]. And this is in fact what ABC did -- it used a different notation so you could write a@i|n.(See

But how does the index:length convention work out for other use cases? TBH this is where my memory gets fuzzy, but I think I was swayed by the elegance of half-open intervals. Especially the invariant that when two slices are adjacent, the first slice's end index is the second slice's start index is just too beautiful to ignore. For example, suppose you split a string into three parts at indices i and j -- the parts would be a[:i], a[i:j], and a[j:].

So that's why Python uses 0-based indexing.
Nicolas Évrard's profile photoSaravanan Thirumuruganathan's profile photoNicolau Werneck's profile photoKevin Houlihan's profile photo
Fortran gets it right, not with 1-based indexing, but with user-defined indexing. You can index a 7-element array from -3 to 3 if you want.

Guido van Rossum

Shared publicly  - 
Dropbox developer conference coming up! July 9, Fort Mason, San Francisco.
Pedro Jose Pezzarini's profile photoDalton Hubble's profile photoGuido van Rossum's profile photoMarcos Luis Ortiz Valmaseda's profile photo
Seriously, why the hating?

Guido van Rossum

Shared publicly  - 
Bad user experience with Google wallet and Google apis console: getting monthly bills for $0.00. Worse user experience: being threatened with suspension of the account when the credit card expires.
Peter Retief's profile photoDariusz Dwornikowski's profile photoPeter, Rosemann's profile photoStephen Lewis's profile photo
Another problem is: when I want to donate, google wallet says they do not ship to Poland. 

Guido van Rossum

Shared publicly  - 
Peter Binderup's profile photoGuido van Rossum's profile photoMichael Gmelin's profile photoChris DiBona's profile photo
I still think their behavior is extremely uncooperative, therefore my comment "asshats will never die out" - which I consider civil, since it's very clear that python has been around forever and they're trying to monetize something they deep inside know isn't theirs, just because there might be a legal chance to do so - obviously somebody else might use a different term to describe this kind of behavior (e.g. "business school graduate standard procedure"), but to me that word describes it best. Tastes differ though.

That said, I'm also unhappy about many comments and - even worse - actions that make the Python community look like a bunch of anonymous wannabes, not understanding that to win a game you have to play by the rules, regardless if you like them or not - especially in an open source project that's supposed to be sustainable - after all sustainability is one of the key benefits of open source software. Also Python as a project relies on donations (which by the way doesn't make it evil or bad etc.) and it's harder to convince companies to give money to a project that might make them look bad - basically the same reason why Python needs a global trademark, so somebody else's (potentially broken) technologies don't reflect back on the project in a negative way.

Maybe that's also a good lesson about the difference between mailings lists and social media in terms of dynamics, things spiral out of control more easily.
In his circles
264 people
Have him in circles
52,587 people

Guido van Rossum

Shared publicly  - 
Sarath C's profile photoandrew jang's profile photoNerv Eva's profile photoFahad Ayaz's profile photo
Nick Li
great to read

Guido van Rossum

Shared publicly  - 
I just love the flowery language in this spam comment that Blogger intercepted for me:

"Its such as you learn my thoughts! You seem to grasp so much approximately this, such as you wrote the ebook in it or something. I think that you simply can do with some% to force the massage house a bit, however other than that this is magnificent blog. An excellent read. I will certainly be back." [link suppressed]
Ralf Haring's profile photoPat Le Cat's profile photoChuck McManis's profile photoNicholas Rumas's profile photo
+Michael McGuire thanks, I now know where to invest my money.
Add a comment...

Guido van Rossum

Shared publicly  - 
Do not send me email like this:

Hi Guido,
I came across your resume in a Google web search. You seem to have an awesome expertise on Python. I would be glad if you can reply my email and let me know your interest and availability.
Our client immediately needs a PYTHON Developers at its location in *, NJ. Below are the job details. If interested and available, kindly fwd me your updated resume along with the expected rate and the availability.


I might reply like this:

I'm not interested and not available.
Сергей Михайленко's profile photoSergey Golovin's profile photozhanwei lim's profile photoYanchi Tóth's profile photo
Pretend that you're interested and send them a resume. Much funnier.

Guido van Rossum

Shared publicly  - 
I am at my wits' end. In Office 2011 on the Mac, specifically Powerpoint, how do I turn off the automatic substitution of a smiley graphic when I type ":-)" ? I have turned off every single option under AutoCorrect and it still does this. :-(
Travis Heppe's profile photoJack Leow's profile photoGuido van Rossum's profile photoTed Hosmann's profile photo
+Jason Yeo Bingo! Thanks! The mouse-over option worked. (The Tools -> AutoCorrect didn't, I'd already tried that.) Comments closed.

Guido van Rossum

Shared publicly  - 
OH on python-dev: "This has come up before.  Classes have metaclasses (and _prepare_). Modules have loaders.  Poor, poor functions.  Because of the same concerns you've already expressed regarding the criticality of function performance, they miss out on all sorts of fun--inside their highly optimized box looking out at the other types showing off their cool new features all the time. It just isn't fair. :)"
Daniele Simonetti's profile photoMike Pelletier's profile photoFrancis Dagenais's profile photoCurtis Maloney's profile photo
+Mike Pelletier that's what I call "workaround" (almost the opposite of "solution" )

Guido van Rossum

Shared publicly  - 
HALP! The Python trademark is in danger in Europe. Please help if you've used the name Python in Europe for your business.
S. Sampson's profile photoOwen Wylde's profile photoGuido van Rossum's profile photoMichael Gmelin's profile photo
+Bill Anderson *We want have free trademarks prefixes* which could not be robbed/registered at all - it need change US law first. I could choose If I want free trademark which is not protected or registered with some protection.

Whatever to make is more serious what is "dilution" between "Coca-Cola", "Cola-Coca", "Hop-Cola", "Koka-Kola" it sometimes very subtle.

Quick solution is give prefix "Free Another X" so it give possibility use "Free Another Coca Cola" without risk of unpredictable lawyers attack - prefix should be long :)

Maybe currently is it defined as dilution == probably it is illegal - I do not know US law as good as it need to understand this but think that "dillution" with special prefixes should be introduced to allow free trademarks not only registered.

Law should be change since number of product increased and not all of us want have registered trademarks and fight to defend trademark against robbery.

It is stupid that I have to defend my trademark if I do not want and loose time instead invention - is not?
In his circles
264 people
Have him in circles
52,587 people
Writing and reviewing code
  • Dropbox
    Engineer (Python BDFL), 2013 - present
  • Google
    Senior Staff Software Engineer, 2005 - 2012
  • Elemental Security
    Senior Language Architect, 2003 - 2005
  • Zope Corporation
    Director of PythonLabs, 2000 - 2003
    Director of PythonLabs, 2000 - 2000
  • CNRI
    1995 - 2000
  • CWI
    Programmer, 1982 - 1995
  • SARA
    Student programmer, 1977 - 1982
Map of the places this user has livedMap of the places this user has livedMap of the places this user has lived
Holland - Virginia
Contact Information
Creator of the Python programming language.
Python's BDFL.
Bragging rights
My first computer was a Control Data mainframe.
  • University of Amsterdam
Basic Information