|
|
Log in / Subscribe / Register

Development

Interview with Frank Wierzbicki from the Jython project

By Forrest Cook
June 22, 2009
Jython is a version of the Python language that is written in Java while standard Python (CPython) is written in C. From the project's V2.2 web site: "Jython is an implementation of the high-level, dynamic, object-oriented language Python written in 100% Pure Java, and seamlessly integrated with the Java platform. It thus allows you to run Python on any Java platform."

We conducted an email interview with Jython developer Frank Wierzbicki.

Greetings, Could you tell us about yourself and your role with the Jython project?

I started using Jython for testing and scripting the Java code I was working on in 1999. Ever since it remained a favorite tool for me. Sometime in 2004 I started contributing patches to the Jython project until the then project lead Brian Zimmer gave me commit privileges. A few months later Brian had some new stuff in his life that was not going to leave him with enough time for Jython development. At that point I was the heaviest contributor, and he offered me the lead role.

How many team members are on the project, and what are their functions?

There are about eight active developers committing code to Jython. I don't think there are really any defined roles, developers work in those parts of the codebase that interests them. There are some areas where one developer does most of the work, but it isn't a rigid system at all.

What was the motivation behind the creation of Jython?

Jython was started by Jim Huginin in the late nineties -- Jython's repository marks his first checkin as 1997. His motivations are described in the Story of Jython.

Do any companies provide financial backing for Jython?

Sun Microsystems allows me to spend most of my time working on Jython.

What kinds of of applications would be better to write in Jython instead of C Python?

Any application that needs to access frameworks or libraries written in Java will find that Jython does a very good job in this area. Java code can be imported and used directly by Jython code.

Applications that want to access multiple cores using threads should also consider Jython. Our multi-threading story is potentially better than CPython's due to our lack of a GIL (Global Interpreter Lock). Our dictionary implementation is based on the ConcurrentHashMap from the wonderful java.util.concurrent APIs, which means that our dictionary should scale very well in the face of multiple threads. To make good use of multiple cores from CPython, you'd need to use multiple processes or drop to C code for your threading.

How does the memory usage and speed of Jython compare with C Python?

Jython requires a larger minimum memory footprint compared to CPython, but Jython uses Java's garbage collection mechanisms, which are far more sophisticated than CPython's. I don't think this has been measured, but my gut would say that we will do better for some memory intensive tasks.

Speed-wise, we perform between the same and about two times slower compared to CPython for most tasks. There are a few areas where we find that we are faster than CPython, see here for one.

As an aside, the 2.5.0 cycle focused almost exclusively on CPython compatibility. We have done very little performance work to date. Performance will be a big focus for 2.5.1 and 2.6.

Is Jython more popular with users of Linux, other types of Unix or Windows?

I don't actually know the user statistics here. I do know that most of the Jython developers work day to day on OS X. From the questions that we get on the mailing lists and IRC, I know that Linux, Unix, and Windows are well represented in our user populations.

Could you tell us about the enhancements that have been added to the recently released Jython 2.5.0?

Our primary focus for 2.5.0 was compatibility with the 2.5 version of CPython. We have made great strides in this area, supporting far more of the libraries that ship with CPython, and we have specifically worked on getting more real world frameworks working on Jython. Some of these frameworks that are working well on Jython are: Pylons 0.9.7, Django 1.0.3 and SQLAlchemy 0.6.0.

What are the plans for upcoming releases of Jython?

We plan to release a 2.5.1 fairly quickly, to round out some of the smaller bugs that we where not able to fix for the 2.5.0 release. After that we will work on 2.6, followed by a 3.x. I don't have any real timelines for these yet.

