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.


Python platform for development

November 18, 2008

Most develop companies use to choose a development platform for all its projects. While this is probably not a good idea for big ones, I realize than doing so has some advantages for small ones. Get specialized is important in order to achieve the best productivity.

There are several platforms you can choose:

  • .Net/Mono
  • Java
  • Others

The first two are the ones most companies choose. Probably the most important features for those are they are quite extended, it’s possible to develop for a lot of  devices, has great IDEs, etc.

I would like to mention that Python at this level. Since Django became important in the web applications scenario, developers coming from PHP, Java and others has given it a chance, you can develop desktop applications (QT, wxWindows, etc.), web applicatrions (Django, Turbogears, etc.), mobile applications (PyS60, PythonCE, etc.). There are some IDEs such as Eclipse and Netbeans (6.5 or greater).

Python is much more faster to develop than Java (and probably .Net) as you can perform quite complex operation in a really simply manner, while it keep the code clean and readable due to its blocks (not like Perl).

On the other hands it miss namespaces (can be simulated some way using packages) and private variables.

On my view Python is one of the most interesting alternative to the major established develop platform.


Error message importance

September 4, 2008

Probably most of you don’t need to read this; but I need to write it anywhere so…

It’s really important to provide meaningful error messages in order to allow developers find and fix errors. This may be obvious but not everybody take sufficient care about this. I have spent about three days finding and fixing a really single error just because the error messages didn’t show any useful information.

I tried everything came into my mind, but until I decide to do the application deploy under a new version I didn’t found the error. I spent 3 days to find the error and just 3 minutes to fix it.