This week's book giveaway is in the OCAJP 8 forum. We're giving away four copies of OCA Java SE 8 Programmer I Study Guide and have Edward Finegan & Robert Liguori on-line! See this thread for details.
Lots of interesting questions. Python is not based on Java in any way (that I know of). According to the Wikipedia pages, Python was released before Java was designed, so it might be the other way around.
The semantics of the two languages are very similar, so it is easy to go from one to the other, but I think the similarities are due to convergent evolution, not common ancestry.
Since Python is easy to learn, you might suspect that there are limitations that come with simplicity, but I don't think that's true. Python scales up nicely to large projects and comes with industrial-grade libraries. The only limitation I can think of is that, because it is dynamically-typed, you get less error-detection at compile time. So some errors that would be caught at compile-time in Java would instead not be caught until run-time in Python.
And you asked if knowing Java makes it harder to learn Python. Definitely not. I see students make that transition all the time, and it is pretty much seamless.
Joe Ess wrote:
No, but there is Jython, which is an implementation of Python that runs on a JVM. This allows you to do cool things like script a Java program using Python.
Another nice thing about Jython is that you can not only script a Java program, you can write a program that is a combination of Python and Java - maybe to re-use classes, or write your UI pieces in Java/Swing while rapidly coding the connections in Python.
I've also used Jython to load up some Java classes to unit test them or experiment interactively with them. Being able to interactively call methods without having to write a test "main" or re-run a test program is pretty cool.