On Tue, Nov 25, 2008 at 5:27 PM, DragonSlayre <[EMAIL PROTECTED]> wrote: > > Hey, I'm getting started with a friend in developing a site with > Django, and we're both new to this, so I am wondering what people use > to manage all their files, and for looking at documentation etc.
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 %-) --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/django-users?hl=en -~----------~----~----~----~------~----~------~--~---

