So the more I work with Django the more I long for a solid development environment to work in. I use Wingware for much of my python development, with its rockin debugger and code completion, its more than I could ask for. Until the curse of the Java class. This quarter I’m taking a Java projects course, most of the class uses Eclipse but a few use Netbeans. My problem is, I got spoiled so fast by the incredible templates support, content suggestions, quick fixes and always dead on code completion. Going back to Wing feels like a halfway-there IDE. I know that pythons interpreted nature makes source completion much more difficult, now I would argue that with an interpreter, you could actually step through the code to some extent. However, I respect that dynamic objects are never gonna be easy to support. My beef is with the lack of support for super-popular frameworks (this goes for everybody!) Ruby on Rails has literally dozens of solid IDEs and a few that are just spectacular (see Aptana, or Netbeans). Why can’t I get even basic highlighting support for my Django templates? Why can’t I get any completion options on Models except my own?
Its just frustrating, Django is still a pleasure to develop in, even with just Gedit and a terminal, but is it really out of the question to consider providing a big pretty environment for those of us that like that?
I did dig up this and this. I guess its a step in the right direction, but its almost embarrassing next to the Rails environments.
Hi!
Well, we plan for long to add more Python support (and possible Django, too) in Anjuta. The framework is there but it’s just a matter of someone writing the plugins (e.g language-support-python).
The new symbol-db framework that should hit trunk after freeze should also make autocompletion no really big deal.
Anyway, we don’t have any python vulunteer that is doing that at the moment though we are working on python bindings to make it easier for people to create plugins.
I usually use Eclipse with Aptana + PyDev + SubClipse.
It’s not perfect (and eats resources like you wouldn’t believe) but is fairly good.
“I did dig up this and this. I guess its a step in the right direction, but its almost embarrassing next to the Rails environments.”
I don’t think using Vim for Django work is embarassing. With NERDTree it’s been quite a breeze.
Sun just hired a bunch of Python folks that will hopefully push Netbeans support for Python/Django to the level of Ruby/Rails, which is quite good if you’re into IDE’s.
@Matthew: That’s cool to hear. Its not for every situation, but its nice when starting a project to have the facilities of an IDE to help set up the project, and test things (like sql queries) in one place. The code completion is the biggest thing for me, especially when working with new libraries.
Eclipse + PyDev code completion works for Django. It has support for Django code completion as long as you just set PYTHONPATH to project settings correctly. Of course, Python has some problems to guess the type of the parameteter/return value due its dynamically typed nature. Imports and module level functions are completed perfectly. I am pretty sure that PyDev commercial extension had some advanced edit-time type solving. I heard that Py3k would have some type defining hints to solve this ugly problem.
With Web Tools Platform plug-in and JSEclipse you will also have HTML syntax highlighting (applies for Django templates too), CSS syntax highlighting and a decend Javascript editor with code completion support.
With PyDev Extension remote debugging support, one can debug and break server code step-by-step.
The best approach i’ve met is either eclipse+pydev+pydev commercial or textmate (I miss thee!).
uh, it’s called emacs. Be a real programmer for once. stop looking for a crutch.
Emacs + pymacs + ropemacs will give you everything you want, including refactoring. Templates in nxml-mode with xmlpe to ease validation problems. It’s beautiful.
Real programmers use butterflies.
http://xkcd.com/378/
Real programmers are too busy coding to argue about which editor/IDE to use.
Well, pida with vim its perfect. And by the way VIM has highlight to django templates.
nice post, here’s my review about django ide http://www.aptana.com/studio/download/
LOL, do you want drag n’ drop like Visual Studio? hehehehehe come one, here are your options:
Windows: e – Text Editor
Mac: Textmate
Linux: Emacs, Vim, Gedit, …
@david
be a real programmer for once? then why use a development framework and just write pure python?
@david
Real programmers like development environments that let them concentrate on the programming, not how they’re compiling/running/committing.
I think it goes out of scope. There is no real programmer. There is only programmer. And programmer are lazy. It’s why having an IDE to support framework like Django are so useful
@Marko: Well, “good” programmers are the lazy ones. Those who are not lazy are not usually good.
Comment based on quite much experience as a C# programmer. Those who are not lazy use the “EVERYTHING IN THE WORLD SHOULD BE STATIC AND WHY THE HELL DO YOU USE THOSE PATTERNS FOR ANYWAY?”
And for the IDE, I have only tried Django with vim and it was quite good.
(g)vim with nerdTree and pysmell, on an Ubuntu with the dark-theme, works great for me.
hey, the netbeans IDE has recently (january 2009) developed a python Plugin that seems to handle the django module ok. the NBpython plugin is availible at http://wiki.netbeans.org/Python#section-Python-GettingStarted
I just tried the latest IntellIJ IDEA 8 along with their Python plugin and it seems to work magnificiently. Recognizes all the base python and django classes/modules and support auto-completion. There are improvements to be made, but it’s a good base.
Hmmmm.. that sounds like its worth checking out.
geany is a nice cross-language IDE. It support syntax highlighting and moderate code-completion (only code you’ve written unfortunately). It also has built in make, compile and run features as well as plugins for svn, diff, etc.
When you compile or make a program, it actually shows the compile errors/warning inside the IDE and allows you to click on them and see the error right in the code.
The coolest feature is their “projects”. Instead of creating it’s own file hierarchy, the project is just a .geany file that points to a base_url and gives some preferences.
I use it for python, c, c++, php, python, django, you name it.
Active State Komodo is good