Wednesday, January 26, 2011

Jython

Jython, lest you do not know of it, is the most compelling weapon the Java platform has for its survival into the 21st century - SeanMcGrath

Why Jython
There are numerous alternative languages implemented for the Java VM. The following features help to separate Jython from the rest:
Dynamic compilation to Java bytecodes - leads to highest possible performance without sacrificing interactivity.
Ability to extend existing Java classes in Jython - allows effective use of abstract classes.
Optional static compilation - allows creation of applets, servlets, beans, ...
Bean Properties - make use of Java packages much easier.
Python Language - combines remarkable power with very clear syntax. It also supports a full object-oriented programming model which makes it a natural fit for Java's OO design.

What Does Jython Do Well?

Prototyping

Java investigation

   >>> from java.util import Date
   >>> d = Date()
   >>> print d
   Sat Jan 08 16:26:16 CST 2005
   >>> from java.util import Random
   >>> print dir(Random)
   ['__init__', 'nextBoolean', 'nextBytes', 'nextDouble', 'nextFloat',
   'nextGaussian', 'nextInt', 'nextLong', 'seed', 'setSeed']
   >>>

Making bean properties accessible

   >>> print Date().time
   1105500911121

Glues together libraries already written in Java
Excellent embedded scripting language
Object Domain UML Tool
PushToTest
Drools

Differences - Python & Jython

Read more: Jython: Python for the Java Platform