Tuesday, March 15, 2011

Jetbrains PyCharm Simply Rocks - Initial Impressions

Overview
I have not had time to write a blog about PyCharm yet. With 1.2 released today, I have had only good experiences with it. Since the first 1.0 release, I have worked on 7 different projects using it.
  • New projects
  • Import existing projects
In all cases, my projects
  • Use the standard python unittest
  • Are stored and managed using Subversion.
Unit Test Integration
About as simple as it gets. PyCharm gives you a lot of flexibility. You can flag a folder as a "test" folder. When you right click, you can Mark Directory As "test" which will turn the folder "green".

If you want to execute all tests, simply right click on the folder and Run "Tests in...." menu option.

If there is a single file of tests you want to run, simply right click on the file and Run the file.

In both case, a nice panel that pops up showing you the test progress. There is a filter that can be turned on or off allowing you to see all test results or just the failed ones. Visual queue help you know how well things are going.

Since Python is fast to run/re-run, I get in the habit of adjusting code and re-running my tests. The unit test module lets you do this by simply clicking on a green double triangle icon in the left side of the Run panel. This is very handy.

This feature is clean and simple to use.

Subversion
Importing and checking out code works as expected. As code is developed, PyCharm provides a "Changes" panel that you can view to see what files are modified.

By right clicking on a folder or file, you can Commit your changes. In reverse, to update your local working copy, you can update a file or folder.

The UI provides clear feedback as to what it is doing in both cases, and lets you know what version your working copy is.

Inspections
I did an experiment. How good is the advice PyCharm provides to improve your code? I took an old project I wrote and imported it into PyCharm. The old code was written using emacs and not much else.

I address all of the suggestions provided by the PyCharm's code Inspection. I was surprised by the sense many of the changes suggested. In my experience, the suggestions provided did not break or cause issues in my code.

It is possible to fine tune the suggestions in the settings/preferences. The options provided are very detailed (in my mind).

Python Interpreter
PyCharm lets you configured one or many version of python. Adding a new version is pretty easy. If you don't have a project open, you can set the default interpreter in the settings/preferences. If you have a project open, you can set the interpreter version for the open project.

Final Thoughts
These are just a few items of many productive features within PyCharm. I am very happy with what I have been using so far. In just about all cases, I have not needed to use any of the docs. It just works the way I would expect it to behave.

I want to try Django support next. But that is for a future blog.

Saturday, January 22, 2011