Python for the Java Programmer
I have started to embrace all things Python at my new position as a Software Developer at a Cleveland Ohio based company called OnShift. OnShift is a startup that has just over 100 employees and steadily growing customer base in the Assisted Living / Nursing Home employee staffing namespace.
I have been doing Java (web) development for almost 9 years now. Much of the web based technologies are universal. But, on the backend, Python is a whole new world to me.
I am ending my first month at OnShift and I had a little bit of downtime in between release crunches to read an web based book: Python for Java
After being immersed in Python for about a month. There are many features of the language I have begun to take a liking to. Most notable is its emphasis on readability and the concept of batteries included.
I have been listening to several podcasts (Talk Python to Me & Podcast.init) to get familiar with the ecosystem. The open source Python community is diverse and energetic. I'll try to take notes when something perks my ears in these podcasts in the future.
In his web book, Deepak Sarda has some tables that relate Java technologies to Python:
Python for the busy Java Developer
History
Java | Python |
---|---|
James Gosling | Guido van Rossum |
From C++/Oak | From ABC |
1.0 - Jan 1996 | 1.0 - Jan 1994 |
8.0 - Mar 2014 | 3.4 - Mar 2014 |
JSR | PEP |
Commercial | Community |
Tools
Java | Python |
---|---|
.java | .py |
.class | .pyc |
java.exe + javac.exe | python.exe |
IntelliJ IDEA | PyCharm |
Eclipse JDT | PyDev |
Beanshell (?) | REPL |
Collections
The built-in Python collections come in four varieties:
Type | Java Equivalent | Example Value |
---|---|---|
list |
java.util.ArrayList |
['apple', 'ball', 'ball'] |
tuple |
java.util.ArrayList |
('apple', 'ball', 'ball') |
dict |
java.util.HashMap |
{'fruit': 'apple', 'toy': 'ball'} |
set |
java.util.HashSet |
{'apple', 'ball'} |
Popular Tools
Java | Python |
---|---|
build.xml/pom.xml | requirements.txt |
maven | pip |
maven central repo | pypi |
Classpath | PYTHONPATH |
HotSpot | CPython |
JRockit/IKVM/Dalvik | Jython/IronPython/PyPy |
Popular Frameworks
Java | Python |
---|---|
JUnit | unittest/nose |
Mockito | unittest.mock |
findbugs/checkstyle | pylint |
Javadoc | Sphinx |
Swing | PyQT/PyGTK |
Spring MVC | Django/Flask |
Hibernate | SQLAlchemy |
Velocity/Thymeleaf | Jinja2 |
Servlets | WSGI |
Tomcat/Jetty | Apache/uWSGI |
Get In Touch
We'd love to hear from you! Whether you have a question about our services, need a consultation, or just want to connect, our team is here to help. Reach out to us through the form, or contact us directly via social media.