We're well into the cycle on 5.0 and I thought I would take a moment to mention some of the under-the-hood changes that will be happening.
One of the often requested features is the ability to have multiple windows open, or to move tabs to different locations in the UI. I'm not making any promises on those actually making it into 5.0, but we are devoting time to some structural issues that prevent the ability to do this in 4.x.
One significant item is that we're removing a lot of our usage of observers and moving them into DOM events. Observers and notifications are global to the application, whereas DOM events are local to the window's DOM. Early on we had always designed for a single main window, and the observer system was an easy way to communicate things like a new buffer being opened, or one being closed.
Here's an example of what you would do in Komodo 4.0 to watch for the current buffer being changed (ie. switching to a different file in the editor tabs).
And here is how you will do it in Komodo 5.0:
We will likely be able to have automatic compatibility for macro's that are using the new observer functionality in 4.4. Anyone who has written macros that use the observer service directly will have to change, as will any extensions that observe on any of our notifications. More details on this will be provided in the future.
So how will this help in the future to provide more flexible UI? We isolate events into the window they happen in, allowing for multiple main windows that only receive events that are important to them. This is essentially what Firefox does in a bunch of places. While this doesn't solve the issue of actually implementing coherent multi-window support or the ability to move UI elements around, it does make it possible to go down that road at some point.
If any macro/extension authors have thoughts around this, we'd be happy to hear from you.