The (almost) perfect Django IDE: Pycharm 2.5

May 16, 2012

Disclaimer: Como hace algún tiempo escribí unos cuantos artículos sobre IDEs en inglés, considero justo hacer lo mismo con este.

Some time ago, I wrote a bunch of posts about state of the art IDEs for Django in that moment. I didn’t give up in my search, but I felt there was not reason to continue writing about thart. Until now.

The first time I gave a chance to PyCharm 2.5 I finished it thinking “What else can I expect for a Django IDE?”. I decide not to write a post in that moment, but to use it exclusivly as long as free trial allows me. It has several features I’m really keen on such as code autocompletion, django debugging, imports assitant, etc. One of the features surprised me more was the posibility of using the editor as a plain VIM (althought I don’t use it after all).

This is much better than any other Django IDE I have tried, but not everything shine. It’s propietary software and that’s a painful kick for a free software fan like me. Ok, it’s cheap, but I’m most concerned about the ‘free’ as in free speech (not in free beer). I found myself using ‘grep -r’ to find some usages, although usages features works really good in most circumstances. The dictionary import is easy, but involve the conversion of aspell dict manually, it should be automatically. Theres not support no wsdl, which is a pity, but you still can use a standalone such as soapUI, (which was suggested by jetbrains staff).

On the pros, I felt it really smooth, not as resource greedy as Eclipse or Netbeans, the code completion works really well, the debugging is pretty easy too, although it should be possible to use it for management command in an easy way too. One of the most interesting features is the code inspection. It performs a bunch of test on code, and let you see were you are not doing the things perfectly in a lot of different ways, such as ensuring PEP-8, checking CSS syntax, etc. this drive you to a better, more compatible, code; and hooking this feature to commits is awesome, as it prevents you from putting bad code into repository.

As I said we almost have the perfect Django IDE. Thank you Jetbrains folks!.


More on Python IDEs

February 6, 2009

Due to some comments in my last post about Python IDEs I gave a chance to Komodo. I’m mainly focus on software libre IDEs so I didn’t take a look into that one. Komodo Edit is free as in free speech (I thought it was like in free beer) and it’s a promising editor. I may give it a chance if Eric4 (read ahead) don’t make me comfortable.

The last Netbeans update enhanced the python code completion feature making it much more usable but no perfect at this time. When accessing an object method sometimes methods that don’t exist in the current object, but at this time they are dozens instead of hundreds. I would like to have time to download and compile Netbeans in order to get involved in the community, but last weeks were really stressing.

On the other hand, I tried again Eric4, which is written using Python language. As I’m not a java expert it’s a disadvantage for me be forced to use this language to develop. Therefore Eric4 seems to be the perfect IDE for me. I’ll try it in a real project as soon as possible.

Eric4 has templates for Django which is the framework I’m currently using to develop. The last template seems to be quite close to the approach I like.

Under my humble opinion Python (and Django) is becoming more a more popular and IDEs for it are becoming more and more usable.


No good IDE for Django

January 22, 2009

I have been using Netbeans for the last month for develop Django. The Netbeans Project is quite promising in the “to be implemented” features because they have a roadmap to implement Django and that would be very nice. However basic things such as code completion is not usable. When you write an object name followed by a dot it offer every single subobject, method or whatever ignoring the object type. As well as this it don’t handle properly python packages not in standard directories even if you include them in the PYTHONPATH. Netbeans is a promising IDE for Django but, at this time it isn’t good enogh to simple python developing.

On the other hand I tried Eclipse some time ago. It has nice python support using PyDev but, as far as I know, there’s no plan to integrate Django into it. This means Django templates has not proper editor, but this is reasonable at this time. When I tried thid software some time ago PyDev use to halt and stop providing code completion needing to restart the IDE. As well as this it seems heavier than netbeans.

Both IDEs are java based, therefore you should program them using this language.

Beyond those I don’t know any other IDE but some editor enhanced such as ERIC4 and others I can’t put to work properly. Hopefully the new version of Kdevelop, and its plugin system, could be the answer.


Django on Netbeans 6.5

November 21, 2008

I developed using VIM and konsole using Python and Django. Some time ago Carlos Ble suggest me to use and IDE. The I try Eclipse + PyDev for a time, but never felt comfortable with it. Since Netbeans team decide to include Python in the supported languages Netbeans could work with; I decide to give it a chance.

While Django is not fully supported itself, I feel Netbeans much more fluent than a Eclipse. Netbeans is not perfect but, on my view, fits my needs more than Eclipse do. I’ll try to use this platform for a while before claim to be THE IDE.

Using Django with it is possible using the same trick I used with Eclipse. Set manage.py as the main file and runserver --noreload as argument. I didn’t success trying to do step-by-step debugging (I didn’t spent more than two minutes trying).

To be the “perfect” platform for Django developing Netbeans needs:

  • Be able to create a django project
  • Be able to create django apps into a project
  • Be able to run manage.py shell
  • Be able to manage DB (At les manage.py dbshell
  • Manage Django tests (manage.py test)
  • Find method usage in templates
  • WYSWYG template editor

The last one is not a real need but it would be great.

Even lacking all this features, I think is probably the best IDE for Django I have ever tried.