Python vs. Java

Back in 2004, Stephen Ferg posted Python & Java: a Side-by-Side Comparison:

On this page, I present a list of side-by-side comparisons of features of Java and Python. If you look at these comparisons, you can see why Python can be written much more quickly, and maintained much more easily, than Java. The list is not long — it is meant to be representative, not exhaustive.

I have no Java experience (and plan to keep it that way), but other’s might appreciate it.

5 Responses to “Python vs. Java”

  1. Nathan Says:

    Looks right to me. Having used Java. Java blows.

    The thing with Java programmers (ie ppl that like to use Java and choose it) that people don’t understand is that they like the verbosity and strong typing. They think it makes the program easier to understand and easier to maintain. They are wrong, but perception is reality.

  2. John Says:

    Nate, our resident Java apostate. :)

  3. Ruddi Says:

    Hi folks,
    i would be agree if you only evaluate the concept of the language. But the experience we made as a software company is a little bit different. We are developping since 1998 in Python. We have build a standard Product called dante (webframework like zope). Our main problem today (quite ten years after) is that we have got so much success with our product so that the our customer gets bigger, the requierements gets more complex and so our project-development team is growing more and more - a good thing - and we were thinking a long time - great is the python advantage develop quicker in python than in java. But today, the requierements have changed (i.e. larger teams of about 5 - 8 Software developpers in one Project), we do not only need a “quick” language but also we need a defined Software Engineering Process, with an good IDE, unit-testing, automated checking-Tools (like Checkstyle) Code Coverage Tools Projekt Management Tools, Things like “interface” Concept and so on … an all this in a simple to use standard-ide … try to find it for python ! For java is not a problem! use eclipse + maven + Checkstyle + Junit + Jcoverage, refactoring ? No problem directly integrated in eclipse, easy to use fantastic … for python ? There are some IDE, there is pydev as eclipse plugin but there is no real All in one “Integrated Development Environment” for a professional Software Engineering in large Teams. And were is the problem. The fact that python is easier to undertstand and “quicker” to write is surely an advantage, but when you have to do large Software Engineering Processes you are missing the tools and processes to help you manage and controll these projects. That’s a bit pitty, so that we today are thinking of making a complete redesign of our product and to use java instead of python.

  4. Nathan Says:

    Hi Ruddi.

    I can appreciate the problems you outline above, however I am not sure Java is going to give what you are after.

    It sounds to me that you need a better defined process for development, not a new language.

    Testing with good code coverage are not just a matter of having the tools (a quick google shows there is a pyunit) it’s really a matter of management stipulating and expecting that unit tests will be implemented and are part of the development process. It usually ends up that management deems unit testing a waste of time for getting the product to market.

    As for an IDE, the reason Eclipse is a valuable tool for Java developers is because of the verbosity of the language. No one can hold all those class names and methods in their head, so they have to have a tool like eclipse. It’s been my opinion for a while now that a dynamicly typed language does not need such a giant, confusing, slow IDE. Any decent text editor will usually suffice, though admittedly some are better than others.

    Maven is interesting, I have used it, but it is a tool to make up for a java shortcoming. Python’s extensive (AFAICT) built in library and the ease of adding libraries makes something like maven uneccessary.

    As for refactoring, the kind of refactoring that eclipse does would not translate well to a dynamically typed language, Java’s rigid controls make that kind of global search and replace and ‘make method’ possible. Good style (which python enforces) as well as thoughtful encapsulation make that uneccessary IMO.

    The last point I want to make is the kind of developer you can hire when you become a Java shop. When you put out the call for python developers, you are likely (not guarenteed) to get individuals passionate about programming. Real hackers, not gamers with day jobs. (I do know some Java developers that are good hackers and that like Java, I think they are in the minority). And that paragraph is going to make me wildley unpopular :)

    Anyhow take care and good luck!

  5. import this. » Blog Archive » More on Python vs. Java Says:

    [...] It’s a post from back in April, but there are some interesting new comments attached to it. [...]

Leave a Reply