Bones' Blog of Stuff About Things

14 Feb

Anti-Static

I just fixed a bug that reminded me that I still haven’t truly got a handle on not tripping over my own feet when there isn’t a compiler to throw a wobbler over a mis-typed interface. It’s a general issue with using dynamic languages for larger projects and for working in teams that concerns me, especially with my experience of the amount of trouble you can get into even with more safety equipment. While it’s just me, well… I can blame me for the problems, but in a team? There must be ways and means, but I haven’t seen anything very reassuring yet.

I’ve also been trying other tools, in particular the PyDev plugin for Eclipse. I like Eclipse a lot. I use it for Java and it’s a very good IDE indeed. The very existence of such a fantastic toolset is an argument for Java in itself, so I was quite keen to see how the PyDev plugin worked out. Well, the answer so far is that Eclipse is still an excellent IDE with Python, and it’s nice just to have the standard project browser available. PyDev also gives you the class/module browser, the ability to run your app from the IDE, a debugger, the expected editor tweaks to help with Python formatting and some refactoring bits along with a number of other features. All great stuff and I’m very happy with it so far just because I know and trust the overall quality of Eclipse (other Python IDEs are well-meaning but I’ve found them to be flaky both in terms of bugs and in terms of interface design, although SPE has improved a lot since I last looked at it and I’ll be keeping an eye on it).

However.

Autocomplete. It’s just one of those things I’ve gotten used to. I’m hardly alone in this, it’s a standard feature on all IDEs now. You just can’t do it for Python though, can you? Because of the dynamic nature of the beast, the autocomplete would have to run the code to see what a particular reference pointed at in order to offer some suggestions. To be fair, PyDev tries — as do others — but ultimately it can’t provide what an IDE for a typed language can. This, along with my more general sense of vertigo about the typing in Python makes me wonder if there isn’t a case for some way of defining what you expect to get in your interface. Perhaps there already is and I’ve completely missed it.

I know that the answer is probably that I just need to work with the language more and get my brain out of the C/Java mode of thinking it’s in, but if anyone has any suggestions for reading material on how to deal with larger projects in Python (or any other similar language), I’d be very interested to know about them.

One Response to “Anti-Static”

  1. 1
    mati Says:

    I have been listening once to one interesting podcast from Software Engineering radio: http://www.se-radio.net/rss

    There was a one podcast about scripting languages and as a disadvantage of python they have lack of tools support and problems with code completition in general. As to my knowledge there is no reflection supportin python so it seems to be non-trivial to have support for auto-completition. My friend from Poland writes eclipse plugin for c# as part of masters degree. I know that we discussed this issue(auto-completion), although not impossible you have to make a proxy to .net VM. Also quite non-trivial but not impossible.

Leave a Reply

© 2012 Bones' Blog of Stuff About Things | Entries (RSS) and Comments (RSS)

GPS Reviews and news from GPS Gazettewordpress logo