PDA

View Full Version : Next version of Xcode




tiikel
Jul 13, 2009, 05:34 AM
When do you guys see the release of next version of Xcode? With Snow Leopard? There hasn't been a major release for a while, just new SDKs.

There are lots of little annoyances that I'd like to see addressed, like

Opening the error and warning console when there are errors, but not closing it automatically when the errors have been fixed.
Double-clicking file on all-in-one view opens a file to a separate window.
You have to switch to debugger perspective to see the console in all-in-one view.
Breakpoints can only be removed via the context menu or the breakpoints pane, instead of just clicking or double-clicking them.

..and so on.

What would you like to be improved in the next release of Xcode?



Cromulent
Jul 13, 2009, 05:58 AM
When do you guys see the release of next version of Xcode? With Snow Leopard? There hasn't been a major release for a while, just new SDKs.

There are lots of little annoyances that I'd like to see addressed, like

Opening the error and warning console when there are errors, but not closing it automatically when the errors have been fixed.
Double-clicking file on all-in-one view opens a file to a separate window.
You have to switch to debugger perspective to see the console in all-in-one view.
Breakpoints can only be removed via the context menu or the breakpoints pane, instead of just clicking or double-clicking them.

..and so on.

What would you like to be improved in the next release of Xcode?

The people who know about the next version of Xcode are under an NDA unfortunately so I doubt you will get much information from them.

Although I think it is fairly safe to say Snow Leopard will come with a new version.

lazydog
Jul 13, 2009, 06:12 AM
I'd like to see the editor draw pretty boxes around comments...

I think there is a lot of scope for editors to facilitate adding and presenting comments. Word processors have track changes, tables and diagrams etc, so I think it would be great to have similar facilities for us coders.

b e n

Cromulent
Jul 13, 2009, 06:26 AM
I'd just like Git support :).

lazydog
Jul 13, 2009, 07:01 AM
I'd just like Git support :).

I can't bring myself round to liking something called Git!

e n

GorillaPaws
Jul 13, 2009, 11:39 AM
I'd like to see the editor draw pretty boxes around comments...

I think there is a lot of scope for editors to facilitate adding and presenting comments. Word processors have track changes, tables and diagrams etc, so I think it would be great to have similar facilities for us coders.

b e n

