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
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)
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
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
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
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
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
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
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)
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
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)
The following new GNOME software has been announced this week:
You can find more new GNOME software releases at
gnomefiles.org.
Comments (none posted)
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)
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)
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
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 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
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
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
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
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)
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
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
about:mozilla
blog site has been announced.
"
Im 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, Ive figured out how to autogenerate a list of all the about:mozilla archives! You can find every issue weve ever published on the Newsletter archives page. Enjoy!"
(Thanks to Joe Drew).
Comments (none posted)
Miscellaneous
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
The June 23, 2009 edition of the Caml Weekly News
is out with new articles about the Caml language.
Full Story (comments: none)
PHP
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
The June 20, 2009 edition of the Python-URL! is online with
a new collection of Python article links.
Full Story (comments: none)
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)
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)
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)
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)
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)
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)
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
The June 20, 2009 edition of the Tcl-URL! is online with new
Tcl/Tk articles and resources.
Full Story (comments: none)
The June 24, 2009 edition of the Tcl-URL! is online with new
Tcl/Tk articles and resources.
Full Story (comments: none)
Debuggers
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
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)
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
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>>