Your Million-Dollar Python Project @ PyGTA

PyGTA on Tuesday should be fun.  The question is:

If you had a million dollars (CDN) to spend on a Python project, what would you spend it on?

Sure, money doesn't solve all problems, but if you had it available and earmarked for "something python", what would you do with it?  We'll assume a project of no longer than 5 years or so...

Some considerations:

  • do you hire, give bounties, partner with universities, or sponsor developers to go to sprints
  • do you hire 5 crack programmers, 10 average ones, or 40 so-so ones
  • do you hire just yourself, just people you know, shop the idea around (bids etc), or go public
  • do you spread the money among many projects, or just one
  • do you do something commercial or Open Source
  • do you build something new, enhance/fix something existing, advertise/document something, or set up some social structure
  • do you focus on tools, core language, libraries or frameworks
  • do you fix an annoyance, add something missing, remove something unneeded, or change something
  • do you want to push Python into new markets, or fix issues in current markets
  • should we spend money on Python at all, or will the money taint the process?
So, what would you do with CDN$1,000,000 to make Python better?


  1. Tennessee Leeuwenburg

    Tennessee Leeuwenburg on 11/17/2008 3:07 a.m. #

    I would pick something inspiring. A million bucks doesn't come free very often, so I would take the opportunity to pursue non-financial goals. However, a million bucks won't last very long in fact if it is used to pay people wages.

    I would hire three crack programmers for $150k each and tackle something truly innovative. My top five Python possibilities are explored at, but for my million I would explore artificial intelligence. While I think that saying that you think AI is possible is a bit like admitting to believing in fairies, I actually think there are rich avenues for exploration that for some reason the world at large has not undertaken. Man, I would love that opportunity...

    I would pick this high-profile, high-risk, innovative project ahead of a "metapython" project because I believe that Python as a language will continue to make inroads into "bread and butter" programming on its own by virtue of its clear existing advantages.

    A million bucks at 150k*3 would last a couple of years, which is clearly not enough to actually develop an AI, but it is enough to put in place the early code which would make a community-run effort possible.

    Anyway, sorry for rambling on your blog, but my imagination just started running away from me... I'm not sure if this comment is what you were hoping for, or whether you were really just trying to stimulate discussion about what might advance Python most as a language.


  2. Steve

    Steve on 11/17/2008 4:35 a.m. #

    4 programmers @ 85k + performance incentives for 2 years. The goal, an opensource *pythonic* version of J2EE.

  3. Ken

    Ken on 11/17/2008 6:48 a.m. #

    I would set up an endowment fund for PyCon, enabling it to provide 'more' in the way of services and support to attendees.

  4. horace

    horace on 11/17/2008 7:27 a.m. #

    i would put it into more manpower for the pypy project. :p

  5. Mike Fletcher

    Mike Fletcher on 11/17/2008 8:17 a.m. #

    "Ramble" away, the whole point of the lazy-web is to do my PyGTA homework for me :) . I'd love to work on AI too, but I'd peg it at a decade or more to get "real" AI working... you may have a cheaper path in mind :) .

  6. André Roberge

    André Roberge on 11/17/2008 8:39 a.m. #

    I would create a site devoted to collecting basic algorithms, with explanation (similar to the Python cookbook - or Numerical Recipes) covering all aspects of a typical undergraduate cs education (and other algorithms used in physical science e.g. bioinformatics).

    10k$ as an honorarium for each of 10 senior editors (vetted by the PSF)

    A 100$ "bounty" would be paid to the author of each algorithm selected.

    Rough goal: 2000 algorithms (sub-total cost: 300k$)

    5k$ honorarium each for 20 junior editors who would approve "doctest-based questions (usable by Crunchy as interactive exercises)". 10$ "bounty" for each such exercise, when approved.

    Rough goal: 50000 programming exercises.

    100k$ for other coordination costs, including server, bandwidth, etc.

  7. Heikki Toivonen

    Heikki Toivonen on 11/17/2008 12:45 p.m. #

    I would hire handful of good programmers and task them first and foremost with:

    * CPython JIT

    I actually believe I read about an effort towards this end started by the same guy who lead the Google Chrome Javavascript JIT effort (can't find the link now). There was a mention that this effort could make it easier to get rid of the GIL too. This would then lead to the next two major items I'd like to see improvements in if there is any money left:

    * Python on mobile devices
    * CPython without GIL

  8. techtonik

    techtonik on 11/19/2008 8:51 a.m. #

    Improve developer's experience so that they could concentrate on improving code rather then struggling with docs, mails and messages.

    This requires some tools. Tools to increase visibility into design, architecture and into the process.
    1. Single Sign On service
    1.1 Fix bugs in janrain OpenID library, add design documentation
    1.2 Add unified developer profile that requires only one registration for,, etc.
    1.3 Add OpenID to developer profiles (as a relying party)

    2. Web interface for development activities 2.1 Integrate with version control system
    2.1.1 Allow web-interface directly commit changes to VCS (for documentation edits, for example)
    2.1.2 Committed changes are recorded with developer's profile credentials

    2.2 Online documentation correction system
    2.2.1 Everyone can "Propose an improvement" (even without a developer's profile)
    2.2.2 Proposal consist of wiki-like page edit recorded as a patch and a message that lists references and reasons for a change
    2.2.3 All proposals are placed into queue that can be accepted/declined
    2.2.4 If approved by members with direct commit privileges, proposal is committed from web-interface automatically, adding reason message and a note who reviewed the change

    2.3 Code review system to read and criticize sources, to reference specific parts of code from mails and reports

    2.4 Patch review system
    2.4.1 Add patch against specified revision from code review
    2.4.2 View patch as a diff in the context of current revision
    2.4.3 Edit revision to make a patch
    2.4.4 Review patch and schedule it for commit
    2.4.5 Scheduled patches are applied online from web-interface
    2.4.6 There is patches queue awaiting moderation
    2.4.7 Patches are applied with committer's name and reviewer's comments even if committer doesn't have a direct commit privilege

    2.5 User-based test harness
    2.5.1 Everybody can submit their tests from web-interface
    2.5.2 After review for maliciousness, tests are added to the buildbot for dispatching
    2.5.3 Buildbot tests can be linked to bug reports to automatically close this bugreport when test passes
    2.5.4 Linking should be done by users - it will encourage them to write tests and patches

    2.6 Expose API for services like LinkedIn or launchpad to link arising issues/applications to Python bugs

    3 Educational materials
    3.1 Reduce amount of texts and put things that are not actual into archive
    3.2 Add links to every page to mark material as outdated or "need revision"
    3.3 Add more diagrams and visual tutorials
    3.4 MIT, Berkeley grants to develop software construction courses with Python in mind
    3.5 Revise O'Reilly's cookbook and add architectural patterns - component and plugin system from Trac, continuations from Stackless, pipe system from Kamaelia, Twisted "pasta factory"

    4 Tools to filter bugs, refactor bug comments

    Next, I would concentrate on hardware accelerators that could boost performance of Python/Stackless multiprocesses/microthreads even further. Ideally these universal accelerators provide hardware logic that can be flexibly programmed at run-time to be run on speeds much greater than a main CPU/bridges are capable.

Comments are closed.


Pingbacks are closed.