How ahead are you guys in the (Python) real world?

Discussion in 'Python' started by Ray, Aug 29, 2006.

  1. Ray

    Ray Guest

    Since I haven't used Python at work, I am using Python 2.5 right now.
    However I wonder, how fast are you guys moving from version to version
    at work? As an illustration my ex-company just moved to Java 5, which
    was released around... what, 2-3 years ago? (While I am running Java 6
    at home)

    Is it the same in the Python world? What version of Python is used in,
    say, Google? Is it even 2.4 yet?
    Ray, Aug 29, 2006
    1. Advertisements

  2. Ray

    skip Guest

    Ray> Since I haven't used Python at work, I am using Python 2.5 right
    Ray> now. However I wonder, how fast are you guys moving from version
    Ray> to version at work?

    At my day job (a trading firm) we moved from 2.3 to 2.4 a couple months ago.
    At home I use whatever's in CVS. For my moonlighting job ( I
    still use 2.3 because that's what /usr/bin/python is on the web server
    (which administers) and I don't feel like messing with yet another
    separate install.

    skip, Aug 29, 2006
    1. Advertisements

  3. Ray

    Jorge Vargas Guest

    for ones 2.5 is not consider production code yet so noone should be
    running anything on it. same with 1.6.

    on the java side my company is still stuck at 1.4, some prod servers
    ar 1.3 :) , and my branch moved to 1.5 like 2 months ago. but again I
    wont use anything that is in release candidates for production. but
    thats just me
    Jorge Vargas, Aug 29, 2006
  4. Ray

    Ray Guest

    Yes, certainly, in fact in a lot of companies I've worked for the
    criteria for upgrading is when the Vendor is about to stop supporting
    it :) But are there many companies using Python 2.4 even now though, I
    Nah, not just you, at work we'd be equally cautious as well. Which
    feels funny sometimes because publications and magazines will start
    discussing Java 1.6 even now and we know that it's still probably at
    least 3-4 years away before we get to use it at work.
    Ray, Aug 29, 2006
  5. Ray

    nnorwitz Guest

    Google uses many versions of Python including 2.2, 2.3 and 2.4. Though
    2.4 is relatively new. I hope to start introducing Python 2.5 sometime
    next year. Mid-year is about as early as it could possibly happen, and
    is likely to be much later. We need to kill off older versions (2.2
    and 2.3) first.

    Mostly it depends on the size of the company/source code
    base/installations. The smaller these are, the easier it is (should
    be) to move to a new version.

    nnorwitz, Aug 29, 2006
  6. fwiw, I work on systems that runs on 1.5.2, 2.1, 2.3 and "bleeding edge".

    Fredrik Lundh, Aug 29, 2006
  7. that's completely ignoring how Python's developed, though. if you know what you're
    doing, using stable (*) betas or release candidates can be an excellent idea.


    *) where "stable" means "works well in your test environment".
    Fredrik Lundh, Aug 29, 2006
  8. I can't tell for Google, and we're certainly a much much smaller
    company, but FWIW, we mostly use 2.4.3 (we still have a 2.3.x for
    compatibility with some old zope install).
    Bruno Desthuilliers, Aug 29, 2006
  9. Ray

    Fuzzyman Guest

    I'm lucky in that the company I work for are developing with
    IronPython. That means I get to use Python 2.4. I'm appreciating the
    joy of sets and decorators. :)

    I doubt we will move to 2.5 until that is the standard stable version
    of IronPython.

    For most of my own projects I try to maintain compatibility with 2.3,
    as it is still very common. For CGI stuff I try to remain 2.2
    compatible, because that is the default version of Python on many
    web-hosts (and Linux distros).

    Fuzzyman, Aug 29, 2006
  10. At our company, we build a product on top of Debian (product line 1)
    or Ubuntu (product line 2, not released yet), so we stick to what's
    available in the Debian/Ubuntu versions we're using.

    That means 2.3 on Debian and 2.4 on Ubuntu. 2.5 will probably arrive
    whenever we upgrade to the upcoming Ubuntu release, though I've
    already tried manually upgrading a system to 2.5, and our code ran
    without changes or apparent problems.

    A.M. Kuchling, Aug 29, 2006
  11. Ray

    sjdevnull Guest

    We are using 2.2 most places, with 2.3 on a few dev boxes. We're
    planning an update to 2.4 in the next couple of months.
    sjdevnull, Aug 29, 2006
  12. Ray

    John Salerno Guest

    Interesting question. Just as a curious follow-up (not being someone who
    works in the programming world), why does it take so long to move to the
    latest version, especially when there aren't (I don't think) any changes
    that would break existing code, such as moving to Python 2.4 from 2.2 or

    John Salerno, Aug 30, 2006
  13. in practice, in a large enough system, there's always something.

    (external libraries are a common problem, especially if you have to rebuild them,
    or update them to a new version to work around some incompatibility, and then
    end up with your code being incompatible with the new version, etc)

    Fredrik Lundh, Aug 30, 2006
  14. Ray

    Ray Guest

    Well, the thing is that migration in practice is usually a messy
    business, especially as your application grows in size + complexity.
    When your application is small and simple, usually migration is
    relatively painless, and the assumption that a release is compatible
    with the previous ones therefore your application shouldn't break
    usually holds true.

    However, when your apps are big and mission critical... for some reason
    they just break more often ;-) Like last time we migrated our automated
    build system to the latest bugfix release of the software (Ant,
    specifically--see if you're curious).

    Everything *should* be working just fine, after all it's just a bugfix
    release. But it turned out that one of the bugfixes (which was meant to
    optimize the build cycle) actually broke our system in a subtle and
    mysterious way, and for the longest time we resisted rolling back our
    system because nobody was willing to believe that Ant, which is an
    Apache project, and written by people probably smarter than us, and
    being used by a LOT of Java teams around the world, could be the cause.

    That was just one example from the Enterprise Java world, I'm sure the
    others can supply a lot more stories from the Python world...

    Ray, Aug 30, 2006
  15. Ray

    skip Guest

    John> Interesting question. Just as a curious follow-up (not being
    John> someone who works in the programming world), why does it take so
    John> long to move to the latest version, especially when there aren't
    John> (I don't think) any changes that would break existing code, such
    John> as moving to Python 2.4 from 2.2 or 2.3?

    There are often lots of binary interdependencies between the Python version
    and internal or external packages. For instance, all the database adaptors
    I'm aware of for SQL-based databases have extension modules written in C.
    Then consider GUI stuff (PyGtk, wxPython, etc), scientific (SciPy, Numeric,
    VTK, ...). The list can be nearly endless. At work we have lots of
    in-house C++ libraries, many of which have been exposed to Python
    programmers via SWIG or Boost.Python. All that stuff at minimum needs to be
    recompiled with the new version of Python's header files (which can and do
    change between versions). Then you have to test it.

    While it's true that there are generally no semantic or syntactic
    differences between versions and for the most part the developers try hard
    not to break things, differences do creep into the Python level and can be
    subtle to discover.

    In short, it takes a fair amount of work to move from one version to

    skip, Aug 30, 2006
  16. Two reasons:

    1) "If it ain't broke, don't f*** with it."

    2) There's always something else that is broke.
    After doing a few sowftware upgrades you quickly learn to
    never, ever believe that. The best working hypothesis is that
    upgrading will break things. So the questions when considering
    an upgrade are:

    1) Is there a new feature I want?

    2) Is that feature worth fixing the update breaking?
    Grant Edwards, Aug 30, 2006
  17. Ray

    skip Guest

    Grant> So the questions when considering an upgrade are:

    Grant> 1) Is there a new feature I want?

    Grant> 2) Is that feature worth fixing the update breaking?

    3) Has the version I'm running reached "end of support"?

    If it has and you encounter a bug, you may be forced to upgrade at an
    inopportune time.

    skip, Aug 30, 2006
  18. Ray

    sjdevnull Guest

    Well, let's see. We have about 5 live servers that would need to be
    upgraded. They're running an old enough version of the OS that 2.2 is
    the last supported release. Fine, building a new python release
    ourself is not a huge deal--but it means that we're no longer on the
    vendor's automatic update system for python and related packages.

    And, of course, we use mod_python. That needs to be rebuilt against
    the new python version. We also have a number of 3rd-party packages
    installed; each of those needs to be re-installed for the new python
    version, and possibly rebuilt first if it has any C extension modules.

    The real question in most production environments isn't "why not
    upgrade?", it's "why upgrade?". Until a new release has features that
    are going to be valuable enough to your project to offset the cost of
    upgrading, why would you bother?
    sjdevnull, Aug 30, 2006
  19. Ray

    John Salerno Guest

    Good way to put it. Now I'm starting to see how much of a pain it can be. :)
    John Salerno, Aug 30, 2006
  20. Ray

    Aahz Guest

    My company uses 2.2 and 2.3; we hope to drop 2.2 Real Soon Now.
    Aahz, Aug 30, 2006
    1. Advertisements

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.