I filed a bug report requesting iWork-like comments as an additional and independent commenting system. The idea being that these iWork style comments would be useful for having other people make suggestions/criticism/discussion about the code (each comment gets flagged with the commenter's name and the time/date it was created) without turning the code into a giant ReadMe.

Another thing that would be cool is a set of vertical tabs running down the left-hand side of the vertical scroller (could be enabled/disabled in preferences of course). Each tab would correspond to a #pragma mark so it would be easy to quickly jump around without having to use the pop-up box at the top for navigation (pop-up boxes suck for navigation imo).

It would also be cool if you could tint the background color according to predefined #pragma mark regions, so if you're quickly scrolling you can visually see when you're entering/exiting different sections of code.

Cinder6
Jul 13, 2009, 12:09 PM
What bugs me is that, in the error window, if the error message is long, the message can get cut off, often making the really relevant part of the message impossible to read unless you resize the window.

Another thing I would like would be for Interface Builder to warn you if an outlet has no connections. Or does it do this already? I've never seen it.

Cromulent
Jul 13, 2009, 12:09 PM
I filed a bug report requesting iWork-like comments as an additional and independent commenting system. The idea being that these iWork style comments would be useful for having other people make suggestions/criticism/discussion about the code (each comment gets flagged with the commenter's name and the time/date it was created) without turning the code into a giant ReadMe.

I like that idea, unfortunately I don't see Apple doing anything like this any time soon.

larkost
Jul 13, 2009, 01:22 PM
Breakpoints can only be removed via the context menu or the breakpoints pane, instead of just clicking or double-clicking them.


You can just drag them out, and you get the "poof" animation. I had never even realized that there was a menu option to get rid of breakpoints.

Cromulent
Jul 13, 2009, 01:40 PM
You can just drag them out, and you get the "poof" animation. I had never even realized that there was a menu option to get rid of breakpoints.

Heh, I didn't know you could do that.

Cinder6
Jul 13, 2009, 02:50 PM
You can just drag them out, and you get the "poof" animation. I had never even realized that there was a menu option to get rid of breakpoints.

Awesome, didn't know that.

mpemburn
Jul 13, 2009, 02:52 PM
As I've been working with XCode and Interface Builder for the past several weeks, I've often wondered if there was a 'professional' version that worked more smoothly. With all due respect to the XCode/IB developers: this is it?

* Tabbed editor interface: The main crazy-making thing is the lack of a tabbed interface similar to that used in most browsers these days. Nearly all of the IDE's I've used over the past decade have featured this (HomeSite, Visual Studio, skEdit, Eclipse) and I really miss it. The "Grouped" feature doesn't really help.

* Breakpoints: At times it seems completely capricious whether the breakpoint will be active when you run your app. In prior experience, when you set a breakpoint, it means you want to stop the code and step it or inspect variables. Which brings me to . . .

* Variable inspection: Perhaps it's because I don't understand the "XCode Way" but it seems to me that when you're stepping the code, you should be able to see the values of all variables in the scope. XCode shows what seems to be a completely random selection of the variables. Many times, the value of NSStrings shows up as "Invalid". What am I supposed to do with that?

* Code stepping: Another baffling thing is when I break the execution and begin stepping, there are times when the execution point goes backward and forward a couple of times. What the heck is going on here?

There are other things that make me nuts but I have to get back to work now. Hope this is not perceived as just whining.

-- Mark

beg_ne
Jul 13, 2009, 04:21 PM
I'm not too picky about Xcode right now, pretty happy with it for the most part.

A couple things on my short list would be:

1. Update the interface so the sidebar is more in line with most other apps. IE. the light blue source list style without the border.

2. Improve the code sense stuff. It's a little inconsistent sometimes, and it could be improved.

I think I've had instances where i've done something like:

NSMutableArray *array = [[NSM

And the first thing it suggests is something like 'NSMutableSet' instead of 'NSMutableArray'. Which really doesn't make any sense.

3. Git support. I haven't used SVN. I've played around with Git a little. And at this point I don't want to use something that is inferior to Git. Good integration would probably get me using Git more consistently.

4. Tab support. Maybe. I'm not sure how much I would really use it. The Groups & Files sidebar is pretty handy, as are the keyboard shortcuts. Having the option would probably be nice atleast.

5. Some kind of reformatting for the Preferences window. It just seems so unwieldy and doesn't look very good.

mongrol
Jul 13, 2009, 05:20 PM
I'd just like Git support :).

Won't happen as long as git is GPL.

Cinder6
Jul 13, 2009, 05:44 PM
Thinking some more, I just remembered I want a VIM-like editing mode :) I know that'll never happen, though.

* Tabbed editor interface: The main crazy-making thing is the lack of a tabbed interface similar to that used in most browsers these days. Nearly all of the IDE's I've used over the past decade have featured this (HomeSite, Visual Studio, skEdit, Eclipse) and I really miss it. The "Grouped" feature doesn't really help.

It basically does this. Use the all-in-one interface, and the document you click on will be the one displayed in the editor. On the top pane, you'll have a list of files you can edit, so long as you clicked on a group, and not a single source, in the Groups & Files pane on the left.

gnasher729
Jul 13, 2009, 06:01 PM
As I've been working with XCode and Interface Builder for the past several weeks, I've often wondered if there was a 'professional' version that worked more smoothly. With all due respect to the XCode/IB developers: this is it?

* Tabbed editor interface: The main crazy-making thing is the lack of a tabbed interface similar to that used in most browsers these days. Nearly all of the IDE's I've used over the past decade have featured this (HomeSite, Visual Studio, skEdit, Eclipse) and I really miss it. The "Grouped" feature doesn't really help.

* Breakpoints: At times it seems completely capricious whether the breakpoint will be active when you run your app. In prior experience, when you set a breakpoint, it means you want to stop the code and step it or inspect variables. Which brings me to . . .

* Variable inspection: Perhaps it's because I don't understand the "XCode Way" but it seems to me that when you're stepping the code, you should be able to see the values of all variables in the scope. XCode shows what seems to be a completely random selection of the variables. Many times, the value of NSStrings shows up as "Invalid". What am I supposed to do with that?

* Code stepping: Another baffling thing is when I break the execution and begin stepping, there are times when the execution point goes backward and forward a couple of times. What the heck is going on here?

There are other things that make me nuts but I have to get back to work now. Hope this is not perceived as just whining.

Debug the Debug version, not the Release version.
NSStrings are usually displayed as invalid because they are invalid.

mpemburn
Jul 13, 2009, 08:07 PM
Cinder sez:
It basically does this. Use the all-in-one interface, and the document you click on will be the one displayed in the editor. On the top pane, you'll have a list of files you can edit, so long as you clicked on a group, and not a single source, in the Groups & Files pane on the left.

Well, it's close but not the same thing. I may give it another try.

gnasher729 sez:
Debug the Debug version, not the Release version.

Hmm -- good thought, thanks!

NSStrings are usually displayed as invalid because they are invalid.

I'm not sure what to make of that assertion. Can you elucidate?

-- Mark

Cinder6
Jul 13, 2009, 08:53 PM
Well, it's close but not the same thing. I may give it another try.

True, it's not exactly the same, but I find I actually prefer it. In Eclipse, I'm constantly not paying attention and wind up with so many tabs open that they get hidden. It also happens that tabs from other projects stay up, which leads to confusing results.

Xcode, once you get used to it, has a more dynamic system, I think. If you separate your classes into good groups, you can work on files by relevance, instead of by order in which you opened them.

Granted, both styles have their advantages and disadvantages. I think it's kind of analogous to the labels vs. folders debate.

foshizzle
Jul 13, 2009, 09:18 PM
http://www.apple.com/macosx/refinements/enhancements-refinements.html#xcode

lazydog
Jul 14, 2009, 03:52 AM
Thinking about this a bit more: I'd like to see the equivalent of iTunes 'smart playlists' in the editor. Not too sure how this would work but it would be be something like giving the editor the ability to pull in methods/functions from across the range of files in the project according to various filters, and presenting them as a 'smart' file.

So for example, if a breakpoint is hit the editor could create a temporary smart file that consists of the functions /methods in the backtrace in order. Another example would be if I'm editing a virtual method or a constructor in a sub class etc, I could hit a button and the editor window would create a smart file showing the list of virtual methods or constructor sequence in the class hierarchy.

e n

Thomas Harte
Jul 14, 2009, 04:24 AM
Variable inspection does need an overhaul. The only way I've found to inspect any variable you want is to call up an 'Expressions' window and type your variable in there. But you may not edit any expression after you've pressed enter, and attempting to copy gives an unwieldy combination of the thing you typed and its result. So if you make a typo, it's usually faster to just type the whole thing again from the start.

At some point (for Xcode 2 maybe?) they changed the 'Globals' window so that it no longer displays your globals.

In addition, support for Objective-C++ is weak. Most of the time when in C++ functions, Xcode is too dumb to figure out what to do about instance variables of C++ classes, meaning that you have to manually prefix this-> to all of them in order to inspect.

On more than one occasion, I've had the exact same expression present in more than one location in an an Expressions window, each showing different values.

A version of the documentation browser that doesn't crash (taking the whole IDE with it) four times a day would also be nice. And this is with Safari 4.0.2, so it isn't just the broken Javascript engine in 4.0.1 and 4.0 cross infecting Xcode.

I'm also not sure why Xcode is so incredibly unresponsive when you're performing the trivial task of ticking or unticking files for inclusion in your current target. Having just performed a quick test, on this 2.8Ghz Core 2 Duo iMac it takes more than a second for your click to effect a change in the tickbox underneath (specifically, I managed to get the test box to change state 15 times in 20 seconds).

Dragging breakpoints out of the window is neat, and something I hadn't discovered. I do find the way that right clicking on a breakpoint will bring up the context menu with 'remove breakpoint' only about 60% of the time very frustrating, but I guess that won't bother me so much now.

Oh, and it crashes all the time when you're allowing multiple users consecutive access to the same project files. Trashing Build/<project>.build/<project>/pbxindex between each user seems to solve that problem, but it doesn't exactly promote a positive image of the software.

There's probably a bunch of other things I'm forgetting...

GorillaPaws
Jul 14, 2009, 09:37 AM
Another tool that would be cool to have is a special memory-leak debugger mode that takes advantage of the GC's smarts. The way it would work is that you'd write your standard memory-managed code and do a special build-and-run mode where it would create 2 instances of your app. One would use classic memory management, while the other would use GC, and they would both share a single GUI interface.

Every time an object is deallocated in the standard memory instance it would force the GC version to do a collection on its instance of the app. If the GC doesn't collect the object it would flag an alert showing where the pointer keeping it alive is. Also at the end of each event cycle, the GC would do a collection. It finds objects without strong references that it wants to collect that are not being deallocated in the memory managed instance, it would flag an alert indicating which objects may be leaking. Would something like this be possible?

Thomas Harte
Jul 14, 2009, 03:16 PM
Another tool that would be cool to have is a special memory-leak debugger mode that takes advantage of the GC's smarts. [...]
I'm not up 100% on the implementation, but I assume Instruments must be doing something along these lines. It's not particularly discoverable (especially in the usual Apple sense), but it can run alongside your non-gc program, spot leaks and track back to where the memory that leaked was originally allocated.

It does its checks on a timed basis (every 10 seconds, at least when used in conjunction with the iPhone) rather than applying the smarter schemes you suggest (ie, at user object deallocation and after event cycles), but I assume the tool could be extended.

Cromulent
Jul 14, 2009, 03:31 PM
I'm not up 100% on the implementation, but I assume Instruments must be doing something along these lines. It's not particularly discoverable (especially in the usual Apple sense), but it can run alongside your non-gc program, spot leaks and track back to where the memory that leaked was originally allocated.

It does its checks on a timed basis (every 10 seconds, at least when used in conjunction with the iPhone) rather than applying the smarter schemes you suggest (ie, at user object deallocation and after event cycles), but I assume the tool could be extended.

Instruments is just a pretty GUI for DTrace. In order to get the most out of it you really need to write your own scripts from what I have read on the subject.

You may already be able to do something along those lines with a bit of investigation. I haven't looked into it myself but it could certainly be interesting.

beg_ne
Jul 14, 2009, 03:42 PM
Won't happen as long as git is GPL.

Isn't SVN also GPL?

From what I could find with a quick Google search I didn't see anything that could be a problem.

SVN:

The source code for Subversion contains references to both the GNU General Public License 2.0 (GPL) and to the Apache Software License (ASL).


And for Git:

The source code for Git contains references to both the GNU General Public License 2.0 (GPL) and to the Mozilla Public License 1.0 (MPL).


I'm sure Apple has a lot of GPL code with all the command line goodies that come pre-installed. As long as it isn't GPL 3.0 there shouldn't be an issue right?