Friday, August 21, 2009

Pydev 1.4.8 released & Live coding in Pydev

Pydev 1.4.8 has been released (a few days ago).

The usability improvements on this release had already been highlighted before, so, I think that the major highlight to talk about is the possibility of 'live coding' in the debugger (although it's still a bit on the experimental side).

To enable that, 2 features were done: Jump to line (ctrl+R with the focus on the line) and reload module contents (right now only available for python 2.x).

The idea is that you can get to some point in your code in the debugger, watch what's happening, change the code to fix it and then jump to the line that created that frame (so, you actually need to do a jump to an outer frame -- which actually requires finishing the current frame, as python has no support for dropping a frame -- although you can jump to the return line and then jump in the outer frame to the caller of that frame -- yes, it can be a bit confusing).

Note that there are still a number of shortcomings in the current version -- some because of python, which can only make a jump when the debugger receives a line event (so, if you were at the end of the frame, it might be that you cannot properly do the jump, because a return event will be available in that case, instead of a line event, and being inside a try..except has its peculiarities too), and others because the reload is still pretty naive (it uses the xreload module -- currently only available for 2.x -- but I already have some ideas that can make it better).

So, in the current version, it can be a bit difficult to use it properly, but still, it's pretty nice when it does :)

p.s.: I was going to provide a screencast for that, but decided on waiting a bit more until I'm able to work on some of the rough edges in the current implementation.

p.s2.: The jump to line in python can only jump inside the current topmost frame, but in pydev you can ask to make a jump to any place in the stack, but that means it'll execute everything normally until it gets to the frame where the jump was asked -- and only then will it actually execute the jump -- maybe if there's enough interest in that, someone at the python side could provide a way to drop frames :)

Monday, August 03, 2009

Twitter, Pydev homepage & Usability improvements

I've recently started to Tweet to reporting on what's happening in Pydev (http://twitter.com/fabiofz), so, it might be worth for those that want to get on the bits & pieces around the unreleased version.

Now, on with what's happening in the Pydev world: the Pydev and the Pydev Extensions homepages were updated -- yes, they were outdated in a number of things -- Pydev is evolving too fast for them to keep up :)

It was pretty nice that while going over the editors/details to explain them on the homepage, I ended up reorganizing things and improving the usability as a direct result of that (I think it's much easier/better to code and give a better interface than to explain why something doesn't actually work some way in minor details).

So, hopefully those usability improvements will make the lives easier for people using Pydev (and for those starting up too).

I've already published the homepage with screeshots of those improvements, but right now, they're only available in the nightly build (and will be released at 1.4.8)

Some of those usability improvements are:
  • Preview of the color options chosen
  • Preview of the code formatting chosen
  • Preview of changing the code style
  • Preview of block comments
  • Auto imports properly working when the editor changes (ctrl+shift+O in Pydev Extensions)
  • Hover works on markers when the editor changes
  • A Pydev (Jython) project can coexist with a JDT project (and properly use its info -- only project references worked previously)
  • Improved error messages for Iron Python not being version 2.6
  • The interactive console no longer halts the UI thread
... and some others I don't remember anymore ...

Some rough edges are probably still lurking around, but hopefully it has become harder to spot those :)