Differences between revisions 4 and 7 (spanning 3 versions)
Revision 4 as of 2006-04-16 12:17:34
Size: 2304
Editor: cpe-69-204-172-26
Comment: removed dead outside link
Revision 7 as of 2007-05-03 12:21:54
Size: 2443
Editor: 57
Comment: footnote to explain GIL
Deletions are marked like this. Additions are marked like this.
Line 33: Line 33:
  * Protyping   * Prototyping
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


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


Differences - Python & Jython

Python

Jython

  • 100% Java
  • Any JVM (currently 1.1+)
  • Compiles to .class
  • Extend with Java
  • Truly multi-threaded
  • Java garbage collection

WhyJython (last edited 2015-04-30 17:58:58 by JimBaker)