0% found this document useful (0 votes)
111 views21 pages

TD MXC Python Wierzbiki

The document discusses Python and Jython for developer productivity. It provides an overview of Python and Jython, including examples of basic Python and Jython code. It also highlights several popular uses of Python and Jython, including in Google, YouTube, OpenSolaris, and for application administration. The document demonstrates Jython installation and basics, and shows examples of using Jython with databases, Swing, Django, Hibernate/EJB3, and SQLAlchemy. Additional resources are provided at the end.

Uploaded by

armandochagoya
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
111 views21 pages

TD MXC Python Wierzbiki

The document discusses Python and Jython for developer productivity. It provides an overview of Python and Jython, including examples of basic Python and Jython code. It also highlights several popular uses of Python and Jython, including in Google, YouTube, OpenSolaris, and for application administration. The document demonstrates Jython installation and basics, and shows examples of using Jython with databases, Swing, Django, Hibernate/EJB3, and SQLAlchemy. Additional resources are provided at the end.

Uploaded by

armandochagoya
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 21

Developer Productivity with

Python and Jython

1
Me
• Frank Joseph Wierzbicki
(frank.wierzbicki@sun.com)
• Project lead for Jython
• Java Developer for 10 years
• Python/Jython Developer for 10 years
• Contributor to Jython for 4+ years

Sun Confidential: Internal Only 2


What is Python?
• A programming language that is:
> Elegant and Robust
> Powerful and as applicable as traditional compiled
languages
> Easy to pick up, readability is at the forefront of the
language design
> Easy to use, yet powerful
• The fastest growing language of 2007 according to
Tiobe (http://www.tiobe.com)

Sun Confidential: Internal Only 3


What is Jython?
• Jython brings the Python language to the JVM.
• Jython has full and nearly seamless integration into
any Java libraries and code.
• Jython can access many of the libraries and
frameworks written in Python.

Sun Confidential: Internal Only 4


Some code
print “hello world”

def hello(name):
print “hello”, name

Sun Confidential: Internal Only 5


Some Users of Python and Jython
• Python
> Google and YouTube
> The new OpenSolaris packaging system (IPS)
> Ubuntu, Red Hat, etc for system utilities
• Jython
> IBM WebSphere for admin scripting
> BEA Weblogic for admin scripting
> Testing engines like PushToTest and the Grinder

Sun Confidential: Internal Only 6


Demo: Jython installation
and basics

7
Jython and JDBC
• Jython has built in support for DB-API, Python's
standard database interface in the zxJDBC
package.
• zxjdbc is a thin wrapper around JDBC, Java's
standard database interface.
• Provides Python programmers with access to any
database with a JDBC driver.
• Provides Java programmers with access to any
Python frameworks that are built on DB-API

Sun Confidential: Internal Only 8


Basic Database Access
from com.ziclix.python.sql import zxJDBC

db = zxJDBC.connect("jdbc:mysql://localhost/test",
'user', 'pass', "org.gjt.mm.mysql.Driver")
cursor = db.cursor()
cursor.execute("select name from user")
for row in cursor.fetchall():
cursor.close()
db.close()

Sun Confidential: Internal Only 9


Swing from Jython
from javax.swing import JTable
from javax.swing import JFrame

rowdata = [('bill', 'Bill Williams')]


colnames = ['user name', 'full name']
table = JTable(rowdata, colnames)
frame = JFrame("Table")
frame.getContentPane().add( table )
frame.size = 400, 300
frame.visible = 1

Sun Confidential: Internal Only 10


Demo: Database Access from
Jython

11
Django
• A Python MVC framework with a web and database
bias (similar to Ruby on Rails)
• Makes creating a project very simple
• Comes with a powerful admin tool that can be used
to manage the data in your database – no need to
write your own admin tool!
• Very clean and simple design, easy to read and
write.

Sun Confidential: Internal Only 12


Demo: Django on Jython

13
Hibernate From Jython
• Hibernate is a ORM written in Java
• It can be accessed as EJB3
• Jython can be used

Sun Confidential: Internal Only 14


EJB3 From Jython
from javax.persistence import *
from hello import Continent # A Java class
emf = Persistence.createEntityManagerFactory(
"hibworld");
newEm = emf.createEntityManager();
newTx = newEm.getTransaction();
newTx.begin();
continents = newEm.createQuery('select c from Continent c \
order by c.name asc').getResultList();
print continents.size(), " message(s) found:"
for c in continents:
print c.name;
newTx.commit();
newEm.close();
emf.close(); Sun Confidential: Internal Only 15
Demo: Hibernate/EJB3 From
Jython

16
SQLAlchemy
• SQLAlchemy is a ORM written in pure Python
• Written by Michael Bayer who consults on
Hibernate by day
• Utilizes Python's strengths to create very clear ORM
code

Sun Confidential: Internal Only 17


SQLAlchemy Code Example
from sqlalchemy import *

db = create_engine('mysql://mydb:mydb@localhost/mydb')
metadata = MetaData(db)
continents = Table('continent', metadata,
Column('id', Integer, primary_key=True),
Column('name', String(40)),
)

s = continents.select()
r = s.execute()
for continent in r:
print continent.name

Sun Confidential: Internal Only 18


Where to find out more
• http://www.jython.org
• http://fwierzbicki.blogspot.com
• Twitter: fwierzbicki
• http://www.python.org

Sun Confidential: Internal Only 19


El Zen de Python
• 1. Hermoso es mejor que feo.
• 2. Explícito es mejor que implícito.
• 3. Simple es mejor que complejo.
• 4. Complejo es mejor que complicado.
• 5. Plano es mejor que anidado.
• 6. Disperso es mejor que denso.
• 7. La legibilidad cuenta.
• 8. Los casos especiales no son suficientemente especiales
como para romper las reglas.
• 9. Aunque lo pragmático gana a la pureza.
• 10. Los errores nunca deberían dejarse pasar
silenciosamente. Sun Confidential: Internal Only 20
• 11. A menos que se silencien explícitamente.
• 12. Cuando te enfrentes a la ambigüedad, rechaza la tentación
de adivinar.
• 13. Debería haber una -- y preferiblemente sólo una -- manera
obvia de hacerlo.
• 14. Aunque puede que no sea obvia a primera vista a menos
que seas holandés. (NT: Guido van Rossum es holandés)
• 15. Ahora es mejor que nunca.
• 16. Aunque muchas veces nunca es mejor que *ahora mismo*.
• 17. Si la implementación es difícil de explicar, es una mala idea.
• 18. Si la implementación es sencilla de explicar, puede que sea
una buena idea.
• 19. Los espacios de nombres son una gran idea -- ¡tengamos
más de esas!
Sun Confidential: Internal Only 21

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy