Ted Leung, XML architect and author, Apache Software Foundation (ASF) member, and longtime Python developer, as well as Frank Wierzbicki, lead implementer of the Jython project, Python on the Java Virtual Machine (JVM)*, recently became Sun employees. Ted and Frank join other technologists -- such as Ian Murdock, Charles Nutter, Thomas Enebo, and Nick Kew -- who have recently joined Sun to pursue open-source project development and community activities. Python is a dynamic object-oriented programming language that is used for many kinds of software development, from web to desktop applications, running on a spectrum of operating systems as well as virtual machines. We sat down with Ted and Frank to discuss their new roles. Sun Developer Network (SDN): What are you guys going to be doing at Sun? Ted: My job is to help Sun figure out how dynamic languages, Python specifically, fit into the various things that are going on in the company. That charter covers things from DTrace probes for CPython on OpenSolaris, to Django on Jython inside of GlassFish, to great support for Python in NetBeans. My responsibilities also include helping Sun to play well as a member of the Python community. Frank: Sun has hired me primarily to continue my work on Jython on a full-time basis. I will also be consulting with other parts of the company on how to use or better use Jython. For example, I've been helping the NetBeans folks with some pointers on parsing modern Jython. SDN: What is the story behind the two of you joining Sun? Ted: I had a very public job search after some restructuring of the Chandler project, and Tim Bray contacted me about coming to Sun to work on Python stuff, which then expanded into dynamic-language stuff in general. I've been interested in the dynamic-language space since before Java was introduced, and I was really excited by the prospect of helping those languages break into the mainstream of software development. Frank: Tim Bray contacted me more or less out of the blue a few weeks ago, asking if I would like a job working on Jython. Of course, that was an easy question for me to answer. SDN: For folks new to Python, how would you describe it? Ted: Python is a dynamically typed -- meaning that types are checked at runtime -- programming language. It supports object-oriented programming but has been strongly influenced by a number of other languages. Python has been very carefully designed by Guido van Rossum and a team of very smart people from all over the world. The C implementation of Python has been very carefully tuned, and the core data structures are amazingly fast. There are also a large number of libraries available, which make it easy to take on many programming tasks. SDN: How does Jython fit into all this? Frank: A great thing that Guido van Rossum has done with respect to the design of Python is to make it very clear that the C implementation of Python is just one implementation of an abstract Python language. Throughout Python's documentation, comments can be found about this or that feature being an implementation detail. For example, CPython -- what we call the C implementation of Python, to differentiate from an abstract Python -- uses reference counting for memory management, while Jython uses the JVM's garbage-collection mechanism. So back to the question: Jython is an implementation of Python that integrates very well with Java code. I think in the future we will see more developers writing application code on the JVM with languages like Jython -- faster development time, easier to change -- and saving Java for more system-style programming. SDN: Will the Da Vinci Machine project assist with this? Frank: I have very high hopes for the Da Vinci Machine. There are a number of implementation details on the JVM that get in the way of efficient implementation of certain features of Jython and other languages like JRuby. The JRuby folks have already influenced the development of the Da Vinci Machine. The pain points of implementing JRuby on the JVM are quite similar to the pain points of implementing Jython. SDN: Is Sun only interested in Jython, Python on Java? Ted: People are used to thinking of Java as the primary platform at Sun. But there are lots of platforms at Sun now, including OpenSolaris. We want developers to have their choice of dynamic language on their choice of platform. We know that there are people who want to use Python on OpenSolaris -- and Linux, and Windows, which are also platforms that Sun sells -- so support for "regular" Python is also important in order for Sun to give developers this kind of choice. Frank: Sun is interested in both Python and Jython. I think the days of Java as the one platform for all needs has passed at Sun. Sun is very interested in all sorts of languages and platforms now, like Python, Ruby, PHP, Java, the JVM, LAMP, and so on. SDN: What is the support for Python today within Sun's technologies and products? Frank: Right now, there's just the version of Python that is delivered in OpenSolaris, which is version 2.4.4, I believe. Of course, we are going to be changing this as quickly as we can. SDN: You recently were at PyCon, what did you learn? Ted: I learned a ton of things at PyCon this year and wrote a blog post about it. Probably the biggest thing that I learned was that interest in Python is really taking off. The best technical thing that I learned was from a talk about the cost model for the Python core container classes. Understanding the cost model is important because it helps developers to know what will run fast and what will run more slowly. Frank: At this year's PyCon, I learned that the enthusiasm for Jython in the Python community is much greater than I had expected. It seems that every Python framework or Python app wants to know how or when their project will work in Jython. And of course, we made some progress in this area at PyCon. See my blog for details. SDN: How can folks get started with Python and Jython? Ted: Mark Pilgrim's Dive Into Python is a great free introduction to Python. Since Python is open source, people can just go and download it from python.org. Depending on your operating system, you might already have it installed. All you really need is a text editor and a copy of Python, and you are ready to go. If you want fancier tools, there are some of those around, and we'll be doing our part to improve the tools story for Python via NetBeans. Frank: Most Python documentation applies to Jython as well -- for example, the book that Ted mentioned, Dive into Python, is a good resource for learning Jython as well. For Jython-specific information, see the Jython user guide SDN: How and where can folks get involved? Ted: There are several ways people can get involved:
Frank: For getting started with contributing code to Jython, see the developer guide on the Jython wiki. And there is an IRC channel For contributing to the documentation, the Jython wiki is editable by anyone, though you do have to set up a username first. The spammers have forced that. Setting up an account can be done here. Also see Sourceforge.net to join the Jython mailing lists. * As used on this web site, the terms "Java Virtual Machine" or "JVM" mean a virtual machine for the Java platform. See Also
Ted Leung's Blog
| ||||||||||
|
| ||||||||||||