why do you not check the archives of this list? You are the 10,000th person to
ask this same idiotic question
--
regards
KG
http://lawgon.livejournal.com
Kenneth - that kind of attitiude doesn't help anyone, and doesn't make
the Django community look good. Let's keep the personal epithets under
control.
Yours,
Russ Magee %-)
While I must apologize for Kenneth's poorly expressed frustration, his
underlying message is sound - this has come up _many_ times on
Django-users. A quick Google search should return many options, but
there is no clear or correct answer to your question.
> Having come from a Java background, I'm used to great documentation,
> and suspect that Java is very much the leader in doc, and not the
> standard.
Having spent the afternoon wrestling with J2EE, I'd strongly disagree
with this assertion. I will agree that Java projects tend to have have
very extensive API documentation. This is a result of the combination
of Javadoc and strong IDE integration that supports Javadoc. However,
the quality of that documentation is highly variable. Unfortunately,
the fact that Java IDEs automatically write Javadoc stubs and provide
1 button "build the documentation" hooks gives developers the mistaken
impression that a project is "well documented". Documentation for the
method "get_username()" that reads "Returns the username" doesn't
really illuminate anything.
There is also the argument that good APIs don't require lots of API
documentation - after all, it should be obvious what get_username()
returns. If your API entry points require extensive explanations,
perhaps you need a better API.
Good documentation means more than an API (and a _lot_ more than an
empty autogenerated stub). Documentation means good explanations of
the big picture - how the pieces fit together, how to achieve
important tasks, significant internal states, etc. This sort of
documentation doesn't fit well into simple API docs. It is also very
hard to write, and as a result, it often isn't written, and when it
is, it is rarely written well. This isn't unique to Java, either - the
vast majority of open source projects suffer from this affliction.
I'd like to think that Django is on the better end of the spectrum
when it comes to documentation - we are blessed to have a journalism
major amongst our project founders, and a couple of other liberal arts
majors amongst the frequent contributors. As a result,
docs.djangoproject.com is a pretty thorough resource, and is generally
well written. This documentation is by no means perfect, but it is
certainly better than a lot of other projects out there.
In addition to the official documentation, there is a wealth of
contributions on django-users and in the blogging community around
Django that provides excellent material to supplement the official
docs. Again, Google is your friend, and Django is a pretty specific
Google keyword :-)
> I've used the pydev plugin for eclipse, but it seems extremely
> limited.
I've used PyDev too, and I'd agree with your assessment. However,
others seem to like it. YMMV.
> How do you develop your django projects, and where do you go when you
> need to find documentation?
Your original query actually reveals a bias that is significant - why
do you want an IDE in particular?
Java, as a semi-traditional compiled language, lends itself to IDE
development. The write-compile-run cycle places a certain imperative
on getting code right the first time. Admittedly, the incremental
compilation features of modern Java IDEs make this less of an issue,
but the general language culture leans towards tools and development
techniques that support this general philosophy.
However, dynamic languages tend not to leverage IDEs as much. A lot of
Python developers (and developers in other dynamic languages) tend to
develop using relatively lightweight text editors. Some of these
editors provide code highlighting, code completion, and other IDE-like
features, but they definitely don't go as far as a traditional IDE.
There are at least two reasons for this. Firstly, dynamic languages
don't require a write-compile-run cycle, so they lend themselves to
much greater experimentation. Want to know if an idea will work? Fire
up an interactive Python shell and test out your idea. Editors can
help you maintain scratchpads to develop a complex test harnesses; the
Python runtime environment provides the ability to dynamically reload
code modules during runtime. IDEs are very good when you're dealing
with managing a body of code that is 'published' into a compiled
product; I'm yet to see an IDE that can deal elegantly with the
capabilities of a dynamic language.
Secondly, there is the long standing "unix vs windows" philosophical
argument. The Windows world (which, for all the Sun heritage, Java
really is a part of) tends to push monolithic tools that do
everything. The unix world, on the other hand, tends to push lots of
little tools, each of which does one thing well. Want something to
edit text? Get a good text editor. Want something to manage files? Get
a good file manager. Want something to manage integration with version
control? Get a good version control system. A complete development
environment consists of lots of little tools, each of which does a
specific job well.
However, that said, if you really do want to use an IDE, there are a
number of IDEs for Python out there, both free and commercial, and
some of them explicitly provide varying degrees of support for Django.
Again, Google is your friend.
I hope this provides some illumination. All the best in your search
for the perfect development tools, and best of luck with your Django
project.
Yours,
Russ Magee %-)
Abdel Bolaños Martínez Ing. Infórmatico Telf. 266-8562 5to piso, oficina 526, Edificio Beijing, Miramar Trade Center. ETECSA |
I have tested Komodo Edit and personally I like best vim + extensions,
Eric4, Eclipse + pyDev or actually Netbeans.
I you haven't tested yet give Netbeans a look. In my opinion this is
the way to go on Python development.
Eclipse+pyDev and Eric4 actually have more Python options, specially
on refactoring, but Netbeans interface is much clearer and the
combination of auto completion and documentation is really good. I
also like very much the svn diff tool with syntax highlight.
Eclipse and Eric4 have a more svn interface. From Netbeans I don't
like that the auto completion shows all the packages that are in the
project even if they aren't related to it, and that it shows the pyc.
But I have been testing it during the last days and even with this
lacks it's one of the best IDEs.
I personally use Komodo Edit along with IDLE. Also instead of using "manage.py shell" I use IDLE. I am so spoiled by the autocompletions.