In March, I attended the PyCon 2012 conference in Santa Clara, CA. This meeting is the annual gathering of the community of software developers who use and develop the Python programming lanugage. It included two days of tutorials, three days of talks packed full from 8am to 9pm, and four days of code sprints where developers come together to plan and hack on their favourite projects.

My goals for the conference were primarily to continue to develop ideas regarding the direction of PCIC’s web services, particularly with respect to our data portal since most of the back-end is written in Python. With the conference being right in the heart of Silicon Valley, this was a very good venue to meet these goals. The meeting was sponsored by many of the biggest innovators of the web: Google/YouTube, Facebook, Dropbox, Mozilla, Twitter and plenty of other household web names. Most of these companies have built small empires on top of Open Source Software, so it is encouraging to see them giving so much back to the community and engaging in such heavy collaboration. As both a technical meeting (e.g. on day two I spent three hours watching someone code up the entire San Francisco crime map from scratch on his laptop), and one that included a lot of high level ideas, we’ll undoubtedly continue to get value out of the experience.

While I came away from the conference with a variety of technical tips and tricks that will aid our software development, one of my bigger takeaways was how much progress has been made on the performance of high level languages, Python in particular. In the sciences we tend to either write or inherit a lot of low level C and Fortran code. To make ourselves feel better about using 40 year old languages, we like to tell ourselves that by some voodo “it’s faster”, as if the choice in languages is the single factor in program run time. In reality, computational performance is impacted far more by algorithm design, strategies for concurrency and caching, and intelligent reduction of expensive I/O, than it is by the language you are using. Therefore, one is much better off using a high level lanugage which offers compact, expressive, and ellegant syntax. This allows one to perform rapidly prototyping and apply the scientific method to your code as well as whatever scientific hypothesis you are testing. This is particularly true with a language like Python which has a vast community of intelligent people and innovative companies collaborating on it’s improvement. YouTube, which delivers one of the highest volumes of content and data of any website on earth, is written primarily in Python. Throughout the week, I witnessed numerous other case studies where people were handling extremely heavy computations and high data volumes with Python, using a fraction of the development time that you would use writing something in C or Fortran.

All in all, the conference was extremely valuable and interesting. I also won free admission to next year’s conference (by placing in the top three in the PyCon 5k), so hopefully I’ll be back in 2013 to continue engaging with the Python community.



blog comments powered by Disqus

Published

23 April 2012

Category

work

Tags