Slashdot Mirror


Interview With Python Creator Guido Van Rossum (techrocket.com)

The online programming school Tech Rocket just published a new interview with Guido van Rossum, the creator of Python. "Looking back I don't think I ever really doubted Python, and I always had fun," he tells the site. "I had a lot of doubts about myself, but Python's ever-increasing success, and encouragement from people to whom I looked up (even Larry Wall!), made me forget that."

He describes what it's like being Python's Benevolent Dictator for Life, and says that the most astonishing thing he's seen built with Python is "probaby the Dropbox server. Two million lines of code and counting, and it serves hundreds of millions of users." And he leaves aspiring programmers with this advice. "Don't do something you don't enjoy just because it looks lucrative -- that's where the competition will be fiercest, and because you don't enjoy it, you'll lose out to others who are more motivated."

11 of 222 comments (clear)

  1. Re: Why in the heck should a file server need 2M l by Anonymous Coward · · Score: 5, Insightful

    Because he understands the problem Dropbox is trying to solve better than you do.

  2. Re: Only One Question by __aaclcg7560 · · Score: 4, Informative

    Works as long as what you make in that language won't get too big.

    Two million lines of code for DropBox is pretty impressive for a script kiddie language.

  3. Re: Only One Question by Anonymous Coward · · Score: 5, Interesting

    Works as long as what you make in that language won't get too big.

    I think that's true of all languages.

    My impression (having written O(10k) line Python programs for fun) is that it's quite capable of implementing the kind of O(1m) line COBOL, PL/1 & C systems I worked on in the 80s and 90s - probably in a tenth of the size too. It's also infinitely better for "Rapid Application Development" (is RAD still a thing?) than the 4GLs and BASIC variants we used back then.

    Python is one of the few bright spots in the evolution of programming languages over the past 30 years. Too bad van Rossum fucked up the transition to version 3.

  4. Re:Interpreted languages should cease by __aaclcg7560 · · Score: 4, Informative

    Learn how to use a compiled language like Java.

    If you have a need for speed, compile Python code to C binary with Cython.

    http://cython.org/

  5. Re:Why in the heck should a file server need 2M li by 93+Escort+Wagon · · Score: 4, Insightful

    He meant to say 2 million functions in one line of code.

    We're talking about python, not perl.

    --
    #DeleteChrome
  6. He Didn't Ask the Big Question by speedplane · · Score: 5, Interesting

    I know this article was focused on Guido's softer side, but would have liked them to mention the elephant in the room: the move from Python 2 to 3. This been a huge resource drain on the entire community and many (including me) remain unconvinced that it was the right decision. It would have been nice if the topic was broached.

    --
    Fast Federal Court and I.T.C. updates
  7. Re: Only One Question by __aaclcg7560 · · Score: 5, Informative

    Here's a list. Only 30 out of the top 360 packages aren't ready for Python 3.

    http://py3readiness.org/

  8. Re:Python community so much nicer than Rust's? by im_thatoneguy · · Score: 5, Insightful

    What I'm most curious about is why the Python community is so much nicer to deal with than the Rust programming language's community.

    In my limited experience in the VFX world it's because people using Python are focused on actually creating usable products that solve people's problems. And I use the word "people" not "developers" in this instance because a lot of them are "non-programmers" solving problems that they themselves face. Python is a tool to them to make their lives better.

  9. Comment removed by account_deleted · · Score: 4, Insightful

    Comment removed based on user account deletion

  10. Re: Why in the heck should a file server need 2M l by silentcoder · · Score: 5, Interesting

    I suspect a lot of that code lies in redundancy and load-sharing systems. Python is notoriously bad at multithreading (so much so that most python coders prefer a library called multiprocess that fakes multithreading by spawning new python processses entirely) - so load-balancing, load-sharing and redundancy under heavy use are problems python is particularly bad at (not the language so much as the architecture of the implementation to be fair).

    So it's likely a great deal of the code is dedicated to solutions to those difficult problems. It also rather depends on how you count it. Other things that could contribute large amounts of code:
    - They likely use a custom application server (in order to implement all that redundancy and load-sharing)
    - There's likely a significant amount of debug logs in there, and extensive logging throughout (you need that if you're going to keep something like this maintained and find/fix problems quickly).

    Finally - the comparison is not actually very fair. The Kernel is written in C - a language designed for brevity, while python is much more verbose. Python is not a language that encourages lots of one-liners, except where they can be used to avoid deep nesting (which is actively discouraged) or in purely functional calls (which are available but only encouraged for specific use-case determined algorithms where the non-functional version would actually be harder to read).

    So the exact same algorithm is likely to use more lines in python than in C - and be a lot easier to read. I was not surprised to learn from this interview that a lot of his own early work was in Pascal and Algol - you can see a lot of the Wirth philosophy in Python. Python in a very real sense struck a perfect balance between readable verbosity and cruft. Java is too far to the other side, you need about 100 lines just to show a simple "exit on click" button on the screen and almost none of them have anything to do with the task at hand. The same thing in TCL/TK will take one line, in python it's about 3 lines (depending what GUI library you use).
    I recently developed a fairly comprehensive GUI library in python. I was building an RPG in Pygame (need to pick that up again sometime) and pygame has no gui elements and none of the libraries are maintained, so I wrote my own. Python made this ridiculously easy for the most part. Hell at one point I actually wrote a recursive object (that is to say - an class in which one of the methods would instantiate another instance of the same class it's a method off). The class was a box containing a list of items you can select (used for things like the inventory) but when you need to add something to a box like that (say in the game editor - adding treaures into a chest) it instantiates another instance of itself, with different parameters to show you the list of possible things you can add.
    That took no clever trickery whatsoever, the method just instantiated the class and operated on the object, python handled all the recursion magic entirely transparently.

    That gave me (as a long time python developer) an entirely new respect for just how powerful the language really is. I also strongly suspect that in most languages that activity would have been far more complex, many languages don't even allow recursive classes after all.

    --
    Unicode killed the ASCII-art *
  11. "syntax error: go to hell and hunt for it" by Pseudonymous+Powers · · Score: 5, Funny

    Interview With Python Creator Guido Van Rossum

    Well, I tried to read it, since I'm a huge fan of Python. But one of the paragraphs was indented in a slightly different way than all the others, so I couldn't.