[wingide-users] First contacts with WingIde And completionTroubles

Xavier Masson xmasson at assemblee-nationale.fr
Thu Apr 10 09:53:33 MDT 2008

I wanted to express my impression and first feelings when using  WingIDE 
and explain I problem I have with setting up a Zope/Plone project and 

_The pricing._

I  think the pricing is right  but the licence policy is not.

I bought the product because I felt the pricing was right  (not cheap 
mind you) but I really hate the per os pricing policy.

I routinely use BSD/ linux on servers and consistently evaluate 
switching to it for development on desktop. I will certainly not "pay 
again" for WingIDE if I decided to switch or dual boot,  and since I 
would rather not work with different IDE, that will mean letting go 
WingIDE. I do not see the reasoning between the per OS/license pricing 
except it is an artificial barrier for the customer. It is obviously not 
3 different code bases and $120 upgrade between OS looks steep....

The other thing that made me flinch and nearly regret my money was the 
activation stuff. I DO hate to be supposed a thief (I know how to use 
E-Mule and BitTorrent as much as the next guy thank you) and to have to 
justify on how many time I install a software. Reinstalling, using a 
virtual machine for testing, making image or having a system crash and 
needing a quick re-install is routine life for an unlucky dev right ?.
Right now I have wingIDE installed on 3 computer that are NEVER used at 
the same time (my home computer, my work computer and a laptop), so I 
have already "exceeded" my "trust" package. In case of a crash ,a 
replacement laptop or the desire to debug a virtual machine on one of my 
computers I will have to ask for an extended activation ? I think it is 
not really fair, and it could even add some pressure to an already tense 
moment if it happens at the "right(i.e. bad) time.

Mind you, if it was a 20 computers limit I could have understood some of 
the further inquiries,  but 3 ?.

Basically I am really convinced that considering your customer has 
potential thief does no good to your customers and does not prevent theft.
It DOES make me reconsider my further involvement with "closed source" 
software though.

The right analogy for a software usage in my mind was the one Borland 
used to promote a few years back : LIKE A BOOK.

One User at One Place at One Time. Fair Use.

And I just re-read the license and basically disagree with your choices 
in that regard. It is of course your business and business model and 
since I paid for the product I feel like I am not just crying for a free 
lunch but explaining why I may not buy again even such a great software 
under this terms.
If I am the only one thinking this : so be it .. but maybe more than a 
few potential customers took the other decision (not to  buy) without 
voicing the why.
The product :_

"Why moments"

I add a few "why moments" when using the product I will try to resume 
some of them here small or not small:

