RE: [Zope-dev] How should an ideal Zope IDE look like?
I agree with Andre. The feature list is ambitious, but complete. That's pretty much what I was about to write myself, but he beat me to it :) More important is the second point: Having such a tool would bring a HUGE amount of value added to Zope. Mega, super huge. In fact I was once presented with an OO CMS much like Zope, but commercial, where the IDE/Management interface was much like this ... That alone was worh the 50K price tag ... Want to load a document ? Click -> Drag -> Done. That simple. My main concern would be it's adaptibility to custom content types. If I have my own Geospatial-ish content type, how would the IDE handle it ? How would I go about making it handle it ? etc ... In some respects I thnk such a project would be best "hosted" with Zope itself, since to make it work really well you may need to do work real close to the core of Zope. Also, as mentionned given the immense value added to the product, I'm thinking ZC would benefit greatly from it and should maybe be involved ? Basically, yo me this should be a core feature of Zope, not an add-on. J.F. -----Original Message----- From: zope-dev-bounces@zope.org [mailto:zope-dev-bounces@zope.org]On Behalf Of Andre Meyer Sent: April 24, 2004 5:24 PM To: Aleks Totic Cc: Martin Kretschmar; zope-dev@zope.org Subject: Re: [Zope-dev] How should an ideal Zope IDE look like? It was not my expectation that you would go and implement all of this ;-) Of course, this is a lot of work, but much has been done by others, already. The wish list was intended as ideas for those capable and willing to contribute. The value of good tools for any technology cannot be underestimated. kind regards Andre Aleks Totic wrote:
Nice wishlist. About 3-4 man years worth of coding, 2 min is my guess.
My goal is not quite so ambitious. I wanted to learn Eclipse well. I was always jelaous of Emacs guys that could whip up a mode for their favorite lanuguage. Implementing a Python IDE sounded like a good starter project. By IDE, I mean something with a debugger.
In the next release (by the end of next month) I'll have some hyperlinking (function/classdefs withing the same file, and on imports), maybe some code completion (that's up to Dana), and a decent debugger (multithreaded).
After that, I am not sure. My goal for pydev is for it to be good enough for small-size projects, and we'll almost be there. The larger projects requirements (unit tests/UML editor/module awareness) are not that exciting as a hobby.
Aleks
Andre Meyer wrote:
So, I give it a try and submit a "wish list" for an ideal IDE for Python/Zope.
Maybe some words about the IDEs I have been working with, so you can track where the features I wish to have come from: I used CodeWarrior, NetBeans, jEdit for both Java and Python/Zope, Boa Constructor and Eclipse with several plugins (like Omondo UML plugin, TruStudio and PyDev).
And here comes the list of features:
- Syntax coloring (standard everywhere) for python and zpt/xml/html/css code.
- Commenting/uncommenting code (any hope Python will ever offer multi-line comments?).
- Auto-completion for python and zpt/xml/html/css, incl. parameter editing. One should be able to specify the path to modules: for example I have a Python installation and a Zope installation with Python offering different modules.
- Show declaration: jump to definition of classes/instances elsewhere in the code using a context menu.
- Refactoring: actions, such as renaming a class, method or module and modify all references in the rest of the code; move classes and methods up or down in the class hierarchy. Eclipse supports this for Java and it saves a LOT of time,
- Unit tests with reporting.
- Folding: show/hide parts of the source code (like in jEdit).
- Split windows.
- Project management.
- CVS/Subversion integration.
- Search/replace, incl. regex in open files, project,
- Compare and edit files/folders (diff, meld).
- Drag&drop editing.
- Multi-threaded debugging.
- Outline: display classes, methods, attributes of a source file.
- Class/method popup.
- Bookmarks.
- Class browser: multi-part window for browsing and editing classes and their methods and attributes. Similar to the NeXTstep file browser and the Java Browser perspective in Eclipse.
- UML editor (incl. code generation and reverse engineering). Eclipse has several UML plugins and offers a language-independent modelling framework (EMF) that supports code generation. This could be adapted for Python.
- Design patterns, templates: not found anywhere, yet, but might be an interesting feature, especially for Zope development, where we have a lot of recipes that need to be applied often.
- Pydoc integration: show the docs simultaneously with the code.
- ZPT debugging, sensible error messages.
- ZODB inspection: give insight into what is actually stored in the ZODB.
- Ftp, WebDav
- Launching/restarting Zope locally and remotely.
- Python and Jython support.
- Live error tracking (while typing).
- Task management.
- Calling trees: who calls whom and who is called by whom?
Well, there is certainly more, but this is a start... ;-)
One could start from Eclipse/PyDev (http://pydev.sourceforge.net/) and add features. Does anybody (Martin) have concrete plans to do this?
Also look at http://www.python.org/cgi-bin/moinmoin/EclipsePythonIntegration 5 for more ideas.
kind regards and success Andre
-- Dr. Andre P. Meyer http://home.hccnet.nl/a.meyer/ TNO FEL Command & Control and Simulation, http://www.fel.tno.nl/div2/ Delft Cooperation on Intelligent Systems, http://www.decis.nl/ _______________________________________________ Zope-Dev maillist - Zope-Dev@zope.org http://mail.zope.org/mailman/listinfo/zope-dev ** No cross posts or HTML encoding! ** (Related lists - http://mail.zope.org/mailman/listinfo/zope-announce http://mail.zope.org/mailman/listinfo/zope )
The web-based development environment (see demo) of http://wheatfarm.org might be of interest too.
Hmm not so easy to find, here it is: http://www.wheatfarm.org/wiki/EinkornServer
Hi! I am aware that I am adding another 2-3 man years to the wishlist, but here are some ideas I had lately: A Zope IDE should be much more than just a programming IDE adapted offer highlighting etc. for Zope's languages. It should be an RAD tool similar to what MS Access does for databases. There are similar tools for commercial frameworks like Enfinity from Intershop ... I'd like to model an application using UML or similar (the UML class diagrams are not perfect for Python or Zope, but they could be a starting point). I'd like to be able to define workflows graphically. I'd like to "click together" components. E.g., if I need a user authentication module I can choose from all adapters that provide that interface (LDAP, SQL-based, etc.) It should be possible to use hand-written HTML of course, but there should be a set of templates that give my applications a decent look & feel to start with. Forms (or more general, schemas), can be defined easily, either in a Formulator-like way or graphically (i.e. you see the actual form fields on the screen when working on the form).
My main concern would be it's adaptibility to custom content types.
For that you'd be able to use basic building blocks and add your own additional attributes (probably using annotations). All in a nice graphical front end. All documentation about interfaces and APIs should be available wherever it makes sense, e.g. I can query for all components that are registered for a certain interface and view the interface definitions. Joachim
On Saturday 24 April 2004 21:24, Joachim Werner wrote:
Forms (or more general, schemas), can be defined easily, either in a Formulator-like way or graphically (i.e. you see the actual form fields on the screen when working on the form).
This UI could be very easily built today using mutable schemas. Regards, Stephan -- Stephan Richter CBU Physics & Chemistry (B.S.) / Tufts Physics (Ph.D. student) Web2k - Web Software Design, Development and Training
On Saturday 24 April 2004 21:24, Joachim Werner wrote:
All documentation about interfaces and APIs should be available wherever it makes sense, e.g. I can query for all components that are registered for a certain interface and view the interface definitions.
This tool already exists. Get a latest Zope 3 version and fire it up. Then type http://localhost:8080/++apidoc++ You will be represented with a fully dynamic, custom-registration precise and totally cross-referenced API documentation. The quality of some of the output depends heavily on the doc strings in the interfaces (we currently do not use a common style, rest or stx; but this should be fixed soon). Regards, Stephan -- Stephan Richter CBU Physics & Chemistry (B.S.) / Tufts Physics (Ph.D. student) Web2k - Web Software Design, Development and Training
Jean-Francois.Doyon@CCRS.NRCan.gc.ca wrote:
I agree with Andre.
thanks ;-)
... My main concern would be it's adaptibility to custom content types. If I have my own Geospatial-ish content type, how would the IDE handle it ? How would I go about making it handle it ? etc ...
Archetypes? But then much more generic than what they are now. -- Dr. Andre P. Meyer http://home.hccnet.nl/a.meyer/ TNO FEL Command & Control and Simulation, http://www.fel.tno.nl/div2/ Delft Cooperation on Intelligent Systems, http://www.decis.nl/
Jean-Francois.Doyon@CCRS.NRCan.gc.ca wrote:
More important is the second point: Having such a tool would bring a HUGE amount of value added to Zope. Mega, super huge.
Sounds like the opportunity for a commercial tool. It's not NEEDED, but it makes life a LOT easier, and so would give any company with it competitive advantage without detracting at all from people who don't use it...
My main concern would be it's adaptibility to custom content types. If I have my own Geospatial-ish content type, how would the IDE handle it ? How would I go about making it handle it ? etc ...
That's the tough one ;-) BTW, I thought we were talking about a Zope IDE, not an IDE for a CMS built on top of Zope...
Basically, yo me this should be a core feature of Zope, not an add-on.
Indeed. But having it as a core feature forces it to be open source, and hence run on open source budgets and timescales. cheers, Chris -- Simplistix - Content Management, Zope & Python Consulting - http://www.simplistix.co.uk
participants (6)
-
Andre Meyer -
Chris Withers -
Jean-Francois.Doyon@CCRS.NRCan.gc.ca -
Joachim Werner -
Simon Michael -
Stephan Richter