Advertisement

Jython on Django

May. 6, 2009
Advertisement

More Related Content

Viewers also liked(20)

Advertisement

Jython on Django

  1. Django on Jython Frank Wierzbicki frank.wierzbicki@sun.com
  2. Who am I? • Frank Wierzbicki • Project lead for Jython • I work at Sun (Oracle?) on Jython fulltime
  3. What is Jython? • Python that runs on the JVM • Compiled to Java bytecodes instead of Python bytecodes • Call Java code seamlessly from Python code
  4. Jython Status • Current prod version 2.2 is not useful for Django • Jython 2.5 beta4 is out • First RC as early as this Friday • So production release real-soon-now
  5. Modjy • Modjy implements WSGI for Jython • Acts as a bridge to Java Servlets • integrated into Jython’s core • This is a big part of how we get Django working.
  6. zxJDBC • zxJDBC implements DB-API • integrated into Jython’s core • Another crucial piece to get Django working.
  7. Jython on Django Status • Works well with Django 1.0.3 and postgresql • Other databases in progress: MySQL, Oracle, SQLite, MS SqlServer • Django 1.1 has some refactorings that Jython will need to catch up on...
  8. Why Jython? • Massive amounts of Java code out there • Some really useful Java libs • Great JVM ecosystem • Internal Java apps that are not yet exposed to the web
  9. What can I use? • setuptools • ez_install • virtualenv • pip • many more pure Python tools
  10. What can’t I use yet? • c-extensions • PIL • ctypes (but we’re working on this one!) • iPython (working on this too!)
  11. Configure Jython • Get ez_setup.py • run “jython ez_setup.py” • In Jython’s bin directory will be an ez_install that runs from Jython
  12. Installing Django on Jython • Get 1.0.3+ Django - run “jython setup.py install” • From http://django-jython.googlecode.com get django-jython-1.0b1.tar.gz, untar it and run “jython setup.py install” • see the django-jython project on googlecode.com for more detail
  13. Java Platform • Now takes advantage of Java 5 libraries • Java 5 concurrency libs: No GIL! • Use a choice of Java garbage collectors • Use Java native threads • -J flag namespace for JVM config
  14. Java Integration • Jython integrates well with Java • Java classes and interfaces can be subclassed from Jython • These subclasses are now “new style” classes.
  15. Example: The Java lib poi can read Excel
  16. Deployment • run “jython manage.py war --include-java- libs=jdbcdriver.jar” • This will produce a “war file” • Copy this war file to the auto-deploy directory for most application servers (like GlassFish)
  17. war format for doj |-- WEB-INF | |-- lib | `-- lib-python | |-- Lib | |-- django | |-- doj | `-- mysite `-- media
  18. Why Django on Jython? • Lots of ops departments out there that want to deploy to Java App Servers - “give us a war file” • They have lots of tools for monitoring, etc • Jython has a good story for threading and performance - and it’s getting better.
  19. Da Vinci Machine • JVM gets friendlier to dynamic languages • On the project plan for JDK 7 -- some of it has already there in a hidden state for JDK6 • Method Handles, Invokedynamic, etc • Hotspot is one of the world’s best tuned VMs - about to be tuned better for us!
  20. Jython Book due in 2009 from Apress • Josh Juneau • Jim Baker • Leo Soto • Victor NG • Frank Wierzbicki
  21. Where to Find Out More • http://www.jython.org • http://wiki.python.org/jython • http://fwierzbicki.blogspot.com • Twitter: fwierzbicki • http://www.netbeans.org/features/python/ • https://glassfish.dev.java.net/
Advertisement