Python, Scientific Computing, and NumPy -- PyCon 2007 notes
I gave the last lightening talk of the conference. I told a story there I want to re-tell here for posterity.
I spent two hours in a fascinating conversation with Brian Wilson as we were "on our way out" after SciPy 2006 last Summer. He's an atmospheric scientist at JPL who was there to present GENESIS SciFlo. He's a fascinating guy with broad interests who clearly loves programming languages. Although he seems quite happy with python, he was profoundly angry with language designers for universally ignoring the needs of scientists. Computer scientists have left the rest of the sciences stranded in FORTRAN and IDL because no one will make n-dimensional arrays a native data type of the language. Python is no exception -- someone else added the n-dimensional arrays to python. (There's some hope that Guy Steele will correct this problem with Fortress, but it's not here yet).
To illustrate the point in my lightning talk I asked the scientists in the room to raise their hands -- five or ten hands went up in a room of maybe one hundred. "How many of you could do your work without NumPy?" I asked. Every hand went down. The scientists at PyCon know that python offers better tools for scientific computing and I'm sure they try to persuade their colleagues accordingly. "But how many of you have colleagues who are stranded in FORTRAN or IDL?" I asked. Every hand went back up.
My call to action was for someone to chime in next time Travis Oliphant suggests adding n-dimensional arrays to the language because Travis can't do it on his own. There's a huge opportunity for python to invite the whole scientific community to the language: NumPy has ten years of maturity and ruby doesn't have anything like it. As with all things in perl there's more than one way to do it, but nothing seems to have captured the space in the way NumPy has for python.
I hope I made it clear in my lighting talk that without NumPy python would be irrelevant for scientists. It looks like Travis is getting a little more traction for his efforts. There's a revised PEP here if you care to comment: http://mail.python.org/pipermail/python-3000/attachments/20070320/c2800d0e/attachment-0001.txt