* Why is the first item on the context menu for tabs "Move to new 
windows" and not "Close". "Close" seems  to be used much more often than 
move (that I never cliqued more than once to test, and since it is a 
"move" it "mess" the organization of the project tabs the windows is 
'extracted' from.
Is is a way of working for some people ? Could be useful to add more 
option like (Close all other tabs, Open source in new windows, if that 
menu is needed besides the close option (and that could be a button on 
the tab like in firefox))

* In the project property the syntax of the python path is not clear at 
first (it is in fact the syntax of the underlying OS right ?) and I 
wondered why I could not just ADD paths to the python path rather than 
either use the default or re write it entirely.
It is not minor because it means I have to keep in sync the base 
pythonpath and my overrides rather than just add project specific 
settings. Duplication spells doom to me.

* I would love an option to say "and every path under this one" in that 
same pythonpath project property box. Something Like 
-r"Sources\zope\QeF\trunk\src" (recurse under ....). That will again 
save me from manually syncing my source tree or "code reference tree" 
and from remembering to do it or to check it is in sync. It is also, I 
think linked to my completion troubles I will explain later on.

"Trouble with completion and Zope/Plone buildout"

The main reason I bought WingIDE was the critics acclaimed code 
completion features and the zope/plone ide debugging capabilities. Being 
new to Zope/plone I thought that having code completion and a an ide 
would help me navigate the maze of methods and modules in Plone.

Problem is : code completion is not working and I not able to set it up 

I use the "buildout" method to set up Plone in a repeatable way. 
Buildout is the recommended method to set up Zope and Plone and more and 
more python application are using it. 

The problem is simple : There is no single (or even a few) entry point 
for the sources and the concept of  "instance" directory is much less 
obvious with this modular organization of codes than in previous ways of 
installing Zope/Plone.

I had to add dozens of path to the PythonPath and duplicate the base 
pythonpath to gain a basic completion but, unfortunately it is then out 
of sync with the package hierarchy Zope/Plone use

I can type "from CMFCore.utils import ..." but the right hierarchy for 
plone is "from Products.CMFCore.utils..."

Of course adding numerous path to the pythonpath explain why I can have 
"from CMFCore.utils import ..." in completion but it is not the solution 
since it does not represent a legal and useful completion in the context 
of the Zope/Plone application.

Debugging Zope/Plone

Selecting the instance dir in the "trunk\parts\instance" subdir of the 
directory structure buildout created lead to that message :
"Some property warnings were encountered:
- Zope2 installation directory could not be read from 
ZOPEINST/etc/zope.conf-- using 
'c:\Dev\Sources\zope\QeF\trunk\parts\instance'" (right after proposing 
to install the wingDbG product and to add a few paths to the source tree 
of the project).

Two interesting points : after following the wizard I was able to type 
"from Products.CMFCore.utils..." but it depends on my numerous adds to 
the python path to work (if I remove them the completion breaks again).
More precisely it depends on the "...\trunk\parts\zope2\lib\python;" 
path to be in the pythonpath. Of course, the second I add that path to 
the pythonpath the "invalid/badscoped" "from CMFCore import" is again 

So anybody was able to set up WingID to provide a completion for 
zope/plone in a "buildout" configuration and have it to work ?
Preferably without messing with the pythonpath because it means 
duplicating the default pythonpath in the project properties and that 
seems very error  and bug prone to me.

I will try also VirtualEnv (http://pypi.python.org/pypi/virtualenv) to 
see if it helps.

Another hint on that subject : after setting up the zope/plone mode in 
the project properties, applying the changes or pressing ok lead to the 
"Add Source files" box with ONE (rather than several) directory, for me 
the trunk\Products directory that is made by buildout (there are a few 
others in the structure buildout create).
I could tick the 'do not ask me again' box but the fact that
* this directory IS already in the project source tree
* this directory is the only one of 4 that keep coming back for adding
are clues that something wrong is going on there,  and I would  rather 
understand the problem than try to put the dust under the carpet....

So for now WingIDE is full of promises but not delivering.

I must be doing something wrong or not understanding something but I do 
not know where to look anymore.

_The things I miss :_

* Refactoring ? any plan to integrate something like the Rope Library 
(http://rope.sourceforge.net/) ?

* Bazaar integration

I know these things have been requested but I had my vote.
Bazaar is convenience, Refactoring is core feature of a modern IDE to me.

Thanks a lot for you time and help.


Ce message, ainsi que les pièces jointes, sont établis, sous la 
seule responsabilité de l'expéditeur, à l'intention exclusive 
de ses destinataires ; ils peuvent contenir des informations 
confidentielles. Toute publication, utilisation ou diffusion 
doit être autorisée préalablement. 
Ce message a fait l'objet d'un traitement anti-virus.
Il est rappelé que tout message électronique est susceptible 
d'altération au cours de son acheminement sur Internet. 

Vous pouvez consulter le site de l'Assemblée nationale à 
l'adresse suivante : http://www.assemblee-nationale.fr
-------------- next part --------------
An HTML attachment was scrubbed...
URL: /pipermail/wingide-users/attachments/20080410/03cf19ff/attachment.html

More information about the wingide-users mailing list