Saturday, June 18, 2011

Pycharm is an amazing python ide

There are really a lot of little big details in PyCharm that make it worth and and much much more.
Here are some I noticed immediately:

Project Management 
A working project management system. The eclipse project management (workspace per project!) is deeply broken. PyCharm to the rescue.

A google app engine project in pycharm :
Basically its a folder with a .idea folder inside of it as shown:
Open a project :

Close a project: 

Multi Monitor Support
Its not big for some people. Its big for me. Drag the tab header out of the application to create a new window. Drag it back to place it back into the application. 

Google App Engine deep integration
I've already shown how to debug Google App Engine with PyCharm: http://www.basarat.com/2011/06/google-app-engine-python-pycharm-love.html
But I would like to mention additional google app engine integration in the tools menu : 


Test driven development (TDD) 
Ability to run tests from the IDE. Additionally you can debug while a test runs :) 

View variable value while debugging
Adding a variable to watch takes typing. Mousing over is faster : 
Access to the debug console while an application runs 
This is super cool. If you find code is not working the way it is not only can you find out why but you can write the correct code and see if it works on the spot using the debug console: 
You can see it works with google app engine as well :) 

About the Code Editor
Yes there is intellisense and all the other bells and whistles that you expect from a basic editor. But PyCharm does more than the other python ides I have seen e.g. : 

Zoom code with Ctrl+ Scroll wheel
Zoomed in:

Zoomed out. You can see more and get an overview of where the function is going thanks to python keeping indentation important :) :
Ctrl Click to navigate to function
Nothing can help you understand code better than go to definition. Comments lie. Code does not :) 
In PyCharm when you hold the ctrl key and mouse over a function / class it turns into a hyperlink as shown: 
Notice that this is a class inside of Google App Engine :) Click it while holding the ctrl key and the class definition is opened for you : 
Can't I get the same thing in Visual Studio ... cause when you are looking at code you probably already have the mouse in your hand and F12 is just so far away :) 

The override icon
A really nice touch. Especially since python does not have the override keyword. Notice the icon on the line def get(self): 
Reformat code
Don't you just have poorly formated code e.g. = hugging the variable , line continuations starting too late or too early. PyCharm fixes these for you : 
Also when looking at another persons code you might want to use the optimize imports :) 

Goto Class
Check it out : 
 This opens a search panel that can even search by Pascal Case (notice I typed rh) :) 



Truly. Python IDEs have been charmed :) 
Enjoy!