Slashdot Mirror


Interviews: Q&A With Guido van Rossum

Guido van Rossum is best known as the creator of Python, and he remains the BDFL (Benevolent Dictator For Life) in the community. The recipient of many awards for his work, and author of numerous books, he left Google in December and started working for Dropbox early this year. A lot has happened in the 12 years since we talked to Guido and he's agreed to answer your questions. As usual, ask as many as you'd like, but please, one question per post.

242 comments

  1. From Google to Dropbox by nurhussein · · Score: 4, Interesting

    Hi,

    What prompted the move from Google to Dropbox? What did you do at Google, and what are you going to do at Dropbox?

  2. GIL by Anonymous Coward · · Score: 5, Interesting

    When will you remove the GIL?

    1. Re:GIL by HaZardman27 · · Score: 4, Informative

      I think they've always been open about the fact that the GIL will be removed once someone offers a good solution for removing it.

      --
      Apparently wizard is not a legitimate career path, so I chose programmer instead.
    2. Re:GIL by NeverWorker1 · · Score: 1

      IronPython and Jython have no GIL. Unfortunately, IronPython is no longer being maintained and the last release was over a year ago.

    3. Re:GIL by TeknoHog · · Score: 1

      It will be removed only if the defendant is found not GIL-cup.

      --
      Escher was the first MC and Giger invented the HR department.
    4. Re:GIL by strombrg · · Score: 1

      Rumor has it that patches were submitted for removing the GIL from CPython once, but they made uniprocessor workloads so much slower that the patches were rejected.

    5. Re:GIL by strombrg · · Score: 1

      Also, CPython having a GIL supposedly makes it easier to write C extension modules, which may be partially responsible for the large number of such modules for CPython.

    6. Re:GIL by Anonymous Coward · · Score: 0

      9/10 trolling, actually looked up "Knuth-Chalmers". Lost one point for AC; you'll get fewer hits that way.

    7. Re:GIL by Joey+Vegetables · · Score: 1

      Not directly by Microsoft, granted, but it certainly looks maintained to me, with a release candidate dated two days ago.

    8. Re:GIL by occasional_dabbler · · Score: 2

      Python has multi-threading, multi processing and wrappers for C and Fortran. The GIL is not holding back anything.

      --
      "Our opponent is an alien starship packed with atomic bombs," I said. "we have a protractor"
    9. Re:GIL by RamiKro · · Score: 1

      Like it or not, it's holding back performance:
      http://www.dabeaz.com/python/GIL.pdf

    10. Re:GIL by defcon-11 · · Score: 1

      The core areas where Python is popular are all areas where threading is not very useful, either because the code is executed in a distributed fashion across many nodes (scientific computing, big data, web), because there are better concurrency paradigms (asynchronous networking), or because it's used for small scripting tasks that execute within a couple of minutes (system admin, text parsing, web scraping). Not surprisingly, Python isn't very popular for the type of tasks where threading is advantageous (games, desktop apps). I don't think there is much motivation to remove the GIL because it would require an almost complete rewrite of cPython and provide very little benefit to existing users in Python's core competency areas.

  3. Privacy by Anonymous Coward · · Score: 0

    What is your stance in the debate about privacy for internet users. Not necessarily regarding the NSA but also commercial companies. Especially because both Google and Dropbox handle huge amount of private data of their customers. Does this stroke with the philosophy in which Python was developed?

  4. Who's watching by Anonymous Coward · · Score: 5, Interesting

    Does the NSA have access to our Dropbox contents, as is apparently the case with Microsoft Skydrive?

    1. Re:Who's watching by lister+king+of+smeg · · Score: 1

      did you look at the prism slides? guess whos logo is up there with ms, google, skype, and yahoo? dropbox. they have to listen to nation security letters and blanket fisa court orders just like everyone else.

      --
      ---Saying gnome 3 is better than windows 8 not so much a compliment as it is damning with light praise.
    2. Re:Who's watching by shutdown+-p+now · · Score: 1

      NSA has access to any contents that is hosted on the servers that are located on the US soil.

    3. Re:Who's watching by Jonner · · Score: 1

      Does the NSA have access to our Dropbox contents, as is apparently the case with Microsoft Skydrive?

      There's no need to ask Guido about this and there's no way the company's lawyers and/or the NSA would allow him to answer even if he knew any details. Simply assume that if you didn't encrypt your data on your own machine, the NSA can intercept it.

  5. BC Breaking changes in 3 by PktLoss · · Score: 5, Interesting

    Do you regret the swath of backwards incompatible changes in version 3 that have lead to such slow uptake, or do you feel it was the best move for the language moving forward?

    1. Re:BC Breaking changes in 3 by HaZardman27 · · Score: 4, Interesting

      I would be very interested in seeing the answer to this. As a Python programmer I've nearly entirely avoided using Python 3.x in favor of 2.7. I just see fewer advantages to it than disadvantages (having to update old code, learning which libraries I use support 3.x, etc.). The Python community seems divided between 2.7 and 3, and this is problematic for a language designed to be clean with a "correct" and "pythonic" way of doing things.

      --
      Apparently wizard is not a legitimate career path, so I chose programmer instead.
    2. Re:BC Breaking changes in 3 by Anonymous Coward · · Score: 0

      follow-up: having decided to break backward compatibility, do you regret not making more sweeping changes to python 3 to make it more compelling? Things like adding better destructuring assignment, pattern matching, etc?

    3. Re:BC Breaking changes in 3 by phantomfive · · Score: 0

      This is my #1 reason for not using Python. Why use a language that has no commitment to backwards compatibility when there are plenty that do?

      --
      "First they came for the slanderers and i said nothing."
    4. Re:BC Breaking changes in 3 by Anonymous Coward · · Score: 1

      stop crying, just upgrade. it is not so difficult.

      Java people whined like you and they ended up with broken language.

    5. Re:BC Breaking changes in 3 by TeknoHog · · Score: 2

      One could argue that Python is learning from some of the early mistakes. For example print function vs. statement. On the other hand, one of the key strengths of Python is having lots of nice libraries by default, and these have undergone changes independent of the 2 -> 3 core language changes. It's a little inconvenient, but libraries evolve, no matter what language you use.

      --
      Escher was the first MC and Giger invented the HR department.
    6. Re:BC Breaking changes in 3 by gr8_phk · · Score: 3, Insightful

      This is my #1 reason for not using Python. Why use a language that has no commitment to backwards compatibility when there are plenty that do?

      Why use a language that is interested in "backwards compatibility" when Python is into "forward compatibility". You can "import from future *" to make your code use features that are not yet in the latest release. Why embrace legacy ways of doing things when you can be focused on the future instead? I find the push to make it more perfect for the future a plus even if it means short term pain.

    7. Re:BC Breaking changes in 3 by sydneyfong · · Score: 2

      Name me a mainstream programming language which has only been intentionally backwards incompatible *once* in its 20 year history.

      I can only think of C.

      --
      Don't quote me on this.
    8. Re:BC Breaking changes in 3 by wiredlogic · · Score: 2

      You know it is entirely possible to write 2.7 code that works with nothing more than a pass through 2to3. That does mean that any libraries you depend on are available for 3.x but the problem of lacking support from 3rd party libraries is beginning to diminish as more are ported over at an increasing rate.

      You can also start training yourself for the switch to Python 3 now by using all of the from __future__ imports which will also increase the ease of getting 2to3 output working when any missing support is implemented in the future. I used this approach on a 10K SLOC library that required a manual fix to a single line of code to get running on 3.x.

      --
      I am becoming gerund, destroyer of verbs.
    9. Re:BC Breaking changes in 3 by xiox · · Score: 1

      You know it is entirely possible to write 2.7 code that works with nothing more than a pass through 2to3. That does mean that any libraries you depend on are available for 3.x but the problem of lacking support from 3rd party libraries is beginning to diminish as more are ported over at an increasing rate.

      It's also possible to write code for 2.6/2.7 which works fine with 3.3+. With the aid of the six module or similar ideas you can work around the differences. Many people think this is the best way to have joint compatibility with python 2 and 3. It also makes it possible to do the development with python3, which running 2to3 doesn't allow. As others have mentioned, there is no good 3to2.

    10. Re:BC Breaking changes in 3 by MetalliQaZ · · Score: 1

      Agreed.

      --
      "Here Lies Philip J. Fry, named for his uncle, to carry on his spirit"
    11. Re:BC Breaking changes in 3 by Anonymous Coward · · Score: 0

      Why use a language that has no commitment to backwards compatibility when there are plenty that do?

      You should switch to PHP. You'd be right at home.

      Also, your newsletter would get VERY interesting!

    12. Re:BC Breaking changes in 3 by phantomfive · · Score: 1

      Because I can avoid short-term and long-term pain. It's not like they're coming up with anything revolutionary there. We have good languages that maintain backwards compatibility.

      --
      "First they came for the slanderers and i said nothing."
    13. Re:BC Breaking changes in 3 by phantomfive · · Score: 1

      We're past the point where we need to use languages that make basic mistakes. I'm over that. Enjoy rewriting your code at the next major release.

      --
      "First they came for the slanderers and i said nothing."
    14. Re:BC Breaking changes in 3 by phantomfive · · Score: 1

      A great reason to use C.

      --
      "First they came for the slanderers and i said nothing."
    15. Re:BC Breaking changes in 3 by Laxori666 · · Score: 1

      I'm still using Python 2.6. No real reason to change yet and this way I don't have to deal with a bunch of issues that'll come from switching. Maybe when I start a new project that will not have to interact with anything I've written in 2.6 I'll try 3.2.

    16. Re:BC Breaking changes in 3 by luis_a_espinal · · Score: 1

      This is my #1 reason for not using Python. Why use a language that has no commitment to backwards compatibility when there are plenty that do?

      Sometimes backward compatibility is not necessarily a good thing. Look how long Windows was dragged by the back-ward compatibility specter.

      Or another example is Java. For fucks' sake, we never got Vector and Hashtable deprecated because ZOMG backward compatibility. And as result, we still get idiots using those god-forsaken-uber-synchronized classes instead of using their modern List and Map implementation counterparts.

      I'm not saying that the Python 3.0 breakage from 2.7 is necessarily a good thing (that all depends of who uses or implements what and for what goal.) But that is not to say that backward compatibility is always a good thing. Counter examples of this abounds in the software world.

    17. Re:BC Breaking changes in 3 by phantomfive · · Score: 1

      Windows sucks, but not because of backwards compatibility. That is the positive aspect of windows.

      --
      "First they came for the slanderers and i said nothing."
    18. Re:BC Breaking changes in 3 by luis_a_espinal · · Score: 1

      Windows sucks, but not because of backwards compatibility. That is the positive aspect of windows.

      Bleh, subjective, emotional. And I love Linux, and all *nix flavors in general (except HP-UX), been working with them for years (in web, enterprise and embedded). Still, even I won't be found saying that in such gross generic terms.

    19. Re:BC Breaking changes in 3 by phantomfive · · Score: 1

      Um, good for you?

      --
      "First they came for the slanderers and i said nothing."
  6. Interviews by semanticgap · · Score: 4, Interesting

    Guido

    When you interviewed at Google - did they ask you brainteaser or hard algorithmic questions, and if so, what did you think of it?

    Cheers!

    1. Re:Interviews by hobarrera · · Score: 1

      Same question, but at dropbox.

    2. Re:Interviews by Tablizer · · Score: 1

      When you interviewed at Google - did they ask you brainteaser or hard algorithmic questions

      Yes, they asked him to fix Python 3 ;-)

  7. When is python going to support parallel procesing by Anonymous Coward · · Score: 0, Interesting

    When is python going to support parallel processing and multiple threads?
    Every other modern programming language does.

  8. Re:When is python going to support parallel proces by NeverWorker1 · · Score: 2

    Python does support threading. The issue is that CPython implementation has the GIL to contend with. IronPython did away with the GIL, but it's no longer being maintained. Also, http://interviews.slashdot.org/comments.pl?sid=4105821&cid=44608065 beat you too it.

  9. Why did Python avoid some common "OO" idioms? by i_ate_god · · Score: 3, Interesting

    Interfaces, abstract classes, private members, etc... Why did python avoid all this?

    --
    I'm god, but it's a bit of a drag really...
    1. Re:Why did Python avoid some common "OO" idioms? by knapper_tech · · Score: 2

      Ultimately, since Python is dynamic down to being able to override the data model of an object on the fly, there would be no point. There is no point in any program really. Underscores do just as good of job as public/private declarations at telling me which parts of the API are for users and which are for the class. I might use private attributes and methods, but I ought to know what I'm doing if I do. Any program's data can be made public, and the more frequently the need arises, the better programmers get at using introspection to uncover the private members, and suddenly there's no point.

      One of the older justifications given for encapsulation and header files was to be able to sell binary objects. If you can't read the source for the library, you can't figure out how all the parts work, so you better use the public API or you might really screw something up. This is totally irrelevant in the world of open source software. Underscores are a totally valid solution to telling other programmers who might modify the encapsulation what the intent was at one point, giving them a strong hint that they need to dig deeper before messing around. If encapsulation is a gentleman's agreement, why does it need a language feature?

      --
      "There are some people that if they don't know, you can't tell them." ~ Louis Armstrong
    2. Re:Why did Python avoid some common "OO" idioms? by Rob+Riggs · · Score: 1

      Interfaces, abstract classes, private members, etc... Why did python avoid all this?

      I'm curious -- how many dynamically-typed languages have these features?

      --
      the growth in cynicism and rebellion has not been without cause
    3. Re:Why did Python avoid some common "OO" idioms? by strombrg · · Score: 1

      Python is duck typed - no need for interfaces, though it'd be nice to have them in pylint. Python has abstract classes. Python has a weak form of private members.

    4. Re:Why did Python avoid some common "OO" idioms? by oldhack · · Score: 1

      Interfaces, abstract classes, private members, etc... Why did python avoid all this?

      Those things are irrelevant in Python because Python's "types" are defined by what they actually do, not what they declare to do.

      --
      Fuck systemd. Fuck Redhat. Fuck Soylent, too. Wait, scratch the last one.
    5. Re:Why did Python avoid some common "OO" idioms? by jon3k · · Score: 1

      I'm not a python programmer by any stretch of the imagination, but aren't private methods more by convention and less through actual strict enforcement? As in, you can declare a member private but it can still be accessed, it just "shouldn't be" by convention?

    6. Re:Why did Python avoid some common "OO" idioms? by wiredlogic · · Score: 1

      Python does have abstract classes. They have also been backported to 2.6 for those that want to use them before transitioning to 3.x. See the numbers module for an example of their use.

      --
      I am becoming gerund, destroyer of verbs.
    7. Re:Why did Python avoid some common "OO" idioms? by Anonymous Coward · · Score: 0

      Isn't that also the case in C++? I can think of two ways off the top of my head to access a private function from outside the class in C++.

    8. Re:Why did Python avoid some common "OO" idioms? by rekoil · · Score: 1

      In python, that's correct. There's some method name mangling to ensure that devs writing code calling private methods know what they're doing, but otherwise it's allowed. In other languages (Java for example) private methods are completely hidden from outside classes.

    9. Re:Why did Python avoid some common "OO" idioms? by chuckinator · · Score: 1

      Yes, that is the case with C++. Take your header file and move the method or member under a public: header. You can play with private and protected interfaces all day long if you want to. You're probably going to break something, but public/protected/private is only checked and enforced at compile time. It causes no changes whatsoever to the binary objects that get output from the system. To actually get it to enforce at a binary level would require updates to the linker object format.

    10. Re:Why did Python avoid some common "OO" idioms? by Anonymous Coward · · Score: 0

      Interfaces exist to add flexibility to a type system. Python's type system is already infinitely flexible.

      Abstract classes exist to aid static type checking. Python has no static type checking.

      Private members are more a cultural thing, and Python comes down on the side of "we're all adults here".

      C++ and Java don't define OO. :) OO is about objects, not classes.

    11. Re:Why did Python avoid some common "OO" idioms? by occasional_dabbler · · Score: 1

      If you weren't AC and I hadn't posted you'd get a +1 for this

      --
      "Our opponent is an alien starship packed with atomic bombs," I said. "we have a protractor"
    12. Re:Why did Python avoid some common "OO" idioms? by Anonymous Coward · · Score: 1

      In Java, you can access private methods and attributes. It's a bit more complicated but not much.

    13. Re:Why did Python avoid some common "OO" idioms? by shutdown+-p+now · · Score: 1

      The C++ language specification makes it undefined behavior (ODR violation) to modify a header as you propose. It's not enforced by compilers (usually; they have been gaining some forms of ODR checking lately), but then member access level has never been a security mechanism in C++. Point being, if you use hacks like that, your code may break with no warning.

      In Python, in contrast, identifiers beginning with an underscore are mangled in a special but documented way. So they're private in a sense that code outside the class cannot accidentally access them, but they can be easily accessed intentionally without triggering any kind of implementation-defined semantics or undefined behavior.

  10. Multi-line lambdas by NeverWorker1 · · Score: 3, Interesting

    One of the most common complaints about Python is the limitations of its lambdas, namely being one line only without the ability to do assignments. Obviously, Python's whitespace treatment is a major part of that (and, IIRC, I've read comments from you to that effect). I've spent quite a bit of time thinking about possible syntax for a multi-line lambda, and the best I've come up with is trying to shoehorn some unused (or little used) symbol into a C-style curly brace, but that's messy at best. Is there a better way, and do you see this functionality ever being added?

    1. Re:Multi-line lambdas by blamelager · · Score: 3, Funny

      >>> from __future__ import braces

    2. Re:Multi-line lambdas by NeverWorker1 · · Score: 2

      Exactly. It's terribly unpythonic. Sadly though, I don't have a better way to do multi-line lambdas.

    3. Re:Multi-line lambdas by Anonymous Coward · · Score: 0

      or why even make a distinction between lambdas and named functions? or why not just make everything an expression, if assignment returned the assigned value you could use it in a lambda.

    4. Re:Multi-line lambdas by Anonymous Coward · · Score: 0

      Sure, but when is adding a name to a longer function really so inconvenient?

      It's a minor part of the bigger mistake in emphasising OOP at the expense of clean functional programming.

      Never understood why some people seem to love spaghetti object hierarchies.

    5. Re:Multi-line lambdas by knapper_tech · · Score: 1

      Keep in mind that Python uses a stack machine VM and that this makes function call overhead large, as each call requires a new stack frame to be set up. A strong lambda will lead to creep. Then again, why don't we have a register based VM?

      --
      "There are some people that if they don't know, you can't tell them." ~ Louis Armstrong
    6. Re:Multi-line lambdas by strombrg · · Score: 1

      You're almost always better off using a generator expression or list comprehension instead of a lambda. Also, multiline lambdas detract from readability.

    7. Re:Multi-line lambdas by DriedClexler · · Score: 4, Insightful

      Solution:

      1) Make it a named function.
      2) Place the name where you'd otherwise put the lambda.

      It works, although you have to deal with the horror of a reusable function defined a few lines up.

      --
      Information theory is life. The rest is just the KL divergence.
    8. Re:Multi-line lambdas by rmstar · · Score: 1

      Sure, but when is adding a name to a longer function really so inconvenient?

      Well, it's yet another name. And one that would not have been needed if python lambdas were proper lambdas.

      It's all a matter of convenience, and tripping over a disappointing and gratuitious limitation isn't nice either.

    9. Re:Multi-line lambdas by Gary+van+der+Merwe · · Score: 1

      SyntaxError: not a chance
      LOL !

    10. Re:Multi-line lambdas by MetalliQaZ · · Score: 1

      I disagree. I think the one-liners keep it easy to read. If you need more lines just make a limited-scope function. Is there some shortage on function names to choose from?

      --
      "Here Lies Philip J. Fry, named for his uncle, to carry on his spirit"
    11. Re:Multi-line lambdas by blamelager · · Score: 1

      ;-)

      kind of answers that one, doesn't it?

      perhaps someone ought to fork it and fix it up... http://writeonly.wordpress.com/2010/04/01/whython-python-for-people-who-hate-whitespace/

    12. Re:Multi-line lambdas by Anonymous Coward · · Score: 0

      Switching to a register VM wouldn't change that. You still need a stack structure for function calls. A register VM is simply easier to optimize. But without a JIT compiler, a register VM doesn't buy you that much.

      Lua has a register VM, and it's also the fastest scripting language out there, but not because of the register VM so much as the semantics of the language.

      Lua also has real much more sophisticated coroutines (i.e. you don't need to write trampolines to get multi-function yielding) and a very sane C API, and it's still ridiculously faster than Python.

      LuaJIT is 100% compatible with stock Lua, but not only faster, but faster than Python JIT implementations. Again, because of certain language design choices.

    13. Re:Multi-line lambdas by Laxori666 · · Score: 1

      This doesn't work if the lambda is embedded inside of an expression. I have found a reasonable (read: hacky and nobody should do it) solution: have the lambda return a tuple. Each element in the tuple is an expression and will get executed in order. The only problem is you can't do variable assignment, but everything that's an expression works...

    14. Re:Multi-line lambdas by defcon-11 · · Score: 1

      Use coffeescript instead?

    15. Re:Multi-line lambdas by defcon-11 · · Score: 1

      They still aren't full lambdas, since you can't mutate closed variables inside of the inner function.

    16. Re:Multi-line lambdas by HiThere · · Score: 1

      OTOH, Lua's handling of Unicode is as piss-poor as is C's. In both cases there are historical reasons why they developed the way they did, but the result is that they are nigh to unusable for many applications. (I'm not real thrilled with Java's 16-bit chars either. Either utf-8 or utf-32 is far superior.)

      In particular, for my purposes no language that makes it difficult to determine the general category of a character is usable. Obviously this needs to be a library function, but nearly as obviously it needs to be a part of the standard library.

      --

      I think we've pushed this "anyone can grow up to be president" thing too far.
    17. Re:Multi-line lambdas by DriedClexler · · Score: 1

      You can mutate them within the scope of that function, though.

      If you're trying to mutate them *outside* the scope of that function, you need to go to a programmer re-education camp.

      --
      Information theory is life. The rest is just the KL divergence.
    18. Re:Multi-line lambdas by Warbothong · · Score: 1

      Lambdas can only contain one expression, but that expression can have side effects. For example, we can wrap statements up into functions (which they should be anyway), we can call these functions from inside a tuple (the elements in a tuple are guaranteed to be evaluated in order) and we can get mutable local state by pushing and popping the elements of a list.

      I wrote a rather rambly blog post about doing this http://chriswarbo.net/index.php?page=news&type=view&id=admin-s-blog%2Fanonymous-closures-in
      The end result is an embedded domain-specific language (EDSL) for lambda calculus with de Bruijn indices, built using Python's numbers and lists.

    19. Re:Multi-line lambdas by shutdown+-p+now · · Score: 1

      One thing of note is that the need for multiline lambdas is less in Python than it is in some other languages, because functionality that they are used for is covered by other features. I suppose that's just part of the Python philosophy - if something is common enough, add support for it directly in the language; and if it's not, then a bit of extra verbosity (with named functions in this case; they can still be closures, so the difference is fairly minor) is tolerable.

      Now, the two common use cases for multiline lambdas are resource lifetime control and async callback chaining. The first one is handled in Python with a fairly generic "with" statement, and the second is handled by generators/"yield".

    20. Re:Multi-line lambdas by shutdown+-p+now · · Score: 1

      Um, yes, you can.

      def outer():
        x = 1
        def inner():
          nonlocal x
          x = 2
        inner()
        print(x) # 2

      Yes, this is Python 3. But why ask questions about an old language version that's only there for the sake of backwards compatibility?

  11. Re:Loving python by dmbasso · · Score: 2


    if you want to joke about indentation:
        at least make it syntactically sound

    while you're at it:
        follow pep8

    --
    `echo $[0x853204FA81]|tr 0-9 ionbsdeaml`@gmail.com
  12. Why is Python so awesome? by Laxori666 · · Score: 1

    Hate to throw a curveball here, but answer honestly: why is Python such an awesome language?

    1. Re:Why is Python so awesome? by Anonymous Coward · · Score: 0

      It isn't.

    2. Re: Why is Python so awesome? by Anonymous Coward · · Score: 0

      Because it writes and reads like pseudocode, but works.

    3. Re: Why is Python so awesome? by TeknoHog · · Score: 1

      Because it writes and reads like pseudocode, but works.

      To elaborate a little, consider the phrase "write once, run everywhere". Do you ever write a program just once, and it runs correctly straight away? Python is the only language where I've experienced that, albeit after years of getting used to it. It's not perfect, though — I wonder if the same syntactical ingenuity could work with a really powerful language such as Fortran 90+...

      It's a bit like the English language and IPA — why don't we just write everything the way it's pronounced? Would it make a language any less powerful if they made it easier to write? (My native language is Finnish, which is pretty much phonetic.)

      --
      Escher was the first MC and Giger invented the HR department.
    4. Re:Why is Python so awesome? by occasional_dabbler · · Score: 1
      Well, actually, it is. It has available libraries to do everything and it has a ridiculously easy-to-use wrapper for Fortran in f2py. I keep a repo on Ubuntu One and I can code on my x64 kubuntu netbook, my Windows lappy or G5 PPC kubuntu box without changing anything except the build script to call f2py.

      The point being: it is awesome because it is so flexible and so well supported.

      --
      "Our opponent is an alien starship packed with atomic bombs," I said. "we have a protractor"
  13. Best & worst of Python? by Laxori666 · · Score: 2

    Compound question here: what part of Python is or became your favorite, and what's the worst thing, something that you would change if you knew now what you did then?

  14. One thing different by NeverWorker1 · · Score: 5, Interesting

    If you could go back to the very start and change one thing about Python, what would it be and why?

    1. Re:One thing different by Anonymous Coward · · Score: 1, Funny

      Add curly braces. Duh.

    2. Re:One thing different by MetalliQaZ · · Score: 1

      Gotta be the half-assed initial support for OO. Either that or the print statement :P

      --
      "Here Lies Philip J. Fry, named for his uncle, to carry on his spirit"
    3. Re:One thing different by TeknoHog · · Score: 1

      Gotta be the half-assed initial support for OO. Either that or the print statement :P

      Python 3.1.5 (default, Apr 12 2013, 15:09:42)
      [GCC 4.7.2] on linux2
      Type "help", "copyright", "credits" or "license" for more information.
      >>> print("What's a print statement?")
      What's a print statement?
      >>> print "Beats me."
      File "<stdin>", line 1
      print "Beats me."
      ^
      SyntaxError: invalid syntax
      >>>

      --
      Escher was the first MC and Giger invented the HR department.
  15. PyPy by Btrot69 · · Score: 5, Interesting

    Do you see PyPy as the future ? http://pypy.org/
    Or do you remain unconvinced, and -- if so -- why ?

    1. Re:PyPy by Anonymous Coward · · Score: 0

      Do you see PyPy as the future ? http://pypy.org/
      Or do you remain unconvinced, and -- if so -- why ?

      +1 I'd love to know

    2. Re:PyPy by occasional_dabbler · · Score: 3, Interesting

      Me too. In fact my question: Do you endorse PyPy?

      --
      "Our opponent is an alien starship packed with atomic bombs," I said. "we have a protractor"
  16. How to learn from you, with you... by djupedal · · Score: 1

    Do you take on interns or devs that want to learn by doing while sitting in the same room w/you?

  17. Tail recursion by NeverWorker1 · · Score: 1

    You've stated (http://neopythonic.blogspot.com/2009/04/tail-recursion-elimination.html) that you consider tail recursion to be "unpythonic." Could you elaborate on that a little more. What about algorithms that are by their very nature recusive? I've found that a combination of memoization and tail recursion can, under the right circumstance, provide wonderfully clear code without taking too much of a performance hit, and Python's decorator facility always seemed more or less ideal to me for that sort of application.

    1. Re:Tail recursion by strombrg · · Score: 1

      Tail recursion can be hard to debug - no stack frames to look back at.

    2. Re:Tail recursion by NeverWorker1 · · Score: 1

      That's one of Guido's concerns in the blog post I linked.

    3. Re:Tail recursion by Anonymous Coward · · Score: 0

      Actually, while TR*E* is debatable due to that point, in that article Guido goes a step further to basically call out any type of recursion.

    4. Re:Tail recursion by MetalOne · · Score: 1

      One interesting thing here is that in LISP you are always taking the first and rest of a list and then recursing on the rest. This is not efficient with the Python list(dynamic array). You would need to use deque maybe or roll your own linked list. The linked list would not be efficient to pass to functions expecting a regular list.

  18. Python in the browser ? by Btrot69 · · Score: 3, Informative

    Over the years, there have been several attempts to create a sandboxed version of python that will safely run in a web browser.
    Mostly this was because of problems with Javascript.
    Now that Javascript works -- and we have nice things like CoffeeScript -- is it time to give up on python in the browser ?

    1. Re:Python in the browser ? by strombrg · · Score: 1

      Python, as a plugin, would require adoption by Chrome, Firefox, Internet Explorer, Opera - I doubt all four of these would all agree to support Python as a plugin. However, it's possible to compile Python to javascript. Most of these transpile individual Python programs to JavaScript, but one, empythoned, actually compiles CPython 2.x to JavaScript using LLVM's JavaScript backend.

    2. Re:Python in the browser ? by XcepticZP · · Score: 1

      This. I'd very much be curious to hear more info about python in the browser. It's an environment that's been pretty much taken over by Javascript. Even searching for information yields very little information on the topic, as if it's being drowned out by all the Javascript noise.

    3. Re:Python in the browser ? by occasional_dabbler · · Score: 1

      Hmmm. I've just started looking at PyJamas. Python to JS compiler. Seems very powerful

      --
      "Our opponent is an alien starship packed with atomic bombs," I said. "we have a protractor"
    4. Re:Python in the browser ? by Anonymous Coward · · Score: 0

      AFAIK, the only way to run Python directly in the browser is with Internet Explorer and ActiveState Python, which is obviously not feasible for most people. Other browsers simply don't support it.

  19. Scalar context by Anonymous Coward · · Score: 0

    Why doesn't range(['a', 'b', 'c']) equal [0, 1, 2]?

    -- Just another Perl hacker

    1. Re:Scalar context by sunami · · Score: 1

      Traceback (most recent call last):
        File "<pyshell#0>", line 1, in <module>
          range(['a', 'b', 'c'])
      TypeError: range() integer end argument expected, got list.

    2. Re:Scalar context by dkleinsc · · Score: 1

      There's a difference in design philosophies which explains the difference perfectly well. From pep-20:

      Explicit is better than implicit.

      The Python way of doing what you want to do is:
      range(len(['a', 'b', 'c']))
      That way, someone reading it doesn't have to look up the range function to know why the interpreter treated ['a','b','c'] as equivalent of 3.

      By contrast, perl is built with implicit assumptions all over the place so that a programmer experienced in perl doesn't have to type as much. The best known example of this is the $_ variable, which means all sorts of things depending on context.

      Neither one is wrong, per se, but the difference reflects different language goals.

      --
      I am officially gone from /. Long live http://www.soylentnews.com/
    3. Re:Scalar context by MetalOne · · Score: 1
      Its a little hard to know what your asking for since the above makes no sense in Python. range is used to generate a list.

      eg.

      range(5) -> [0, 1, 2, 3, 4] # n numbers starting at 0

      range(3, 7) -> [3, 4, 5, 6] # [start, end)

      range(3, 15, 2) -> [3, 5, 7, 9, 11, 13] # [start, end) with step increment

      range(14, 2, -2) -> [14, 12, 10, 8, 6, 4] # using a negative increment

      It goes upto but not including the last item.

      If you were trying to compare lists, you can't compare characters and integers because they have different type. You could do

      [ord('a'), ord('b'), ord('c')] == [97, 98, 99] -> True

  20. Another BDFL by Anonymous Coward · · Score: 4, Interesting

    What is your view on the tone that Linus uses on the LKML? Do you think it actually provides any benefits or just drives away would-be contributors?

    1. Re:Another BDFL by TheloniousCoward · · Score: 1

      I've always appreciated Guido's positive and professional tone. Python's primary apostle, Tim Peters, is equally pleasant (and no less professional [wink]). Without that all pleasantness, Guido would lose the "B" and just be left with "DFL". Then, he and Tim would need to form a Secret Police, erect giant posters of themselves, and - worst of all - grow moustaches.

      I've always thought that the pleasant tone they set is a reflection of the pleasant tone of Python itself. Compare that to Perl's primary apostle, Tom Christiansen, who used to routinely make mincemeat of Perl newbies on comp.lang.perl, and you get a feeling of the personality of Perl. (That said, Larry Wall, Perl's inventor, seems to be a nice enough guy. Maybe he's just bewildered - like Perl.)

      no-analogy-is-perfect-ly yrs,

      TC

  21. CPython C API by Anonymous Coward · · Score: 0

    Are there any plans for providing/incorporating an interface for python and C interaction that isn't CPython specific?

    1. Re:CPython C API by strombrg · · Score: 1

      Here's a list. See especially CFFI.

  22. GIL and true parallelism by neonleonb · · Score: 4, Interesting

    The main thing that keeps Python from being really useful for my projects is the Global Interpreter Lock (GIL). I would love to write Python for my data-intensive code, but it is impossible to get really good parallelism with Python; the multiprocessing library isn't a magic fix because then I have to move all my data back and forth between processes.

    When, if ever, should I expect to be able to use Python to do parallel data processing? What is the priority for this, and what would need to be done to make thread-level parallelism possible?

    1. Re:GIL and true parallelism by NeverWorker1 · · Score: 1

      FWIW, IronPython and Jython are GIL-free, but IronP is no longer maintained.

    2. Re:GIL and true parallelism by neonleonb · · Score: 2

      And Jython doesn't work with numpy, which is one of Python's best features. The JVM is great for parallelism, but numerical computing on it isn't very fast.

    3. Re:GIL and true parallelism by oldhack · · Score: 1

      I would mod this up if I had points.

      --
      Fuck systemd. Fuck Redhat. Fuck Soylent, too. Wait, scratch the last one.
    4. Re:GIL and true parallelism by Anonymous Coward · · Score: 0

      FWIW this isn't a problem unique to Python: Ruby has a very similar locking mechanism, Perl does some crazy thing involving cloning the entire interpreter for every thread, and PHP avoids the problem altogether by not having threads. Threading just doesn't interact very well with a dynamic runtime where every read and write does a lot of work. (But then, arguably, raw threading doesn't interact very well with much of anything. :))

      Your options are:

      Use multiprocessing anyway and finagle a way to minimize how much data is shuttled around.

      Use Cython, a Python-like language that compiles to C in the form of CPython extensions. If you're mostly doing heavy data crunching, you might be able to switch to purely C types for the intensive work, during which you can release the GIL. It even has some C-friendly numpy integration built in. And it's way less of a pain in the ass to write than C.

      Use Rust, a totally different language. It's statically-typed and low-level, but takes some inspiration from Python. It's also heavily focused on making concurrency Just Work and statically forbidding most race conditions, null dereferences, etc. It's not really production-ready, but it might be close enough for you.

    5. Re:GIL and true parallelism by Anonymous Coward · · Score: 0

      Just use Rubinius.

    6. Re:GIL and true parallelism by defcon-11 · · Score: 1

      The vast majority of people doing data-intensive code with Python are either running code that is distributed across many nodes, where shared memory threads aren't very useful, or don't really care about execution time. I doubt a GILless cPython will ever come out, because it would require a massive amount of work and would provide little value to most existing Python users. People who need threads are already using other technologies, and I doubt many would switch back to Python just for that feature alone.

    7. Re:GIL and true parallelism by neonleonb · · Score: 2

      I take your point; Python isn't the tool for proper threading.

      Nevertheless, I think your claim that "people who need threads are already using other technologies" isn't true. I think people keep butting up against that need as their projects grow, and it forces them to (painfully) move away from Python. I think Python could better serve those users with good parallelism.

    8. Re:GIL and true parallelism by neonleonb · · Score: 1

      I think for my purposes, "Use Julia" will eventually be the answer. But I'd be happier if Python could just do what I want.

    9. Re:GIL and true parallelism by Anonymous Coward · · Score: 0

      If you really need it, check out ipython and ipcluster ... you'll have to distribute, but it'll work.

      I don't think /any/ pythonista anticipates a magical fix to the GIL, unless there's a new massively benevolent architect with some serious labor.

      There is no priority on GIL removal, but it's outside of architectural scope.

    10. Re:GIL and true parallelism by shutdown+-p+now · · Score: 2

      IronPython is quite alive - they put up a new release candidate just two days ago. Note that their source repo is on GitHub these days, even though the binary downloads are still on CodePlex.

      Of course, the real problem with IronPython (and Jython) is that you can't use the multitude of Python libraries that use native code and the CPython extensibility API.

    11. Re:GIL and true parallelism by Anonymous Coward · · Score: 0

      > When, if ever, should I expect to be able to use Python to do parallel data processing?

      Why is it that you believe you need threads to do parallel data processing?

      * generators and coroutines
      * gevent, eventlet
      * celery, luigi
      * "Using IPython for parallel computing" (ipcluster)
      * PEP 3156 : Asynchronous IO Support Rebooted (tulip)

  23. Go! usage at Google by Anonymous Coward · · Score: 0

    Did the usage of Go! at Google influence your decision to leave Google?

    1. Re:Go! usage at Google by Anonymous Coward · · Score: 0

      Go! (https://en.wikipedia.org/wiki/Go!_%28programming_language%29) isn't being used. Go (https://en.wikipedia.org/wiki/Go_%28programming_language%29) is.

      I would be interested in hearing a little about your thoughts about golang. Maybe the old Likes and Dislikes if you please ?

  24. Python 3 Regrets by n1ywb · · Score: 3, Insightful

    If you could go back in time, what, if anything, would you do differently WRT to developing and releasing Python 3?

    --
    -73, de n1ywb
    www.n1ywb.com
  25. name of the language by ebno-10db · · Score: 1

    Do you wish you'd named your language after a different type of snake?

    P.S. Yes I know it's from "Monty Python". If it'd been my language I would have called it Groucho.

  26. Key question for any language designer by dkleinsc · · Score: 4, Interesting

    Have the prospects of Python in any way improved since you grew a beard? To what degree does language success correlate to beard length?

    --
    I am officially gone from /. Long live http://www.soylentnews.com/
  27. Any NSA backdoors in Python ? by Btrot69 · · Score: 2, Interesting

    Are you aware of any attempts by the NSA to add a backdoor in Python ?
    Of course, if you did get an NSA letter, you wouldn''t be allowed to say.
    You are welcome to NOT ANSWER this question.
    We will take note of that ;)

    1. Re:Any NSA backdoors in Python ? by NeverWorker1 · · Score: 1

      What does that even mean? It's a programming language, not an application or operating system. Do you mean crippling certain functions in the standard library? It's all open source.

    2. Re:Any NSA backdoors in Python ? by RamiKro · · Score: 1

      Through I don't condone OP, down the rabbit hole we go: http://cm.bell-labs.com/who/ken/trust.html

      That's Golang's Ken Thompson in case you were wondering...

    3. Re:Any NSA backdoors in Python ? by NeverWorker1 · · Score: 1

      That would be a backdoor in the compiler, not in Python (or CPython more properly, since Python proper is a spec, not an implementation, which is why the question is really, really meaningless).

  28. Do enums herald a trend? by Anonymous Coward · · Score: 1

    Python 3.4 will feature enum types built-in into the language. Up to now, Python mostly avoided features that promoted explicit type checking (through isinstance). Is the inclusion of enums a sign that we can expect more of such features in the future (say, contracts on function parameters)?

    1. Re:Do enums herald a trend? by shutdown+-p+now · · Score: 1

      In what sense does the addition of enums "promotes explicit type checking"? They are still not type checked in any way when used as parameters etc, unless you explicitly write code in your functions that does so. In that sense, enums are no different than any other type. And Python has always been strongly typed - you can't just mix numbers and strings, for example, and "foo"+123 will throw an exception, so there's nothing new here.

    2. Re:Do enums herald a trend? by Anonymous Coward · · Score: 0

      And Python has always been strongly typed...

      Ha! Ha! Ha! Chortle! Snort! Giggle!

    3. Re:Do enums herald a trend? by shutdown+-p+now · · Score: 1

      Are you one of those people who always confuse strong typing and dynamic typing?

      Python is dynamically typed: variables don't have types, and the same variable can be bound to many different values of different types over its lifetime.

      Python is strongly typed: values have types which don't change, and there are very few cases where a type is implicitly converted. Python is actually stricter than Java in that regard - "foo"+123 is valid Java, and 123 would be converted to string, but in Python it would throw an exception about incompatible types; you need to explicitly convert via str(123) before you can concatenate.

  29. What language instead, if Python was not created? by tadeck · · Score: 1

    Lets imagine you have not created Python, but some other programming language. Relying on your judgment, what existing (but not necessarily popular) programming language would be the closest to your mindset / principles / preferences? Or maybe there is none - in such case, how would it differ from Python?

    That question baffles me, as you are guru of significant part of developers and surely there is some language that either follows good parts of Python, or avoids Python mistakes. Could you share your thoughts on what would be your choice for Python replacement, if creation of Python would not be possible?

    Ps. Many people seem to treat Ruby as being very close to Python. If you will pick Ruby, could you pick also another language, that you would pick after Python and Ruby?

  30. functional programming by ebno-10db · · Score: 4, Insightful

    Some people claim that Python is, at least partly, a functional language. You disagree, as do I. Simply having a few map and filter type functions does not make for a functional language. As I understand it those functions were added to the libraries by a homesick Lisper, and that several times you've been tempted to eliminate them. In general it seems you're not a fan of functional programming, at least for Python.

    Question: do you feel that the functional programming approach is not very useful in general, or simply that it's not appropriate for Python? It would be nice to hear your reasons either way.

    1. Re:functional programming by strombrg · · Score: 1

      map, filter and reduce are almost always better done as a generator expression or list comprehension, FWIW. I'm interested in hearing about Python and Functional Programming though.

    2. Re:functional programming by MetalliQaZ · · Score: 1

      Just wanted to say that if Python lacked the functional stuff, I wouldn't it like it nearly as much.

      --
      "Here Lies Philip J. Fry, named for his uncle, to carry on his spirit"
    3. Re:functional programming by Anonymous Coward · · Score: 0

      I don't know enough about the internals of map() vs. list comprehension vs. generator expressions but to me the "map", "reduce", and "filter" verbs have a certain quality that just looks better. Perhaps that is solely due to their resemblance to map, filter, and reduce in functional langs e.g., OCaml. This could simply boil right down to semantics. I also prefer to use map() because in some cases you can actually swap these out with multiprocessing.Pool().map() and get a more appreciable performance boost. I don't think you would be able to say the same about swapping map() out with a list comprehension. Yes/no?

      Can you elaborate on "map, filter, and reduce are almost always better done as a generator expression or list comprehension"? What is "done better"?

    4. Re:functional programming by blamelager · · Score: 1

      I agree with anonymous coward below - I don't see how list comprehensions and generators are clearer than 'map' and 'reduce' (or is there some other reason you think generators and list comprehensions are better? .. more flexible? more concise?)

      I use list comprehensions and generators, and it's fine; but frankly they're not that self-explanatory or intuitive. For a language that aspires to be almost pseudo-code, python sure has its share of weirdness and magic.

    5. Re:functional programming by shutdown+-p+now · · Score: 1

      I don't know enough about the internals of map() vs. list comprehension vs. generator expressions but to me the "map", "reduce", and "filter" verbs have a certain quality that just looks better. Perhaps that is solely due to their resemblance to map, filter, and reduce in functional langs e.g., OCaml.

      Many modern functional languages also have sequence/list comprehensions - Haskell, for example, or F#.

      I don't think you would be able to say the same about swapping map() out with a list comprehension. Yes/no?

      Depends on the language. Where sequence comprehensions are designed right, they're nothing but syntactic sugar for filter/map/...; if these are interpreted in context, then you can provide your own which redefined filter/map/... as you see fit, including for parallel computations. Examples include LINQ in C# (which desugars to calls of methods named 'Where' aka filter and 'Select' aka map, that can do anything you want for a given object type), or F# computation expressions.

      Can you elaborate on "map, filter, and reduce are almost always better done as a generator expression or list comprehension"? What is "done better"?

      In CPython in particular, map/filter will be more verbose and significantly slower - map/filter are just library functions and will pay penalty of a function call for every iteration, while sequence comprehensions are compiled directly into a much more efficient bytecode.

  31. NSL by ThatsNotPudding · · Score: 1, Offtopic

    What *does* a National Security Letter look like?

  32. Asynchronous python by Anonymous Coward · · Score: 0

    Asynchronous programming allows for high performance networking (servers, services...).

    gevent vs twisted vs eventlet: do you have an opinion? Where do you think it's headed? What is using dropbox?

    1. Re:Asynchronous python by aubonbeurre · · Score: 1

      Apparently this is planned for 3.3, and influenced by Google Engine, twisted tornado and others: http://www.python.org/dev/peps/pep-3156/

    2. Re:Asynchronous python by dolmen.fr · · Score: 1

      Python 3.3 has been released in September 2012, but the asynchronous features are not yet there.

    3. Re:Asynchronous python by shutdown+-p+now · · Score: 1

      Yes, GP is wrong. It is planned for Python 3.4 (if you look at the PEP, it was created in December 2012, and it was a result of a lot of discussion on python-ideas in October of the same month).

  33. What do you think about web2py? by Anonymous Coward · · Score: 0

    web2py is one of the famous python frameworks and also one of the most criticized for its "different" architecture. What do you think about it?

  34. why should I adopt Python 3? by js_sebastian · · Score: 3, Interesting

    What are the big features/improvements of python 3 that could/should convince me to make the effort to switch over from python 2.x to python 3.x?

    I am not able to do the switch now as I rely on some libraries that have not finished converting to python 3 yet, but having something to look forward to other than the pain of backwards-incompatibility could go a long way in getting me to prepare for the change instead of ignoring the issue.

    1. Re:why should I adopt Python 3? by Anonymous Coward · · Score: 0

      "print" is now a function, with parentheses.

      totes worth it.

    2. Re:why should I adopt Python 3? by strombrg · · Score: 1
      Programs tend to be international out of the box, because str is what unicode used to be.

      try/except is no longer a programmer trap.

    3. Re:why should I adopt Python 3? by MetalliQaZ · · Score: 1

      I feel that the reasons are evident in the release notes that describe the new features in 3.1, 3.2, 3.3...
      The more interesting question to me is what he thinks of the serious lag in library support for Py3, which I posted below.

      --
      "Here Lies Philip J. Fry, named for his uncle, to carry on his spirit"
    4. Re:why should I adopt Python 3? by js_sebastian · · Score: 2

      I feel that the reasons are evident in the release notes that describe the new features in 3.1, 3.2, 3.3... The more interesting question to me is what he thinks of the serious lag in library support for Py3, which I posted below.

      Care to point out some highlights? A little bit of evangelism would not hurt. If you ask Stroustroup what are the cool new features of C++11, he has a good answer ready. Other than the new unicode support, which is very important in some contexts but not everywhere, I see nothing else that's very exciting looking here: http://docs.python.org/3.0/whatsnew/3.0.html.

    5. Re:why should I adopt Python 3? by shutdown+-p+now · · Score: 1

      from __future__ import print_function

  35. Tricks by jameshofo · · Score: 1

    Do you have any personal tricks or methods to learning new things, and what are the benefits/shortfalls or situations where it didn't work?

    --
    Good leaders run toward problems, bad leaders hide from them.
  36. Import Everything by g01d4 · · Score: 1

    A major reason I recently started to use Python is that there's so much already out there, for free, in terms of packages and support. Was this widespread adoption an original goal, a positive after-effect or logical outcome?

  37. Re:Loving python by strombrg · · Score: 2

    I've commented on python and whitespace enough times, that it became more practical to create a small web page about it: Read it here.

  38. Re:When is python going to support parallel proces by strombrg · · Score: 1

    Python the language definition, supports threads fine. CPython the reference implementation, supports threads, but while they work fine for I/O bound workloads, they are poor for CPU bound workloads. However, CPython supports multiprocessing, which uses multiple processes and shared memory; multiprocessing tends to give looser coupling between parallel code units than threading. Jython and IronPython support threads for both I/O bound and CPU bound workloads.

  39. Immutable object properties by kpdvx · · Score: 1

    Do you foresee adding first-class language support for immutable object variables? Something like Java's "final" for member variables. I understand that something could be done with a @decorator to implement this, but I'm interested in baked-in support.

    1. Re:Immutable object properties by n1ywb · · Score: 1

      If you want ALL the attributes to be read-only, you can use collections.namedtuple.

      This sort of control over other developers is generally considered un-Pythonic because it violates the "we're all adults here" principle. If the documentation says "Don't assign to X", you know you are taking your chances when you do it. If you feel that you have a good enough reason to do it, bully for you, but don't complain when it breaks.

      One feature Python already has which violates this principle is the '__' prefix name mangling. I've had the misfortune of working with a library where I really had a very good reason to change one of the "private" variables in a very safe way, but because the original developer had arbitrarily made ALL his attributes "__*", I had to fork the library and fix it first.

      --
      -73, de n1ywb
      www.n1ywb.com
    2. Re:Immutable object properties by shutdown+-p+now · · Score: 1

      Why are you interested in baked-in support when a library solution can cover this case just fine, and is not syntactically inferior?

  40. socks and sandals by Anonymous Coward · · Score: 0

    Why socks with sandals?

  41. Python as a shell language by js_sebastian · · Score: 3, Interesting

    Tools like ipython and fabric go a long way into making python into something that can replace my bash shell in many situations.

    The main obstacle to this use-case is python's semantic spacing and lack of braces (or something):

    - it is hard to do even a fairly simple if/else or loop in a single line so it will interact nicely with the terminal's history
    - it is hard to cut&paste code into the terminal because you have to be wary of leading spaces

    Ipython tries to solve some of this with shortcuts to bring up a built-in editor, which is an approach that works but is quite cumbersome.

    Do you think convenient usage on the interactive shell is a worthy goal that the language should support? if so, is there any direction the language or libraries could develop to better support it?

    1. Re:Python as a shell language by blamelager · · Score: 1

      Yeah, I agree, I've also reluctantly come to the conclusion that significant whitespace as the only option can suck a bit - places too many demands on the editing tools, clipboard etc. Definitely a double-edged sword.

      For the use-case you're talking about, something like ruby or javascript (!) or a lisp would be better.

      But python is nicer to read and has great libraries for a lot of things. Hey-ho. Can't have everything, eh?

    2. Re:Python as a shell language by TeknoHog · · Score: 1

      IIRC, Apache Python module allows curly braces as block delimiters for this very reason. OTOH, a nice general programming language does not necessarily make a great shell, and vice versa — bash is quite awkward in anything bigger than a single terminal window.

      --
      Escher was the first MC and Giger invented the HR department.
    3. Re:Python as a shell language by js_sebastian · · Score: 1

      Yeah, I agree, I've also reluctantly come to the conclusion that significant whitespace as the only option can suck a bit - places too many demands on the editing tools, clipboard etc. Definitely a double-edged sword.

      For the use-case you're talking about, something like ruby or javascript (!) or a lisp would be better.

      But python is nicer to read and has great libraries for a lot of things. Hey-ho. Can't have everything, eh?

      I really don't see why you can't have both. Even just a shell dialect of python with no semantic leading space and braces would largely solve the issue and make python a better bash in addition to what it already is.

      A big advantage of python-as-a-shell is that it can direclty import and invoke all the available libraries and all of our python code (javascript?! it doesn't even have a decent date library, let alone math!). And with ipython plus python's native reflection and documentation support, you can do some pretty cool things. For instance we had a SOAP api where the pydoc documentation of methods on the server was automatically provided via auto-completion and ? operator in an ipython client. If you added a method on the server, it would magically appear as a method on the object on the client.

  42. GIL vs. Stackless model by Mysticalfruit · · Score: 1

    Have you ever thought about merging some of the ideas of the Stackless python interpreter into some future version of python to make the whole argument mute?
    I've played with stackless and depending on what you're doing it can leverage huge benefits.

    --
    Yes Francis, the world has gone crazy.
  43. If you were to design Python from scratch... by Anonymous Coward · · Score: 2, Interesting

    Guido, if you were to design Python from scratch now (without any constraint and legacy code using the old Python), what would you change and how different would it be from Python 3?

  44. Re:Loving python by Anonymous Coward · · Score: 1

    Can you put it on a website that doesn't look like shit?

  45. performance by Anonymous Coward · · Score: 0

    There seem to be reasonably successful efforts in making javascript run fast and even PHP too.

    Why is Python still so much slower? Lack of money? Lack of talent?

  46. What is your programming environment like today ? by Btrot69 · · Score: 5, Interesting

    How often do you get a chance to write serious code ?
    What's your default OS ?
    Command shell ?
    Version control ?
    Editor ?
    IDE ?
    Web browser ?
    IM client ?
    email client ?

    late nights or early rise ?

  47. Overall performance of python by Anonymous Coward · · Score: 0

    Hi Guido, I've been writing software for a long time, and without a doubt the language I most enjoy writing in is Python. As of late, I'm seeing troubling performance comparisons between Python and Go. Sometimes claims of 10x faster with Go. That, by the way, is about the right threshold of performance gain for developers to switch (even if it is begrudgingly). Is there a way for programs written in Python to be 10x faster?

  48. Python 3 by MetalliQaZ · · Score: 3, Interesting

    How do you feel about the current state of the migration to Python 3 (Py3k)?
    From a user perspective it seems that the conversion of popular libraries has lagged far behind, which has impeded the transition. In my professional capacity, nearly every single system I use lacks an installed 3.x interpreter. In fact, 2.7 is a rarity. I'd like to get your thoughts.

    --
    "Here Lies Philip J. Fry, named for his uncle, to carry on his spirit"
    1. Re:Python 3 by saccade.com · · Score: 1

      I'm also curious about this. Most production environments and many external libraries are firmly entrenched in Python 2.x. Were the changes in Python 3 too much, too late? In other words, was the house to near completion to start ripping up the floorboards and tearing out the drywall again?

  49. Honking great ideas like namespaces by bobnorton · · Score: 1

    Did you guys come up with any more honking great ideas like namespaces?

    ("Namespaces are one honking great idea -- let's do more of those!" is the last line of wisdom printed when importing "this" in Python.)

  50. Python and cutting edge language features by MetalliQaZ · · Score: 1

    I'd like to get your thoughts on Python as it compares to some of the newer developments in programming languages. In the past few years, the hyperactive growth of the web in the mobile space and in so-called "cloud computing" have spurred all kinds of new languages from new upstarts and companies like Google (go, dart); as well as new features in established languages like C#, Java, C++. How do you think the cutting edge of Python will compare to people who might be lured away by those new toys? Or, in an alternate form, is there anything big you want to add to Python that we have seen emerge recently?

    My Slashdot brethren: I realize that many of the concepts that are new to the younger generation were actually hashed out back in the 60's, 70's, and 80's. Don't flame me please.

    --
    "Here Lies Philip J. Fry, named for his uncle, to carry on his spirit"
    1. Re:Python and cutting edge language features by shutdown+-p+now · · Score: 1

      as well as new features in established languages like C#, Java, C++

      All of these are actually playing catch-up with Python in terms of features. Case in point: C# (which, in terms of language design, is the fastest evolving of these three) has recently acquired async/await. Python had it all along as "yield", which is far more extensible than C# "yield return" - to the point where await can be implemented as a yield in Python.

  51. Perl 6 by dolmen.fr · · Score: 1

    Perl 6 is an ambitious new programming language in the Perl family.
    Have you read the Perl 6 specifications?
    What do you think of the Perl 6, the language (syntax changes) and its new features (meta-operators, advanced OOP, built-in paralelism, signatures as first class objects, grammars)?

    1. Re:Perl 6 by shutdown+-p+now · · Score: 1

      Perl 6 is an ambitious new programming language in the Perl family.

      Perl 6 has been "new" for 12 years now. It still doesn't have a complete implementation...

    2. Re:Perl 6 by dolmen.fr · · Score: 1

      Perl 6 has been "new" for 12 years now. It still doesn't have a complete implementation...

      12 years later its promised features are still relevant. But more than that the project still advances. Check https://6guts.wordpress.com/

  52. I'm Python lover by Anonymous Coward · · Score: 0

    What doesn't Python work for?

  53. That OO-My-God Moment of Emergence by Salis · · Score: 1

    Emergent OOism -- that everything is an object, including the variable types -- can provide continual surprises of what is possible, even to veteran programmers in other languages. As you were developing and using Python, Guido, what was your favorite surprise? What was now easily possible using Python that would have been very difficult with another language (at the time, or even nowadays)?

    Mine: a dictionary of lambda functions for parsing text, and writing a custom MapReduce capability for AWS in 372 lines.

    --
    Favorite /. tagline: "On the eighth day, God created FORTRAN." And it was good.
  54. reasonable switch-case statement by chuckinator · · Score: 2

    Eh, I can give or take the lambdas. Just give me a halfway decent switch-case statement so I don't have to write huge, rolling if-elif-elif-elif-elif-elif-else-finally blobs. Using built in language reflection to parse a parameter into a function name you call later isn't an answer and has led to many, many python scripts crapping out on me when you actually want to use string data containing '-' or other strange, exotic ASCII characters in them as your key into the switch statement.

    1. Re:reasonable switch-case statement by Anonymous Coward · · Score: 0

      A dictionary of function pointers?

    2. Re:reasonable switch-case statement by luis_a_espinal · · Score: 1

      ^^^ THIS.

  55. GUI by Anonymous Coward · · Score: 0

    Having enthusiastically embraced Python in the last two years, I found I hit a wall. It seems Python lacks a simple, unified GUI environment. While creating simple programs works great, most programmers want to have a real GUI, dialog boxes, images, etc. Do you think leaving this functionality out of the core of the language is hampering Python's potential?

    1. Re:GUI by occasional_dabbler · · Score: 1

      I think this is indicative of the generally great support that Python gets from other projects. The default GUI language is Tcl/Tk, but of course nobody uses that, Most 'industrial' coders will be using wxPython to get workmanlike GUIs. Gnomophiles will be using PyGTK and anyone wanting something pretty have PyQt to call on. I think there are some commercial offerings too for when you need a really shiny one. Isn't more choice a good thing?

      --
      "Our opponent is an alien starship packed with atomic bombs," I said. "we have a protractor"
    2. Re:GUI by MetalOne · · Score: 1

      I recently have used PySide with Qt 4.8 and find this to work very well. The only caveat is that Qt 5.0 is moving in a different direction trying to support more of a web based html .css approach and leaving the old widgets in support mode. The biggest problem here though is that PySide had not been updated for Qt 5. It looks like Digia only has the resources to pursue C++ development. Also disappointing is that Qt 5.0 did not have any widgets with the new model. Honestly, I don't know what they were thinking. I am not sure a full blown widget library is needed and would be a lot of work, but I think if the important lower level layers (primitive drawing, font drawing, font metrics, mouse, keyboard, and touch input) were added it would be a good thing. Perhaps even a next higher layer that provided for basic nested window support, tabbing, focus, selection, layout managers, and .css style themeing and an event pump. At this point I am sure the community would start adding widgets.

  56. Re:When is python going to support parallel proces by jlar · · Score: 1

    But multiprocessing is heavyweight. It is very expensive to launch new processes. Which leads to my question to Guido:

    When will Python support lightweight threads for CPU bound workloads?

  57. Which 5 programming languages do you know best? by blamelager · · Score: 1

    just curious

  58. Re:When is python going to support parallel proces by jlar · · Score: 1

    But spawning processes is very slow. And more importantly communication between processes means pickling and unpickling objects which in my experience can be a showstopper due to the performance penalty. I guess this is a consequence of the fact that the multiprocessing module is very general and can run on several nodes. So my question is:

    Will Python get a fast parallellization module for CPU bound problems on shared memory architectures?

  59. Re:Loving python by js_sebastian · · Score: 2

    I've commented on python and whitespace enough times, that it became more practical to create a small web page about it: Read it here.

    Much as I love python, I see nothing to refute my objections to python's use of semantic spaces and lack of braces or other equivalent construct.

    - It makes python ineffective as a shell-replacement language, because you can't easily do a complex one-liner and then retrieve it from history
    - It makes cutting and pasting code difficult, which makes refactoring unnecessarily painful
    - It makes it impossible to fully auto-format code: all formatters I have seen for python do not trust themselves to touch leading spaces, nor should they. This leads to ugly, inconsistent-looking code.

    It's not just about the obvious problem of tripping up anyone who is not paying attention to this peculiarity of the language. If python had semantic line ends (but not semantic leading spaces) with optional semi-colons (for when you don't use a line end) plus braces, the amount of extra typing and visual clutter would be minimal, while these problems would go away, making python a more useful language.

  60. Re:When is python going to support parallel proces by occasional_dabbler · · Score: 1

    Yes, this is very true, the overhead of process spawning is vast. Especially when you factor in the garbage collection if you are passing large objects to your spawned processes. You need to be looking at processes that last minutes to make multiprocessing beneficial. TBH what I'm working on (engineering analysis) does fit this case, but it's still surprising just how big the process needs to be before you see any benefit.

    --
    "Our opponent is an alien starship packed with atomic bombs," I said. "we have a protractor"
  61. Python is now such a huge project... by occasional_dabbler · · Score: 1

    ...do you really feel you have a handle on all of it? It seems to an outsider to be as gargantuan a task as Linus has with the kernel.

    --
    "Our opponent is an alien starship packed with atomic bombs," I said. "we have a protractor"
  62. Python code on Git by jcdr · · Score: 1

    Hello,

    The Git distributed version control system is today the most used for the OSS projects. This was not the case back to the day when the Python project selected Mercurial to store hi source code. After all, at this time the mass of users of a specific SCM was not a important parameter for the decision since a bunch of a new generation of SCM was relatively new. Now, several years later, the Git audience is several order of magnitude bigger than the Mercurial audience. It has also proved to be appropriate for a lot of project of the size of Python. When will Python source code migrate to Git ?

    1. Re:Python code on Git by Anonymous Coward · · Score: 0

      Does it make any difference? How often do you contribute to Python? I'm a Git user, but had to submit a patch to Python, and it didn't take me too long to figure out how to use Mercurial on the level that allowed me to submit a patch upstream. Mercurial is not so much different than Git (in terms of simple day-to-day use) and even if it was it still wouldn't be a rocket science. If you want to contribute it does not make too much difference what tool is used upstream.

    2. Re:Python code on Git by jcdr · · Score: 1

      Yes, it make difference:

      * If you have to integrate the source code into a bigger project. Some specific features might touch more than a single project to be complete (typical case is driver+lib+binding). Keeping trace of all the change is far more easy if there uses a common SCM tool.

      * Submit a clean patch to a project where you are not a regular contributor (typical case is a bug on a specific load) is a time consuming task. Each project have his set of rules about the coding style, and how to submit the patches. Usually this require to split the patches in a set of smaller patches. And most of the time the maintainers of the project ask for modification before accepting your work. The response might not be immediate and you have to continue your regular work until you get some feedback. Managing all of this is far more easier if you can use the standard tool that you use everyday.

      Open Source project have to be easy to contribute to gain new contributors. There are not payed, so don't vast there time. I am curious to known what can retain the Python project from switching from Mercurial to Git.

    3. Re:Python code on Git by Anonymous Coward · · Score: 0

      You create artificial problems. If you do need project X in your favourite VCS you just create your private mirror using any technology you want and everyone is happy. It's not difficult and does not take too much time to set up and sync with mainstream.
      And c'mon, please don't tell me that you have problem with submitting a patch to a project that uses VCS you don't like...

    4. Re:Python code on Git by jcdr · · Score: 1

      Yes I do the mirror trick when I have no other solution and I can grant to you that this process is really time consuming, and not always reliable. Submitting a patches is not the most difficult part. Maintaining it a few months, while improving it and rebasing it, can be far more challenging if you are not comfortable with the tool.

  63. Automatic foreign function interfaces by MetalOne · · Score: 1

    I have often wondered if it is possible to create a program that would automatically generate bindings to C/C++ libraries. The binding issue is a huge problem for all languages. It seems doable to me, but I fear I am missing something because it has not been done. There is SWIG, but it needs an IDL like description file. I frequently read comments like, oh it it so easy to call a 'C' function. However, when you look at something like the Windows API with over a million functions and a massive number of struct types, and millions of constants, writing an IDL file becomes prohibitive. I know of no language with a very thorough binding to the Windows API. As of right now PySide needs a binding to Qt5. The first problem is just getting any kind of binding, but one would prefer a Pythonic binding. For example in 'C' an array is often followed by a size parameter. A good binding would understand how to take a list and make the underlying call with the array and the size parameter. So this involves an IDL file again. However, I envision a tool that could highlight possible ambiguities like this and provide some sort of web interface to crowd source the answers to the ambiguities. I guess my question is, is this possible? or what makes this so hard that it has not been done? I can see C++ definitely being harder, but dealing with a 'C' header file doesn't seem so complicated.

    1. Re:Automatic foreign function interfaces by shutdown+-p+now · · Score: 1

      Dealing with a C header file is extremely easy, right up until the point where you run into parametrized macros that are exposed as part of the API. How do you convert those - and, more importantly, how do you know that you need to convert this particular one (i.e. it's part of the API, and not just internal machinery of the header in question).

  64. CPython or PyPy as a base for a functional lang by MetalOne · · Score: 1

    The Python functions map, filter and reduce provided me a gentle introduction to the ideas of functional programming. I find the arguments for functional programming very compelling. I frequently use Python in a functional style. However, the reality is, Python is not really the best vehicle for this style of programming, and it appears that Python is going to remain at heart an imperative language. I really like the Python standard library though and this is one of the main things keeping me from switching to a functional language. What are your thoughts on porting a functional language to the Python virtual machine? Is there too much of an impedance mismatch to interface with the libraries. Historically the libraries often took lists(dynamic arrays), whereas functional programming usually works with linked lists. On the other hand Python is moving towards iterators for everything which would seem to solve this mismatch.

  65. Roots by Anonymous Coward · · Score: 1

    Do you miss the Netherlands and / or the CWI?

  66. Re:Loving python by Anonymous Coward · · Score: 0

    Can you put it on a website that doesn't look like shit?

    Like this perhaps?
    http://preview.python.org/

  67. (Optional) Static Typing by Anonymous Coward · · Score: 0

    I have been using python for over 10 years, but recently find that python has not progressed much beyond a 'glue' language. One of my biggest issues is that python currently cannot be statically typed, even though a lot of progress has been made in this direction by other languages.

    90% of my errors could have been found by a F#-like type checker while typing.
    Unit tests are no replacement for static type checking, because you have to run the code, which might take a very long time, interact with the environment (break something if the program controls hardware), and generally only tests a very very small space of possiblities.

    Further the intellisense-like editor support is severely lacking, because so little information is available.

    Do you think we will see optional static typing for python in the future?

  68. Custom operators by Anonymous Coward · · Score: 0

    Any chance to get custom operators?

    Would be extremely useful for mathematics, Matlab for example provides .* ./ .\ .^ for elementwise operations. The python code is very terse by comparison.

    It would be great if new operators could be defined just like functions.

  69. is Python best OOPS Language by Anonymous Coward · · Score: 0

    I want to learn one of the best OOPS language, is python a perfect match for it? If no which one you recommend.

  70. Conditional Expression. by Capsaicin · · Score: 1

    Though I've since grown accustomed to it, when PEP 308 was first resolved the grammar of the conditional expression ("X if C else Y"), placing the conditional as it does in between the choices, struck me (and not me alone) as particularly odd. Does this reflect your mischievous sense of humour, or am I missing something because I'm not Dutch?

    --
    Better to be despised for too anxious apprehensions, than ruined by too confident a security. --Edmund Burke
  71. Explanation by Errol+backfiring · · Score: 3, Informative

    GIL stands for Global Interpreter Lock, see: https://en.wikipedia.org/wiki/Global_Interpreter_Lock

    --
    Nae king! Nae laird! Nae yurrupiean pressedent! We willna be fooled again!
  72. Re:(Optional) Static Typing / type hints by Errol+backfiring · · Score: 1

    Would you settle for PHP "type hints" (see http://php.net/manual/en/language.oop5.typehinting.php ) ? They add legible safeguards to function calls without introducing needless clutter to the language.

    --
    Nae king! Nae laird! Nae yurrupiean pressedent! We willna be fooled again!
  73. Re:When is python going to support parallel proces by jlar · · Score: 1

    If you want to avoid the overhead of spawning new processes you might want to look into IPython Parallel:

    http://ipython.org/ipython-doc/dev/parallel/

    If you use that you can keep your "engines" (= processes) running to avoid the overhead of spawning processes. But the inter-process communication will still be slow (I believe they also use pickling) unless you use MPI for communication (which limits the datatypes that you can transfer and adds some extra programming overhead).

  74. When will Python be Complete? by TheloniousCoward · · Score: 1

    When I started with Python, over a decade ago, it was relatively simple. However, as new features have been added, it has become increasingly complex, then complicated. For example, it now includes gems such as "weak references", and the book "Programming Python" now uses more than 1600 pages to explain it. Meanwhile, C, the language Python is implemented in, is nearly unchanged. When, if ever, will Python be complete?

    1. Re:When will Python be Complete? by shutdown+-p+now · · Score: 1

      For example, it now includes gems such as "weak references"

      Weak references solve a certain, fairly common problem. Do you have an alternative suggestion on how to solve it without them?

    2. Re:When will Python be Complete? by TheloniousCoward · · Score: 1

      No, nor do I have suggestions for solving the many other specific problems that the increasingly esoteric additions to Python over the last few years are directed at solving. I'm sure Guido has his reasons, I just think it should stop at some point. I was originally attracted to Python (1.5.2) by its simplicity and elegance. I've welcomed simple changes since then such as the "+=" operator. And thanks to backwards compatibility, one can still use Python at a simple level, which I do. But an endless stream of esoteric features is a distinct disincentive to new users. Some Python books now are even tubbier than their C++ counterparts! (Maybe "Programming Python" should become a trilogy like "Lord of the Rings".) I don't doubt that all the new features are useful to someone, just not to me. I even do without iterators, which address a *general*, not just "a certain" problem. Even though Python 3.x (which I don't yet, and may never, use) may be objectively better, the fact that there are two Pythons to choose from also is a barrier to new users. Their first question must be, "Which one should spend a lot of time and effort to master?" Answering that question, and covering both versions, only makes the Python books fatter. It seems to me that Python reached its logical conclusion several years ago, somewhere in the 2.x series. I have the greatest admiration and respect for Guido, but maybe it's time for him to "just say no". luddite-ly yrs, TC

    3. Re:When will Python be Complete? by shutdown+-p+now · · Score: 1

      Can you give an example of an "esoteric addition"?

      It seems to me that Python reached its logical conclusion several years ago, somewhere in the 2.x series.

      The problem is that in reaching that conclusion, it acquired a lot of legacy back-compat baggage along the way. Stuff like classic objects, for example, or range vs xrange.

      Python 3, by all accounts, is largely a trimming down of Python 2 to get rid of all that cruft and distill it down to the things that actually matter other than "I need this to run my 15 year old Python code".

    4. Re:When will Python be Complete? by TheloniousCoward · · Score: 1

      How about class decorators? How have I lived all these years without them? Anyway, all that trimming in Python 3 sure sounds good. I just hope they didn't carve out weak references in the process [wink]. Unfortunately, I mourn the loss of lambda and never warmed up to print-as-a-function. (See Machiavelli on change.) So, I'm sticking with Python 2.x for now. / one-man's-cruft-is-another-man's-treasure or you-can't-teach-an-old-luddite-new-tricks-ly yrs, -TC

    5. Re:When will Python be Complete? by shutdown+-p+now · · Score: 1

      How about class decorators? How have I lived all these years without them?

      By manually calling functions in a much less convenient and less composable way?

      Unfortunately, I mourn the loss of lambda

      What loss? Lambdas are unchanged in Python 3. Guido mulled over taking them out rather early on in the design process for 3k - long before 3.0 - but changed his mind. We're at 3.3 now, and 3.4 alpha is out...

      never warmed up to print-as-a-function.

      Well, arguably, the original print statement was rather an esoteric addition, what with its very non-uniform syntax. Adding insult to injury was that you could also call it as a function, and only found out that something's amiss when it printed out a tuple repr at runtime.

      Besides, cool kids these days write "from __future__ import print_function" even in 2.x, so you're not safe in your bubble, unless you refuse to deal with other people's code. ~

    6. Re:When will Python be Complete? by TheloniousCoward · · Score: 1

      OK, I'm sold. I withdraw the question. [wink]

  75. I only want to say... by Anonymous Coward · · Score: 0

    Python sucks a lot.

  76. The Future of Channelling by TheloniousCoward · · Score: 1

    Are there any plans to replace the channel between you and Tim Peters with a chunnel?

  77. Re:Loving python by shutdown+-p+now · · Score: 1

    It makes python ineffective as a shell-replacement language, because you can't easily do a complex one-liner and then retrieve it from history

    Obviously, it's not intended as a shell replacement language. We already have Perl and, well, the actual shells for that.

  78. Re:(Optional) Static Typing / type hints by Anonymous Coward · · Score: 0

    Something like this, completely independent of the core language. One should be able to strip all type annotations and run the program dynamically.

    What I don't like about the type hints is that they don't compose and don't allow for basic types and complex types.
    You can't represent something like a function that takes two integers and a float and returns a string, which could be written easily like this (int -> int -> float) -> str.
    https://github.com/kennknowles/python-rightarrow

    Syntactically, all of this can already be done with decorators and function calls, as well as function annotations, which I don't like, because they don't compose either.

    @type_hint(...)
    def f(a,b,c): ...
            # type_hint is identity in first arg
            x=type_hint(a, int)

            fun = pickle.load(...)
            type_hint(fun, '(int -> int -> float) -> str.')

    For expressions that can't be typed at compile time (like the pickled function), python can now create unit tests and runtime checks.

    It is important to have type annotations that can be composed, as a variable can be a member of more than one type. An example would be a value that is of type float, and of type physical unit kg.

    Being able to check for physical units would be a huge selling point in the scientific community.

  79. Business support by Anonymous Coward · · Score: 0

    Do you see adding some type of decimal math option to properly support business applications? I have and now of several business applications that require decimal math or at least the minimum of a decimal floating point type. Currently all these applications are running under one or more emulators with some of the code going back to the 70's.

    No floating binary WILL NOT WORK. I've looked into it. Double binary fails to maintain enough accuracy within the first few calculations and even quad binary fails fairly quickly. When there are millions of calculations and data items involved binary just does not work. long integers do not work when you may have calculations where unit pricing is required to be accurate to less then 1/10,000 of a cent for quantities of over 1million units.

  80. Including PyPy with the standard distribution by yenic · · Score: 1

    Have you considered including PyPy alongside CPython in the standard distribution of Python 2.7 and 3.x (if PyPy were to be pushed forward to 3.x)?
    Mainly to gain exposure, since many think PyPy is the future of Python. But given as an officially unsupported until the day the switchover comes.

    --
    http://www.accountkiller.com/en/delete-slashdot-account Stop visiting Slashdot.
  81. Placing Python on top of another implementation by yenic · · Score: 1

    Is taking Python, the language semantics and placing it on top of another language (as Jython/IronPython does) been considered as a way forward for a future Python version?
    Leaving both the CPython version intact and developed by those who wish to do so, and move those who are interested onto the 'Jython' or 'PyPy' version (Python4000)?

    --
    http://www.accountkiller.com/en/delete-slashdot-account Stop visiting Slashdot.
  82. Why Numpy is not a part of Python language? by Anonymous Coward · · Score: 0

    Numeric/Numpy is one of the most useful libraries; it is by far superior to Python's native arrays. Why not incorporating it into the language?

  83. Re:When is python going to support parallel proces by occasional_dabbler · · Score: 1

    Interesting tip. I'll check that out, thanks!

    --
    "Our opponent is an alien starship packed with atomic bombs," I said. "we have a protractor"
  84. Coroutines (for I/O) - why better than callbacks? by mridcully · · Score: 1

    RE you talk on proposed standard async IO and tulip. I still don't understand why callbacks are bad, and how coroutines are better? They seem quite obscure to me (although I have to admit I have very modest experience with Python), and difficult to reason about. More specific example: my current project is I/O heavy, I use a dedicated IO thread with libcurl/pycurl multi interface, simple event loop & timers - i.e., pretty much all logic is event-driven / implemented in callbacks. Why would I want to use tulip (or anything coroutine-based) instead?

  85. Before crossing the bridge you must answer 3 quest by kauaidiver · · Score: 1

    Three questions:

    1.) What is your name?
    2.) What is your quest?
    3.) What is your favorite color?

    And three Python questions:

    1.) When are you going to respond to all these questions?!?!
    2.) What is your favorite editor?
    3.) this has been asked prolly, Python in the browser, do you think it will ever happen?
    *** optional
    4.) What is your favorite sci-fi movie?
    Thanks!