Peter's Blog

Redefining the Impossible

More WingIDE notes


Used WingIDE some more. Some notes:

  • hasn't showed any bugginess, it is stable.
  • turns out a lot of it is written in python and it may even be used to develop itself, which would explain why it is so robust. I can't help thinking that the python could do with some more optimisation, given how slowly it runs on my work pc (Pii 450/256M ram).
  • the stack dump which shows the values of variables while debugging is not able to show the values of properties that are, for example, determined by a call to __getattr__: it could be that WingIDE avoids calling the code it is debugging to try to show the values of these variables. This is a safe approach and may be why komodo struggled. However, sometimes it is annoying as these tricks are quite common. I tried installing the professional version and using the debug probe to introspect these objects and this works but the professional version is five times more expensive than the personal version. I found that it is possible to invoke pdb from within wing: add
    import pdb
    
    at the top of your module and
    pdb.set_trace()
    
    where you want your breakpoint. Ok it's hastle but 9/10 times examining the stack data is all you need, you don't always need the debug probe.
  • it would be nice if code completion worked in the debug probe command line. Otherwise the facilities of the debug probe seem to be the same as pdb.
  • The professional version also includes a 'module browser' which shows you the contents of all modules. However, it only works while your program is running and it only shows symbol names: it does not show docstrings or any useful information. By comparison, the object browser in komodo can be used while editing, komodo scans your modules and builds up a database.
  • The professional version has a 'Source Assistant' which shows you the docstring for any symbol you click on in the editor.
  • While using WingIDE I haven't felt the need to add any debug print statements: that is something!!!

Conclusion: the professional version is nice, not sure it is five times nicer than the personal version.

Oh, and I'd say komodo is out of it now, the question is WingIDE personal or Profesional?


Filed under: komodo python wingide

stone Says:

over 3 years ago

Join the WingIDE mailinglist. The developers are very responsive and open to suggestions for improvement and new features. WingIDE is worth it's money and is really a great product and also it runs perfect on Linux. (hmm sounding like I'm one of them but I'm not.. :) )

Peter Says:

over 3 years ago

I'm not a great fan of mailing lists, often repeating the same newbie questions. I might give it a try in this case. Acually, thinking about it more, what I want is an email->rss converter so I can read it in gregarius. Mailing lists are just so 1995.

The more I use WingIDE the more I like it.

I think I will stick to the windows version, the scripts will run on a dedicated server with no UI. The remote debugging might be able to help but it looks like I'd have to get samba going on the server to share the source files and I'm not keen on that (security, complexity etc).

Peter

Brandon Says:

over 2 years ago

Would be curious what you finally ended up choosing to use. I've had the same angst about Wing/Komodo for a while now, if I'm going to pay for an IDE I want it to be of Wing's caliber, but the personal version takes away most of the reasons I would use an IDE for, and I can't justify the cost for the professional version just for tooling around with python. So I end up using something free that works, with no frills. (DrPython is my current choice, all python code so if I need to fix it, it's easy to tweak) Wish they would make the personal Wing version like $60, and add the debug probe and Source Assistant to it.

I'm also getting into Django now, was about to dig into the management code to see where to remove the autoreload thing when I found your blog. I added a check on the port number (comes in as a string), and run without autoreload on the default, so I can run in on another port if I want autoreloading. Probably should hack in a parameter instead but it works. :>

    if port == '8000':
        inner_run()
    else:
        from django.utils import autoreload
        autoreload.main(inner_run)

Peter Says:

over 2 years ago

I settled on Wing IDE personal in the end. I bought it and I'm happy with it, it is definitely more productive than VIM: I no longer debug with print statements.

I used the trial edition of the professional version for a while and the debug probe was useful sometimes (mainly when dealing with metaclasses that are not displayed in the 'Stack Data' pane properly) but the majority of the time I can live without it. TurboGears offers a nice interactive shell: run 'tg-admin shell' from a command line and it runs iPython with all the database modules already imported so I can fiddle with sqlobject usage: this may be one reason why I have not missed the debug probe. The source assistant was useful but I don't miss it as much as I would miss $144.

Although Komodo has more features (the regular expression tool was tempting) and supports more languages, I found it's python debugger to be buggy which put it out of the running for me as a python IDE. I looked in the Komodo bug database and these issues with the python debugger seem to have been around a while. I haven't found any problems in Wing.

Note that you can get the source code to the Professional version of Wing if you want to tweak, and you can write macros in python.

DrPython does not appear to include a debugger and that was what I wanted most (without a debugger I am happy with VIM).

I had the same Django/TurboGears angst but I ended up with TurboGears, mainly because I found it much easier to set up a project in TurboGears than Django. I debug my TurboGears/CherryPy stuff with Wing and I am very happy with it.

Peter

Have Your Say

I welcome constructive comments or questions but I reserve the right to delete any comments that displease me.

Who are you?

(Optional) If you enter an email address here I might email you back. Your email address will not be sold to spammers or shown anywhere

What do you have to say?