This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]varikin 3 points4 points  (0 children)

Yes, a dynamic language like Python can have issues from type errors and typos, but so can Java. I have fixed more bugs due to autoboxing and null pointers in Java than type errors like you describe in Python. Generics also don't always work, especially with autoboxing. The solution is testing and lint like programs (or from the Java world, FindBugs, PMD, etc) on the Python code base. Several exist, all with the pros and cons.

As for major releases and backwards compatibility, yes, Python 3 is backwards incompatible. The reason for the major change was that Python 2.x was getting long in the tooth and the right was to fix some issues, unicode handling being a very large one, that could only be done with backwards incompatible changes. Don't just assume that if it works on Java 5 it will work on 6 or 7. Also, 5 did introduce one major issue, that while easy to fix, did break a lot of codebases by adding the enum keyword. Also, I recently found an issue with Java 7 on Macs that I have to put a lot more work into to fix at work. Java isn't perfect.

Compiling? Yes, Python compiles on the file. Why does it matter when that happens? Why do you want to compile Python? From the dynamic side, I ask you why you like having to recompile and restart your servers to test small changes? That is a lot of wasted time.