a java developer in python’s court

February 23, 2007

Yes, this is a lame posting, and I know it. But, I am in the thick of writing the second in a series of posts on implementing a tagging solution in Django, and specifically, I am exploring how to implement RESTful controllers. This has turned out to be much more involved than I thought, at times both fun and frustrating, and I finally realized that I wasn’t going to have an intelligable and complete version of that post ready this week.

But I also want to stay committed to posting to the blog every week, so I came up with this weasely post. A while back, I wanted to introduce my pair programming partner to the joys of programming in Python. He and I primarily program in Java, and he also has an extensive Perl background.

When learning a new language, especially if we only know one or two other languages already, we tend to look for ways to program in the new language the way we do in our current language(s). Its only after spending some time in the new language that we begin to understand its philosophy, its community’s culture, its idioms for solving tasks. But until then, we are more apt to look for and use tools and techniques already familiar to us.

So, this post is meant to orient the agile Java developer to Python. It’s not meant to be either representative or exhaustive of Python’s offerings in any of these areas, and its very much based on my own experience coming to Python from Java.

useful books and web resources

  • Python Home Page
  • Python Documentation
  • Dive Into Python
  • Python Cookbook
  • PyZine
  • Python Essential Reference, Third Edition By David M Beazley. A great general reference.
  • Python Cookbook By Alex Martelli, David Ascher. Book inspired by the site, but presented in a way that is not only a good reference but teaches intermediate and advanced Python idioms.
  • Text Processing in Python By David Mertz.
  • Python & XML by Christopher A Jones, Fred L Drake, Christopher A. Jones

coding tools

other ide’s


  • Python Testing Tools Taxonomy
  • Agile Testing with Python Test Frameworks
  • PyUnit. Python port of JUnit testing framework, bundled with Python. The unittest module also has a basic coverage tool. Also see this for function level code coverage analysis.
  • Testoob. Advanced testing tool built on top of PyUnit.
  • Pester. PyUnit test tester (port of Jester).
  • pyUnitPerf. Port of JUnitPerf, “It is a collection of pyUnit test decorators used to measure the performance and scalability of functionality contained within existing pyUnit tests.”
  • pMock. Python port of jMock. This appears to be the most active and widely used/written about mock objects module for Python, but a quick search on Sourceforge shows other, like this.
  • PyFit: Python FitNesse Testing: There is no real home page for this, but here are some references: [1] [2]

performance and code analysis

  • PyLint. Syntax checker, incorporated into PyDev, but must be activated.
  • PyChecker. Another syntax checker used by some Python IDE’s.
  • Bicycle Repair Man. Refactoring browser for Python, also bundled with PyDev.
  • PySizer. Python memory usage profiler.
  • Heapy/Guppy. “…a programming environment providing object and heap memory sizing, profiling and analysis.”
  • Pythius. “…a set of tools to assess the quality of Python code.”

frameworks, libraries, and applications

web frameworks

gui tools

  • TkInter. Python’s standard GUI library. Many other GUI frameworks are built on top of TkInter to make it easier to use.
  • wxPython. Cross-platform. See this article for an introduction.
  • PythonCard. Cross-platform, built on top of wxPython but intended to make it easier to use.
  • Pygame. Python game development that is a wrapper of SDL and good for any application with heavy user interaction.


java integration

1 Comment

Comment by maestroQC
2008-04-29 06:00:19



Sorry, the comment form is closed at this time.