footnote to explain GIL
|Deletions are marked like this.||Additions are marked like this.|
|Line 48:||Line 48:|
|* Bean properties accesible||* Making bean properties accessible|
|Line 54:||Line 54:|
|* Glue together libraries already written in Java||* Glues together libraries already written in Java|
|Line 69:||Line 69:|
|* GIL||* GIL [[FootNote(Global Interpreter Lock, explained in [http://docs.python.org/api/threads.html Python documentation, chapter 8.1])]]|
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
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?
- 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
Differences - Python & Jython
- Compiles to .pyc
- Extend with C
- Python Garbage Collection
- 100% Java
- Any JVM (currently 1.1+)
- Compiles to .class
- Extend with Java
- Truly multi-threaded
- Java garbage collection