Real Software, er, Xojo announced today that the new IDE they’ve been working on for over a year will be available on June 4. Today I’ll give you a few of the highlights of the changes. Keep in mind that a few of these items may change slightly by the time it ships.
The Xojo IDE has undergone a huge makeover from its Real Studio predecessor. Gone is the project tab. In it’s place is the Navigator that contains a hierarchical list of every item in the project. Every window, menubar, menu item, class, control, module, property, event, constant, enum, method, event definition, report, and database is listed in the Navigator.
Large projects quickly make the Navigator large but a convenient SearchField at the top of the Navigator can quickly filter items out assuming you know its name. Thankfully a preference setting allows you to double click on an item to put that object in a new tab. Each tab then has its own copy of the Navigator that lets the user move about that object and back out into the overall project.
As you click on various items the editor, in the middle of the IDE switches to the appropriate one. Click on a window and the Form Editor appears. Click on a control in the editor and the appropriate control is selected in the Navigator. Likewise, click on a control in the Navigator and the appropriate control is selected in the Editor.
At this point many people start looking for the Property List for control properties. Xojo has completely eliminated the venerable property list in favor of a new Inspector. The Inspector appears to be a Container Control list that has rows of controls that let you set the properties for the selected object. It’s not nearly as convenient (so far) as the old properties list as you can’t simply tab through them and change the value (the old properties listbox let you do that).
Adding a standard control to the Form Editor is a bit different too. The old controls tool list has been retired in favor of the Library. It comes divided into general areas (Buttons, Pickers, Decor, Organizers, etc) along with a handy description of what the item is used for. The default size is rather large and cumbersome to use but you can change it so it shows just a list of names sorted with and without group headings. At that point simply double click or drag and drop the control onto your page or window.
Sadly the Library does not (yet) show you any of your subclassed controls or project items like the Real Studio IDE did. Also another annoying aspect of the Library and Inspector is that you can’t see both at the same time unless you set a preference to show them as floating palette windows. I tend to place a control and change its name right away and this one change destroys that habit. It’s not the end of the world but it’s a change to my workflow.
Xojo also changes the way we deal with events. In the old Real Studio IDE all events available to an object were automatically seen in the Code Editor (unless the user hid unused events). In Xojo the events have to be added to objects manually. Double clicking on an object that has no events yet will open the Events Dialog where you can see a list of all the available events and a handy description of what it is used for. If it already has events double clicking will drill down into the Code Editor for the control. To add more events you’re forced to use the Insert toolbar or menu item to add an Event Handler.
Adding events is a little cumbersome. Thankfully you can select multiple events at a time, however, it would be nice to have the available events in a contextual menu item if I right click on a control in the Navigator as a shortcut. I have no doubt that this feature will get better and more useful with time. I remain skeptical that this is a good change. Many new developers in Real Studio learned the events very quickly when drilling down into the code editor. I think this decision was made in part to keep the Navigator from getting even more cluttered than it already is.
Defining and editing methods has also received an overhaul in Xojo. In the Real Studio IDE it resided at the top of the Code Editor stretching from left to right. On a large monitor it could get rather wide. Xojo takes this to the opposite extreme. That area above the Code Editor now simply shows the method definition. To change the definition you have to use the Inspector (which might not be visible, by the way). The Parameters text area is much smaller than the Real Studio equivalent and thus isn’t nearly as convenient with large parameters lists.
Since Xojo is a Cocoa application Mac users will notice all of the niceties that we have come to expect in Cocoa applications. Dialogs open with a bounce effect and controls look sharp (even though R1 is not a Retina app). Xojo for Mac OS X has a lot of animations built in that give it some visual appeal. Click on an item in the Navigator and you can see the selection move. There is a preference setting to turn the animation off.
Licensing in Xojo is changing as announced. The IDE itself is free. Building for desktop, web, console or using database servers requires a license for that type of build. Presumably this will allow other licensing options in the future for things like iOS builds.
It’s obvious that Real Software, er, Xojo, Inc. put a lot of time and effort into the new IDE. Much of it I like and some of it I do not. The animations, while pretty, don’t help me do my job, and do nothing for the speed of the product. All those animations come at the expense of CPU cycles and I recommend turning them off.
Since the IDE is a Cocoa application the beta tag officially comes off the Cocoa option for Mac builds. The default will now be Cocoa with Carbon still being an option for now. In my own testing the Cocoa builds seemed to be solid but there ARE differences between Carbon and Cocoa that you need to be aware of. This is not the space for that discussion but I’m sure I’ll write more about it when the release happens.
Xojo, Inc. said they created the Navigator because they noticed that people were managing tabs a lot in Real Studio so they came up with a solution that eliminates that problem. I am not convinced it’s a ‘better’ solution since now i find myself ‘lost’ in the Navigator quite a bit. This issue was mitigated somewhat by adding the Back and Forward history buttons in the toolbar. Regardless, it seems that the larger the project the more getting lost in the Navigator is an issue. Finding a tab is easier than scanning a listbox with potentially thousands of items. To be fair, I’m getting more used to it the more I use it.
For those us that were around in the Real Studio 5.5 to Real Studio 2005 transition I can honestly say this: Xojo works right now. It’s better than I had feared but not as good as I had hoped. It has some warts, some large and some small. In general, I think you should take a look at it and evaluate how it fits into your projects. For us, I believe that all new projects going forward will be in Xojo. For things that are nearing completion I might wait a bit and for older projects it might be difficult to upgrade because of Cocoa.
Xojo is the future. Xojo is now.