Profile

Cover photo
Guido van Rossum
Works at Dropbox
Attended University of Amsterdam
Lives in California
51,701 followers|4,240,040 views
AboutPostsPhotosVideos

Stream

Guido van Rossum

Shared publicly  - 
395
248
Sarath C's profile photoandrew jang's profile photovvalter a's profile photoFahad Ayaz's profile photo
18 comments
Nick Li
 
great to read

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 (http://exple.tive.org/blarg/2013/10/22/citation-needed/). 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 http://homepages.cwi.nl/~steven/abc/qr.html#EXPRESSIONS.)

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.
728
224
Nicolas Évrard's profile photoSaravanan Thirumuruganathan's profile photoNicolau Werneck's profile photoKevin Houlihan's profile photo
20 comments
 
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. https://www.facebook.com/Dropbox/posts/10151761640691756
64
7
Pedro Jose Pezzarini's profile photoDalton Hubble's profile photoGuido van Rossum's profile photoMarcos Luis Ortiz Valmaseda's profile photo
3 comments
 
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.
136
10
Sven Guckes's profile photoJohannes Weiß's profile photoRino Severino's profile photoJoseph DeVincentis's profile photo
28 comments
 
Another problem is: when I want to donate, google wallet says they do not ship to Poland. 

Guido van Rossum

Shared publicly  - 
165
42
Peter Binderup's profile photoGuido van Rossum's profile photoMichael Gmelin's profile photoChris DiBona's profile photo
20 comments
 
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.
Have him in circles
51,701 people

Guido van Rossum

Shared publicly  - 
 
In the memory lane department: Doing some research on Base64 led me to RFC 3548 (http://tools.ietf.org/html/rfc3548) which references as [8] a post by Zooko; however the link seems to go to the wrong post. Viewing the month of those archives (http://zgp.org/pipermail/p2p-hackers/2001-September/date.html) it's like all the usual suspects: Bram Cohen, +Gregory P. Smith, +Zooko Wilcox-O'Hearn...
30
7
Yatharth Agarwal's profile photoGeofrey Sanders's profile photoGuido van Rossum's profile photoMathias Gumz's profile photo
13 comments
 
+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  - 
 
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.
"""
1636
569
Сергей Михайленко's profile photoSergey Golovin's profile photozhanwei lim's profile photoYanchi Tóth's profile photo
56 comments
 
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. :-(
46
3
Travis Heppe's profile photoJack Leow's profile photoGuido van Rossum's profile photoTed Hosmann's profile photo
12 comments
 
+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. :)"
44
3
Daniele Simonetti's profile photoMike Pelletier's profile photoFrancis Dagenais's profile photoCurtis Maloney's profile photo
10 comments
 
+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.
656
302
S. Sampson's profile photoOwen Wylde's profile photoGuido van Rossum's profile photoMichael Gmelin's profile photo
70 comments
 
+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?
People
Have him in circles
51,701 people
Work
Occupation
Writing and reviewing code
Employment
  • 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
  • BeOpen.com
    Director of PythonLabs, 2000 - 2000
  • CNRI
    1995 - 2000
  • CWI
    Programmer, 1982 - 1995
  • SARA
    Student programmer, 1977 - 1982
Places
Map of the places this user has livedMap of the places this user has livedMap of the places this user has lived
Currently
California
Previously
Holland - Virginia
Contact Information
Home
Email
Story
Tagline
Creator of the Python programming language.
Introduction
Python's BDFL.
Bragging rights
My first computer was a Control Data mainframe.
Education
  • University of Amsterdam
Basic Information
Gender
Male