I also plan to take advantage of the really cool work being done for JDK 7 in the Da Vinci Machine project which aims to improve the support that the JVM has for dynamic languages. Using this work (much of which has already made it's way into OpenJDK) Jython will perform better with much simpler internal code.

Is there anything else you would like to share with our readers about Jython?

Jython is a great platform for Python developers that want to work in a Java environment, and a great tool for Java developers who want to access the highly productive, highly readable, and powerful Python language.

Comments (4 posted)

System Applications

Database Software

dbf converter 0.02 released

Version 0.02 of dbf converter has been announced. "dbfconverter.py is platform independent python script. It converts database with dbf files or single dbf file into sql code, wich you can load into any sql database."

Full Story (comments: 1)

PostgreSQL Weekly News

The June 21, 2009 edition of the PostgreSQL Weekly News is online with the latest PostgreSQL DBMS articles and resources.

Full Story (comments: none)

Embedded Systems

BusyBox 1.14.2 released

Version 1.14.2 of BusyBox, a collection of command line utilities for embedded systems, has been announced. "Bug fix release. Contains fixes in ash ('.' builtin), ftpd, httpd, modprobe (better exit code compatibility), readlink (more options supported), telnetd (now closes file descriptors in childred, it was forgetting to do so)."

Comments (none posted)

Interoperability

Four new versions of Samba available

Versions 3.3.6 (security fix), 3.2.13 (security fix), 3.0.35 (security fix) and 3.4.0rc1 (release candidate) of Samba have been announced.

Comments (none posted)

Networking Tools

libnfnetlink 1.0.0 released

Version 1.0.0 of libnfnetlink has been announced, it includes new features and bug fixes. "libnfnetlink is the low-level library for netfilter related kernel/userspace communication. It provides a generic messaging infrastructure for in-kernel netfilter subsystems (such as nfnetlink_log, nfnetlink_queue, nfnetlink_conntrack) and their respective users and/or management tools in userspace."

Full Story (comments: none)

Robotics

Ada and LEGO MINDSTORMS NXT

The Ada language is being used for an educational robotic software control system. ""GNAT for LEGO MINDSTORMS NXT is a GPL port for the GNAT compilation system to the LEGO NXT robotic platform, designed to offer an educational platform for teaching and learning embedded systems development."

Full Story (comments: none)

Telecom

Announcing ConnMan.net

Intel and Nokia have jointly launched the ConnMan project, an open source project to accelerate and expand development of Internet connection management for Linux Devices. "Connman.net is now the place to bring developers together who are interested in furthering the development of Internet connection management within Linux. Review the source code for more information. ConnMan is licensed under GPLv2, and provides a daemon for managing Internet connections within Linux devices."

Full Story (comments: 48)

Web Site Development

Karrigell 3.0 released

Version 3.0 of Karrigell, a Python web framework, has been announced. "Karrigell has been around since 2002 and after numerous versions, until 2.4.0 last year, it needed a complete rewriting. Some modules had been written long ago, using out-of-date patterns ; the global architecture needed cleaning up, to replace an accumulation of modules added one release after the other ; most important, the previous versions were unable to run reliably in a multithreaded environment, which was a serious limitation for professional web developement ".

Full Story (comments: none)

nginx 0.6.38 announced

Version 0.6.38 of the nginx web server has been announced. The CHANGES document says: "Feature: the "keepalive_requests" directive."

Comments (none posted)

Desktop Applications

Desktop Environments

GNOME 2.27.3 released

Version 2.27.3 of GNOME has been announced. "This is the third development release towards the wonderful 2.28 release! Various bug fixes and nice improvements in several modules. Fun, fun, fun!"

Full Story (comments: none)

GNOME Software Announcements

The following new GNOME software has been announced this week: You can find more new GNOME software releases at gnomefiles.org.

Comments (none posted)

KDE Software Announcements

The following new KDE software has been announced this week: You can find more new KDE software releases at kde-apps.org.

Comments (none posted)

Blog series on XInput 2

Peter Hutterer has published a three part blog series (part 1, part 2 and part 3) on X11's XInput 2. "XI2 is now merged into master. Over the next couple of days, I will post various recipes on how to deal with the new functionality. The examples here are merely snippets, full example programs to summarize each part are available here." (Thanks to Paul Wise).

Comments (13 posted)

Xorg Software Announcements

The following new Xorg software has been announced this week: More information can be found on the X.Org Foundation wiki.

Comments (none posted)

Desktop Publishing

rst2pdf 0.11 is out

Version 0.11 of rst2pdf has been announced. "Rst2pdf is a tool to generate PDF files directly from restructured text sources via reportlab. This version includes many bugfixes and some new features compared to the previous 0.10.1 version, including but not limited to embedding PDF images, much improved image sizing, nicer list layouts, better styling, page backgrounds, and more than 15 bugs fixed."

Full Story (comments: none)

Educational Software

Sugar on a Stick Strawberry released

Sugar Labs has announced the release of the Sugar on a Stick Strawberry learning platform. "The Sugar on a Stick Strawberry release is based Fedora 11 and includes the latest updates as of June 22. It also features the last Sugar desktop environment, namely version 0.84, and additional activities to enrich the user experience."

Comments (none posted)

Games

Freecell Solver 2.32.0 released

Version 2.32.0 of Freecell Solver has been announced, it includes several new capabilities and bug fixes. "Freecell Solver is an open-source (MIT/X11 Licensed) ANSI C-based library and some standalone command-line tools for solving Freecell and similar Solitaire variants such as Baker's Game, Seahaven Towers and Eight Off as well as Simple Simon."

Full Story (comments: none)

Interoperability

Wine 1.1.24 announced

Version 1.1.24 of Wine has been announced. Changes include: "Support for freedesktop file associations. Support for exception handling on 64-bit. Improved ARB shaders. Fixes for the FBO mode. Many listview improvements. Various bug fixes."

Comments (none posted)

Mail Clients

Thunderbird 2.0.0.22 available for download

Version 2.0.0.22 of Thunderbird has been announced. "We strongly recommend that all Thunderbird users upgrade to this latest release. If you already have Thunderbird 2.0.0.x, you will receive an automated update notification within 24 to 48 hours. This update can also be applied manually by selecting "Check for Updates?" from the Help menu."

Full Story (comments: none)

Music Applications

ride tab editor 2.0 released

Version 2.0 of ride tab editor has been announced. "ride tab editor is a freeware multiplatform tab editor for bass, guitar and drums. included is a csound tool released under a dual license (free for non-profit the qt license in other words). to convert the drum tabs into csound scores".

Full Story (comments: none)

ride tab editor 2.02 released

Version 2.02 of ride tab editor has been announced, it includes some GUI improvements. "ride tab editor is a tab editor created in 2004 that originally allowed guitar, bass and drums. ride tab editor 2 is started to address problems people had of finding tab editors for other instruments by allowing them to create custom format definitions. It is also very useful to create text based piano rolls for text based music programming languages such as csound. two examples are provided."

Full Story (comments: none)

Office Applications

Leo 4.6 beta 2 released

Version 4.6 beta 2 of Leo has been announced. "Leo is a text editor, data organizer, project manager and much more."

Full Story (comments: none)

Web Browsers

The initial publication of about:mozilla

The about:mozilla blog site has been announced. "I’m in the process of re-re-evaluating the purpose and utility of this blog, so there may be new activity here soon (once I sort out what I want to do with it). In the meantime, I’ve figured out how to autogenerate a list of all the about:mozilla archives! You can find every issue we’ve ever published on the Newsletter archives page. Enjoy!" (Thanks to Joe Drew).

Comments (none posted)

Miscellaneous

SeaMonkey 1.1.17 released

Version 1.1.17 of SeaMonkey has been announced. "Today, the SeaMonkey project released a new version of its all-in-one Internet suite. SeaMonkey 1.1.17 closes several security vulnerabilities and fixes a few smaller problems found in previous versions. With that, SeaMonkey stays at the same level of security as its sibling Firefox 2, which is issuing updates for the same problems this week as well."

Full Story (comments: none)

Languages and Tools

Caml

Caml Weekly News

The June 23, 2009 edition of the Caml Weekly News is out with new articles about the Caml language.

Full Story (comments: none)

PHP

PHP 5.3.0RC4 released

Release candidate 4 of PHP 5.3.0 has been announced. "The PHP development team is proud to announce the fourth release candidate of PHP 5.3.0 (PHP 5.3.0RC4). This RC focuses on bug fixes and stability improvements, and we hope only minimal changes are required for the next candidate or final stable releases. PHP 5.3.0 is a newly developed version of PHP featuring long-awaited features like namespaces, late static binding, closures and much more. "

Comments (none posted)

Python

Python-URL! - weekly Python news and links

The June 20, 2009 edition of the Python-URL! is online with a new collection of Python article links.

Full Story (comments: none)

CodeInvestigator 0.13.0 released

Version 0.13.0 of CodeInvestigator, a tracing tool for Python, has been announced. "Bug fix: Changes to imported files were not taken into account. This version only works with Python 2.6. Some modules disappear in Python 3.0 and this version has these modules replaced."

Full Story (comments: none)

cx_Logging 2.0 announced

Version 2.0 of cx_Logging has been announced, it includes numerous improvements. "cx_Logging is a Python extension module which operates in a fashion similar to the logging module that ships with Python 2.3 and higher. It also has a C interface which allows applications to perform logging independently of or in tandem with Python."

Full Story (comments: none)

ErrorHandler 1.0.0 released

Version 1.0.0 of ErrorHandler has been announced. "I'm pleased to finally get around to announcing the release of ErrorHandler. This is a handler for the python standard logging framework that can be used to tell whether messages have been logged at or above a certain level. This can be useful when wanting to ensure that no errors have been logged before committing data back to a database."

Full Story (comments: none)

HDF5 for Python 1.2 announced

Version 1.2 of HDF5 for Python, a general-purpose Python interface to the Hierarchical Data Format library, has been announced. "I'm pleased to announce the availability of HDF5 for Python 1.2 final! This release represents a significant update to the h5py feature set."

Full Story (comments: none)

MailingLogger 3.3.0 released

Version 3.3.0 of MailingLogger has been announced. "Mailinglogger provides two handlers for the standard python logging framework that enable log entries to be emailed either as the entries are logged or as a summary at the end of the running process."

Full Story (comments: none)

Numexpr 1.3.1 released

Version 1.3.1 of Numexpr has been announced. "Numexpr is a fast numerical expression evaluator for NumPy. With it, expressions that operate on arrays (like "3*a+4*b") are accelerated and use less memory than doing the same calculation in Python. This is a maintenance release. On it, support for the `unit32` type has been added (it is internally upcasted to `int64`), as well as a new `abs()` function (thanks to Pauli Virtanen for the patch)."

Full Story (comments: none)

TestFixtures 1.6.0 released

Version 1.6.0 of TestFixtures has been announced. "I'm pleased to announce the first advertised release of TestFixtures. This is a collection of helpers and mock objects that are useful when writing unit tests or doc tests."

Full Story (comments: none)

Tcl/Tk

Tcl-URL! - weekly Tcl news and links

The June 20, 2009 edition of the Tcl-URL! is online with new Tcl/Tk articles and resources.

Full Story (comments: none)

Tcl-URL! - weekly Tcl news and links

The June 24, 2009 edition of the Tcl-URL! is online with new Tcl/Tk articles and resources.

Full Story (comments: none)

Debuggers

PuDB 0.92.1 - a console-based visual debugger

Version 0.92.1 of PuDB has been announced. "PuDB is a full-screen, console-based visual debugger for Python. Its goal is to provide all the niceties of modern GUI-based debuggers in a more lightweight and keyboard-friendly package. PuDB allows you to debug code right where you write and test it--in a terminal. If you've worked with the excellent (but nowadays ancient) DOS-based Turbo Pascal or C tools, PuDB's UI might look familiar."

Full Story (comments: none)

Version Control

bzr 1.16 released

Version 1.16 of the bzr adaptive version control system has been announced. "This version of Bazaar contains the beta release of the new ``2a`` repository format, suitable for testing by fearless, advanced users. This format or an updated version of it will become the default format in Bazaar 2.0. Please read the NEWS entry before even thinking about upgrading to the new format. Also included are speedups for many operations on huge projects, a bug fix for pushing stacked new stacked branches to smart servers and the usual bevy of bug fixes and improvements."

Full Story (comments: none)

GIT 1.6.3.3 released

Version 1.6.3.3 of the GIT distributed version control system has been announced, it includes numerous bug fixes.

Full Story (comments: none)

Miscellaneous

libfiu: fault injection in userspace

Version 0.1.1 of libfiu, a C library for fault injection, has been announced. "It comes with some tools that can be used to simulate failures in the POSIX functions without having to modify the application's source code. The main application (or at least the one I had in mind when writing it) is to simplify automated testing of software behaviour at failure scenarios, for software which is supposed to be fault-resistant or at least gracefully cope with failures."

Full Story (comments: 3)

Page editor: Forrest Cook
Next page: Linux in the news>>


Copyright © 2009, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds