PDA

View Full Version : Xcode 3.0




DavidLeblond
Aug 7, 2006, 06:36 PM
Was I hearing things when I heard him say XCode 3.0 would be out later today? Where is it??



steelphantom
Aug 7, 2006, 06:40 PM
I'm wondering the same thing. I just checked the Apple Developer site and it's not there yet.

ExoticFish
Aug 7, 2006, 06:50 PM
i've been checking the Developer Connection for hours now. although when i just checked again they changed the Xcode page (http://developer.apple.com/tools/xcode/) download link to say "Download Xcode 2.4" even though there's nothing new to download.

DavidLeblond
Aug 7, 2006, 06:55 PM
2.4, eh? Bah, I was hoping for 3.0!

slooksterPSV
Aug 7, 2006, 07:00 PM
2.4 isn't on there. Only 2.3, even though the image shows 2.4. I want 3.0 where is it.

grabberslasher
Aug 7, 2006, 07:00 PM
2.4, eh? Bah, I was hoping for 3.0!

3.0 should be Leopard-only. 2.4 is the Tiger release. Tiger is now deprecated for developers :p

slooksterPSV
Aug 7, 2006, 07:01 PM
Oh well, since its not up yet, I'll try Java SE6

steelphantom
Aug 7, 2006, 07:07 PM
3.0 should be Leopard-only. 2.4 is the Tiger release. Tiger is now deprecated for developers :p

Seriously? That sucks. :( I could have sworn I heard that XCode 3 would be available immediately. Will we at least get DashCode before Leopard?

ExoticFish
Aug 7, 2006, 07:43 PM
According to the macrumors live feed 3.0 was supposed to be released today. I highly doubt it's 10.5 only (Can't see Apple doing anything like that). I bet they're just still working on getting it out, sometimes it takes them a little while. I guess I'll just keep checking every few minutes until I fall asleep. :p

relimw
Aug 7, 2006, 07:51 PM
From the xcode-users list:

From: Chris Espinosa <cde [at] apple.com>
Subject: Xcode 2.4, 3.0, and Confidentiality

Xcode 2.4, an update to the Xcode 2 IDE, is announced today and
available on connect.apple.com (Access will vary by developer type and
geography today as we push the content around the world). This is a
public release and it can be discussed freely on xcode-users.

Xcode 3.0 was announced today as the development environment for
Leopard, for shipment with Leopard in Spring 2007. The existence of
Xcode 3.0 is public and announced, but its features, content, and
details are under nondisclosure to seeded ADC members.

mduser63
Aug 7, 2006, 08:17 PM
Here's (http://www.apple.com/macosx/leopard/xcode.html) Apple's page about the features in XCode 3.0. Looks quite cool.

slooksterPSV
Aug 7, 2006, 08:28 PM
Hmm wonder what this means :rolleyes: ...Enjoy modern garbage collection, syntax enhancements, runti...
:D :D :D :D :D :D :D :D :D Lots of happy faces, that's going to be the best!

DavidLeblond
Aug 7, 2006, 08:29 PM
Seriously? That sucks. :( I could have sworn I heard that XCode 3 would be available immediately. Will we at least get DashCode before Leopard?

Heh only if you bought one of the first Macbooks. ;)

Littleodie914
Aug 7, 2006, 08:48 PM
Heh only if you bought one of the first Macbooks. ;)I've got DashCode :cool:

As a matter of fact I've had it for months now... A simple search at your local torrent tracker should provide instant gratification. :D

relimw
Aug 7, 2006, 09:04 PM
Hmm wonder what this means :rolleyes: ...Enjoy modern garbage collection
It means you only have to take the trash to the street, not all the way to the landfill? ;)
And just how modern is that, anyway? I find it funny everybody claims u*nx is such a 'modern' OS when it's been around for so long....

Super Macho Man
Aug 7, 2006, 09:48 PM
Hmm wonder what this means :rolleyes: ...Enjoy modern garbage collection,
Does this mean Xcode is now going to automatically detect and delete your Boot Camp partition?

MacRumoron
Aug 7, 2006, 10:19 PM
i think interface builder has a new icon :p

lord patton
Aug 7, 2006, 10:23 PM
Does this mean Xcode is now going to automatically detect and delete your Boot Camp partition?

ha ha ha ha. Outstanding. :D

the.snitch
Aug 7, 2006, 10:31 PM
i think interface builder has a new icon :p

ooo yes nice pretty bluprint development icons. or could that be for the new development app, xRay?

MacRumoron
Aug 7, 2006, 11:06 PM
ooo yes nice pretty bluprint development icons. or could that be for the new development app, xRay?

http://img136.imageshack.us/img136/1927/picture1uk4.png

this is what i think it is (from left to right):
1. XCode
2. Xray
3. Interface Builder
4. Dashcode

slooksterPSV
Aug 7, 2006, 11:52 PM
What is/does xRay do?

WildCowboy
Aug 8, 2006, 12:01 AM
What is/does xRay do?

From Apple's site (http://www.apple.com/macosx/leopard/xcode.html):

Track down problems
When you need a bit more help in debugging, Xcode 3.0 offers an extraordinary new program, Xray. Taking its interface cues from timeline editors such as GarageBand, now you can visualize application performance like nothing youíve seen before. Add different instruments so you can instantly see the results of code analyzers. Truly track read/write actions, UI events, and CPU load at the same time, so you can more easily determine relationships between them. Many such Xray instruments leverage the open source DTrace, now built into Mac OS X Leopard. Xray. Because itís 2006.

Epicurus
Aug 8, 2006, 12:44 AM
Xray sounds cool, but I'll have to wait to see it in person. At least DashCode turned out to be a real product (with a real release date). I'm looking forward to that.

What I'm wondering is if Xcode 3 will be included with the Leopard-preview as a Leopard-only application or if it will be cross-platform compatible with a stable Tiger installation (side-by-side). I'm just thinking along the lines of using Xcode 3 as a development environment and not just a playground for 10.5 exclusive features.

Lollypop
Aug 8, 2006, 01:04 AM
Said it before the keynote, and Ill say it now, Apple needs to kiss ass with the developers, and from the looks of it I dont really know if XCode 3 as apple is pitching it now will help with that. Yes it adds a few new and nifty things, but there is still a huge gap in comparison to visual studio.net and all the other IDE's. Personally I have writen programs in C, Java and VB, and I found the gap so big that I gave up trying to learn writing anything for the Mac...

On a side note.. I have a few good books on Xcode that im now selling! :p

br-
Aug 8, 2006, 01:44 AM
I'm pretty sure that applications developed with XCode 3.0 using Leopard-specific technologies (eg, Core Animation, garbage collection, etc) won't be 10.4 compatible.

caveman_uk
Aug 8, 2006, 02:50 AM
I'm pretty sure that applications developed with XCode 3.0 using Leopard-specific technologies (eg, Core Animation, garbage collection, etc) won't be 10.4 compatible.
Well it depends how the developer chooses to do it. There are ways to use new features and still run on older versions of the OS. Major compiler changes can throw a major spanner in the works though....

kainjow
Aug 8, 2006, 02:57 AM
Said it before the keynote, and Ill say it now, Apple needs to kiss ass with the developers, and from the looks of it I dont really know if XCode 3 as apple is pitching it now will help with that. Yes it adds a few new and nifty things, but there is still a huge gap in comparison to visual studio.net and all the other IDE's. Personally I have writen programs in C, Java and VB, and I found the gap so big that I gave up trying to learn writing anything for the Mac...

On a side note.. I have a few good books on Xcode that im now selling! :p
Java and VB? Come on... ;)

bousozoku
Aug 8, 2006, 04:03 AM
Said it before the keynote, and Ill say it now, Apple needs to kiss ass with the developers, and from the looks of it I dont really know if XCode 3 as apple is pitching it now will help with that. Yes it adds a few new and nifty things, but there is still a huge gap in comparison to visual studio.net and all the other IDE's. Personally I have writen programs in C, Java and VB, and I found the gap so big that I gave up trying to learn writing anything for the Mac...

On a side note.. I have a few good books on Xcode that im now selling! :p

If you can really code in pure Java, it's no problem to write for Mac OS X.

Lollypop
Aug 8, 2006, 05:18 AM
Java and VB? Come on... ;) I havnt really coded in a while.. so ye, thats where my experience stops!

f you can really code in pure Java, it's no problem to write for Mac OS X. I usually use some sort of IDE, working with notepads gets a bit heavy when you have a dozen classes. What I personally found is that O-c has its own syntax and the you have the cocoa libraries, both very unknown to me, when I went to Java it was C like and the libraries were new. From a VB perspective its much easier to do more complex interfaces, sure interface builder does do a lot, but it kept on crashing for me.

Bit besides the point, my only goal with attempting to write for OS X was because I could then say I could, dont really need anything right now for the mac... :p

DavidLeblond
Aug 8, 2006, 06:43 AM
I'm not getting my hopes up on garbage collection. IMHO both Java and .NET tried this and failed miserably. At least I haven't had that good an experience with it.

HiRez
Aug 8, 2006, 07:07 AM
I'm not getting my hopes up on garbage collection. IMHO both Java and .NET tried this and failed miserably. At least I haven't had that good an experience with it.In what way was it a miserable failure? The performance? I'd argue that for many applications the overhead of GC would be acceptable on modern processors. 10 years ago, no, but today, yes. I'm hoping that Apple allows some kind of mixed mode where you can pick and choose which objects get managed manually or automatically so you can tune it for certain applications. Another nice thing would be to have some of the GC parameters adjustable, for instance how aggressive it is in tracking down dereferenced objects or how often it empties.

DavidLeblond
Aug 8, 2006, 07:20 AM
In what way was it a miserable failure? The performance? I'd argue that for many applications the overhead of GC would be acceptable on modern processors. 10 years ago, no, but today, yes. I'm hoping that Apple allows some kind of mixed mode where you can pick and choose which objects get managed manually or automatically so you can tune it for certain applications. Another nice thing would be to have some of the GC parameters adjustable, for instance how aggressive it is in tracking down dereferenced objects or how often it empties.

The problems I've had with Java is it just not DOING the garbage collection randomly, even when it passes the max heap. The problem I've had with .NET is when you use some COM objects, #1 it won't garbage collect #2 when you force it to garbage collect it trashes the HELL out of the COM objects that aren't SUPPOSE to be garbage collected. Now that may very well be crappy programming within the COM object but all I know is it sure pissed me off enough to leave a bad taste in my mouth whenever I hear the buzzword "garbage collection."

slooksterPSV
Aug 8, 2006, 08:45 AM
I've heard about GC, haven't used it as I don't know Java, but still that'd be awesome to have it integrated. Now I'm sure they'll do something like this: You can set specific options to either have GC turned on or turned off. There is no way they're making Leopard non-compatible with Tiger Apps (or prior OS versions of Apps). I'm positive Apple wouldn't leave us high and dry on that one.

macforge
Aug 8, 2006, 12:16 PM
I usually use some sort of IDE, working with notepads gets a bit heavy when you have a dozen classes. What I personally found is that O-c has its own syntax and the you have the cocoa libraries, both very unknown to me, when I went to Java it was C like and the libraries were new. From a VB perspective its much easier to do more complex interfaces, sure interface builder does do a lot, but it kept on crashing for me.

Are you sure you have actually tried using XCode - your 'notepad' comments make it sound like you were using AppleScript editor!

And as for IB crashing - what kind of errors were you getting - I have never had it crash on me, I would be interested to know if that is exceptional - or par for the course.

ExoticFish
Aug 8, 2006, 01:26 PM
is anyone seeing 2.4 yet? anyone know what new features 2.4 has?

gnasher729
Aug 8, 2006, 01:37 PM
is anyone seeing 2.4 yet? anyone know what new features 2.4 has?

64-bit compiler.

I would hope that the Mac Pros have the same 64 bit support as the G5. On other machines it won't do you much good.

bousozoku
Aug 8, 2006, 01:38 PM
...
I usually use some sort of IDE, working with notepads gets a bit heavy when you have a dozen classes. What I personally found is that O-c has its own syntax and the you have the cocoa libraries, both very unknown to me, when I went to Java it was C like and the libraries were new. From a VB perspective its much easier to do more complex interfaces, sure interface builder does do a lot, but it kept on crashing for me.

Bit besides the point, my only goal with attempting to write for OS X was because I could then say I could, dont really need anything right now for the mac... :p

Why don't you try Borland JBuilder for Mac OS X? It allows both a visual development paradigm and fill-in-the-blanks programming that VB developers love.

Personally, I haven't found any one Java environment to be completely useful. If JBuilder was more like C++Builder, I think they'd have a winner. Usually, I end up using NetBeans for visuals, then switching to jGrasp for coding.

is anyone seeing 2.4 yet? anyone know what new features 2.4 has?

The information is on the previous page of this thread.

hpatenaude
Aug 8, 2006, 03:23 PM
Odd, I've worked with C++, Smalltalk, Java, ObjPascal, C, Pascal, etc, etc, etc, and all the Borland and Microsoft and etc IDEs and I actually find XCode a more advanced than a lot of what's out there. To me it's just like Mail or iCal, really, really simple but I've never found it unable to do what I need -- usually faster and easier than in other IDEs. Not to mention the whole bindings, coredata, etc which IB and XCode facilitate.

My only major complaint is a lack of UML support, and in the language, the lack of garbage collection (thanks for fixing that one, Apple). I also am not particularly fond of CoreData but, it's about the best I can hope for considering how marginalized OODBs are.

But really, why are you even bringing up language -- what does the IDE have anything to do with the language? If you don't like ObjC it's probably because your limited OO background, not because of XCode. I mean, jeez, you can without touching the language manage to do quite a lot with CoreData and Cocoa Bindings.

It's usually a bad idea to buy a book on an IDE, the developer documentation is usually more than sufficient, spend your money on books that don't expire when a new version comes out. Those books just are reprints of developer documentation for the most part.

Said it before the keynote, and Ill say it now, Apple needs to kiss ass with the developers, and from the looks of it I dont really know if XCode 3 as apple is pitching it now will help with that. Yes it adds a few new and nifty things, but there is still a huge gap in comparison to visual studio.net and all the other IDE's. Personally I have writen programs in C, Java and VB, and I found the gap so big that I gave up trying to learn writing anything for the Mac...

On a side note.. I have a few good books on Xcode that im now selling! :p

hpatenaude
Aug 8, 2006, 03:35 PM
It's not really a buzzword. It's been around a long, long time, without people throwing their arms up about performance.

COM is antithetical to most of these things [basic things like 'GC' that the OO community used to take for granted], so don't take your experience from there. Try any of the thousand languages that have no concept of manual memory management... as far as Java you have to complain not about the memory management faculty in the language but the VM's implementation of it...

The problems I've had with Java is it just not DOING the garbage collection randomly, even when it passes the max heap. The problem I've had with .NET is when you use some COM objects, #1 it won't garbage collect #2 when you force it to garbage collect it trashes the HELL out of the COM objects that aren't SUPPOSE to be garbage collected. Now that may very well be crappy programming within the COM object but all I know is it sure pissed me off enough to leave a bad taste in my mouth whenever I hear the buzzword "garbage collection."

hpatenaude
Aug 8, 2006, 03:43 PM
It's not something you "use" it's something you don't use. It's like suddenly not having to think about object lifetime management. It keeps being touted as a new feature to use when it's more like removing an old headache you had to think about and deleting many lines of now-legacy code.

You can enable or disable GC based on leaked documentation from before Leopard was previewed -- but that's in terms of compiling. As far as backward-compatible apps that wont be possible. It's a Leopard specific capability, just like CoreData can't be used on OS X 10.3, GC can't be used in OS X 10.4... So if you write a spiffy new app on 10.5 and say "screw manually managing memory" and combile with the switch to turn GC on, your app will not run on 10.4. On the other hand of course any 10.4 app will run on 10.5 -- so there is forward compatability but not backward compatability. The way it should be, I think -- otherwise you limit Apple's ability to be agressive about new language/runtime/library features, and that's, deep down, what killed Microsoft's ability ot make any progress [worrying that brand new apps should be able to run on 3 year old OS versions].

At least that's my understanding based on the documentation of compiler switches that was accidentally released way back when.

I've heard about GC, haven't used it as I don't know Java, but still that'd be awesome to have it integrated. Now I'm sure they'll do something like this: You can set specific options to either have GC turned on or turned off. There is no way they're making Leopard non-compatible with Tiger Apps (or prior OS versions of Apps). I'm positive Apple wouldn't leave us high and dry on that one.

mward333
Aug 8, 2006, 04:11 PM
is anyone seeing 2.4 yet? anyone know what new features 2.4 has?

I don't see xcode 2.4 yet either on connect.apple.com..... does anybody have some advice, or should we just sit and wait, eh?

mward333
Aug 8, 2006, 04:31 PM
I don't see xcode 2.4 yet either on connect.apple.com..... does anybody have some advice, or should we just sit and wait, eh?

Hooray! It just appeared on connect.apple.com, 5:30 PM on Tuesday (Eastern time zone, in the USA).

WildCowboy
Aug 8, 2006, 04:39 PM
Hooray! It just appeared on connect.apple.com, 5:30 PM on Tuesday (Eastern time zone, in the USA).

Finally! Downloading now...my connection's been slow all day for some reason. :(

ExoticFish
Aug 8, 2006, 04:43 PM
hurray! glad i caught it before i left work so i could suck it through the university bandwidth at 1300KB/s (slightly faster than my slow DSL connection at home) :D

gnasher729
Aug 9, 2006, 04:19 AM
I'm pretty sure that applications developed with XCode 3.0 using Leopard-specific technologies (eg, Core Animation, garbage collection, etc) won't be 10.4 compatible.

That is absolutely under control of the developer. Obviously you cannot use 10.5 features on a machine that runs 10.4 or 10.3. What a developer does: First, he chooses which is the earliest version that the application should run on (for example, 10.2.8). Then whenever a feature is used that isn't available in 10.2.8, the programmer has to check whether that feature is actually available on the machine that the program is running on. A lazy programmer could just set a switch that requires MacOS X 10.5 to run an application, but that means you lose many customers.

ifjake
Aug 9, 2006, 02:09 PM
From Apple's website:
"Objective-C 2.0 - So compelling, Apple wrote Xcode 3.0 itself using it."

My layman's guess is Objective-C 2.0 runtime will only run on Leopard, so only the developers who have access to Leopard will be able to even run Xcode 3.0, which is why its distribution is select and secretive. It's not that applications developed on Xcode 3.0 will be Leopard-only compatible, but that Xcode 3.0 itself is Leopard-only compatible.

DavidLeblond
Aug 9, 2006, 02:47 PM
From Apple's website:
"Objective-C 2.0 - So compelling, Apple wrote Xcode 3.0 itself using it."

My layman's guess is Objective-C 2.0 runtime will only run on Leopard, so only the developers who have access to Leopard will be able to even run Xcode 3.0, which is why its distribution is select and secretive. It's not that applications developed on Xcode 3.0 will be Leopard-only compatible, but that Xcode 3.0 itself is Leopard-only compatible.

That makes sense... isn't XCode 2.x Tiger only?

iJed
Aug 9, 2006, 03:07 PM
I would like to see Apple release something to compete with C# and the .NET framework. While Cocoa is still a good framework the Objective-C language is looking more and more dated every year as C# and frameworks like .NET are becoming more and more advanced. I just hope this will not lead to much faster small application development on Windows where traditionally Cocoa allowed this on the Mac against MFC.

gnasher729
Aug 9, 2006, 06:52 PM
From Apple's website:
"Objective-C 2.0 - So compelling, Apple wrote Xcode 3.0 itself using it."

My layman's guess is Objective-C 2.0 runtime will only run on Leopard, so only the developers who have access to Leopard will be able to even run Xcode 3.0, which is why its distribution is select and secretive. It's not that applications developed on Xcode 3.0 will be Leopard-only compatible, but that Xcode 3.0 itself is Leopard-only compatible.

There is no reason why the Objective-C 2.0 runtime should only work on Leopard whatsoever. If that were the case, then development using it would be a complete non-starter for most developers, because not only XCode 3.0, but also any code written with it wouldn't run on most machines out there.

bousozoku
Aug 9, 2006, 07:41 PM
There is no reason why the Objective-C 2.0 runtime should only work on Leopard whatsoever. If that were the case, then development using it would be a complete non-starter for most developers, because not only XCode 3.0, but also any code written with it wouldn't run on most machines out there.

You're right, of course, that it should run anywhere. The question is whether Objective-C 2.0 will be integrated properly into gcc on a global platform scale. It still seems odd to me that Apple has one version of gcc and the rest of the world seems to have another version.

slooksterPSV
Aug 9, 2006, 11:15 PM
I would like to see Apple release something to compete with C# and the .NET framework. While Cocoa is still a good framework the Objective-C language is looking more and more dated every year as C# and frameworks like .NET are becoming more and more advanced. I just hope this will not lead to much faster small application development on Windows where traditionally Cocoa allowed this on the Mac against MFC.
Is C# and .NET really that great?

EDIT: I see its syntax is Java-like, and the Frameworks (because of simplicity with Java and all that) would make C# and .NET a really good mix of Language and SDK's. Personally, I prefer Objective-C, but if I develop apps for Windoze I'll have to learn C# and .NET

DaveP
Aug 9, 2006, 11:42 PM
Is C# and .NET really that great?

I think so. The number one greatest thing about XCode is that it is free. That can be an enormous advantage for just individual programmers that like to fool around with stuff. But the .NET 2005 IDE blows away XCode in my opinion.

iJed
Aug 10, 2006, 01:16 AM
Is C# and .NET really that great?

EDIT: I see its syntax is Java-like, and the Frameworks (because of simplicity with Java and all that) would make C# and .NET a really good mix of Language and SDK's. Personally, I prefer Objective-C, but if I develop apps for Windoze I'll have to learn C# and .NET

Where Java is designed to be clean and simple C# is designed for writing software. M$ have not been afraid to allow the use of pointers (through the unsafe mode and compiler flag) and there is support for language level events which make GUI programming much easier. The .NET component model also makes it unbelievably easy to develop custom controls. I had no real understanding of just how powerful embedded metadata could be until I started developing controls in C#.

Ironically that other .NET language is probably the most horrific mess I've ever had the misfortune to code in.

Visual Studio 2005 is certainly better than Xcode is today but it definitely has more than its fair share of flaws and bugs. Coming from an Eclipse background I find it lacking in more advanced features that Eclipse users take for granted. Its refactoring is primitive and its class diagram support is just plain crappy. However its code editor is in some respects as good as Eclipse JDTs.

Soulstorm
Aug 10, 2006, 04:09 AM
That Objective C 2.0 thingy seems great. Garbage collection sounds good, but I think Apple should give users the opportunity to choose wether they want automatic garbage collection on or off.

On the other hand, I don't see any other reason why they shouldn't implement it the way I hope. Apple says that Objective C 2.0 is backwards compatible with its predecessor, so how could this be done without supporting both modes (automatic garbage collection on or off)??

As for Visual Studio .NET, I think that we should look at ALL features that Apple provides. Apple provides with the developper tools many mechanisms for optimization (the CoreXXX thingies, remember?) that have come in very handy to developers around the world. Developing in Cocoa is sweet, and XCode 3.0 looks very promising. I also heard some essential optimizations in the Carbon Framework.

What I meant to say is that we should not relate the compiler we use with the whole programming experience on the Macintosh platform. Apart from the compiler, we should also consider the programmatic facilities that Apple gives to programmers, CoreXXX implementations, frameworks, documentations (although I haven't seen MS's one to judge if it's better), and the FACILITY in which those technologies are implemented in the programs. For me, XCode is a very nice IDE, but I think that the real work has been done by apple under the hood, in the frameworks they offer. And lets not forget that one thing Microsoft hasn't been able to do yet, is to keep things SIMPLE for the programmer, as apple has managed to do with the whole developper tools situation.

iJed
Aug 10, 2006, 05:24 AM
That Objective C 2.0 thingy seems great. Garbage collection sounds good, but I think Apple should give users the opportunity to choose wether they want automatic garbage collection on or off.


Yes I can't wait to take a look at Obj-C 2.0 when some examples of it finally materialise. I'm rather annoyed that Apple hasn't released any with the announcement.


On the other hand, I don't see any other reason why they shouldn't implement it the way I hope. Apple says that Objective C 2.0 is backwards compatible with its predecessor, so how could this be done without supporting both modes (automatic garbage collection on or off)??


I don't think there is much chance of them breaking standard Obj-C...


What I meant to say is that we should not relate the compiler we use with the whole programming experience on the Macintosh platform. Apart from the compiler, we should also consider the programmatic facilities that Apple gives to programmers, CoreXXX implementations, frameworks, documentations (although I haven't seen MS's one to judge if it's better), and the FACILITY in which those technologies are implemented in the programs. For me, XCode is a very nice IDE, but I think that the real work has been done by apple under the hood, in the frameworks they offer.


Yes, Apple have some great frameworks that do great things. Possibly the best set of frameworks for native application development in existence. Its just that, although not native, .NET is, for the most part, more complete and easier to work with than Cocoa is.

And lets not forget that one thing Microsoft hasn't been able to do yet, is to keep things SIMPLE for the programmer, as apple has managed to do with the whole developper tools situation.

I can't say I agree with that. VS 2005 is much easier to use than Xcode. I remember how confusing doing something as simple as setting up targets was in Xcode 1.0 was after doing the same thing in ProjectBuilder.

DavidLeblond
Aug 10, 2006, 06:34 AM
Is C# and .NET really that great?

I'm a .NET developer so I spend most of my time in it. I only use XCode at home, and then not much (I do more PHP at home.) The .NET IDE is very well laid out and very powerful, and the languages (either VB.NET or C#) are very easy to learn and work with.

That said, .NET has its drawbacks. Microsoft loves to cater to its third parties, so if you want to do anything fancy with a control or tool (such as put a combo box in a grid) you either have to a) spend money on a third party tool or b) code it yourself.

Plus (and I know people are going to jump on me for this) the IDE and the .NET framework itself are buggy as hell. And IMHO slow as hell too.

XCode is definitely not as user friendly and can be pretty hard to learn, especially for someone who is more use to .NET. Same goes with Objective-C. Still, I like the fact that there are a lot of "features" built into a Cocoa program that you would have to buy separately for .NET.

iJed
Aug 10, 2006, 07:11 AM
Plus (and I know people are going to jump on me for this) the IDE and the .NET framework itself are buggy as hell. And IMHO slow as hell too.

I wouldn't say the .NET framework is any worse than the JDK but I agree with you on the IDE. VS2005 is incredibly buggy. Its of beta software quality.

I run on an Athlon 64x2 at work and Visual Studio is quite responsive. It was very sluggish on the P4 2.8GHz the Athlon replaced.

DavidLeblond
Aug 10, 2006, 07:17 AM
I wouldn't say the .NET framework is any worse than the JDK but I agree with you on the IDE. VS2005 is incredibly buggy. Its of beta software quality.

I hate the JDK just as much. :)

dernhelm
Aug 10, 2006, 08:01 AM
I think so. The number one greatest thing about XCode is that it is free. That can be an enormous advantage for just individual programmers that like to fool around with stuff. But the .NET 2005 IDE blows away XCode in my opinion.

I earn my living coding in both. The VS IDE (pre 2005) was ridiculously buggy, and would crash several times/day on me. VS 2005 it is only marginally buggy and often goes a full week without crashing.

The .NET development environment is rich, and actually kind of fun to code in, but it by no means all that perfect. For one, you are really running in a kind of VM (not unlike Java) and despite what you hear, there is a definite performance hit for that. Also, if you are trying to mix-and-match managed and unmanaged code you are in for a lot of head-scratching, canoodling, and highstepping around things that are outright bugs in my opinon.

Also, despite what you hear, C# is the only outright native .NET language. C++, VB, etc, while they can produce .NET runtime code, all feel like a bolt-on. In fact, prior to VS2005, the C++ syntax for producing managed code was so horrific that only the masochistic or terminally unfortunate would ever actually use it. (I was in the latter camp).

.NET is a great rapid prototype-driven development environment. I used to use VB a lot to slap together a prototype, and then use C++ to code the real thing. That was how most Microsoft programmers worked. Now, however, I can prototype in C# and simply build off the prototype to produce the final product. And the graphical development environment is extensible like nobodies business - it is easier than it has ever been to produce sophisticated UI widgets that ANYBODY can use in their product.

A lot of the .NET code originally produced by Microsoft was thin wrappers around Win32 APIs. In some cases this was a good thing, and in other cases a bad thing, but .NET 1.x was often slow an buggy - and most people doing anything sophisticated ended up looking for ways to get at the underlying Win32 world where they knew how to get things done. However, that is changing, and changing fast - Microsoft has figured out how to get the .NET runtime into their database, and on devices both large and small. And now more and more frameworks they are producing are native .NET.

For the 1990s, the NeXT environment was absolutely top dog. But it stood still while Microsoft did not. Hopefully Obj-C 2.0 is the start of Apple realizing that they also need a top-notch development environment as well. Garbage-collection is a start - and will help everyone (not just newbies) if it is done well (and done in a way the non-gc'd code and gc'd code can interact cleanly). But more important are the frameworks themselves - Apple needs to keep producing "Core" frameworks that are compelling - easy to use - and integrate seamlessly into their development environment. They need to beef up their interoperability frameworks as well - XML, SOAP, CORBA and Web services, are all necessary realities to enterprise developers, and they need to be easier to work with. They also need to make it dirt simple to produce UI controls that are my own, but become part of my development environment by getting added to the interface builder palette automagically.

dernhelm
Aug 10, 2006, 09:15 AM
Yes I can't wait to take a look at Obj-C 2.0 when some examples of it finally materialise. I'm rather annoyed that Apple hasn't released any with the announcement.


I can't agree more. I want to know how they are doing this, what the GC implementation is, and how it affects what I've already done. Does anyone know if they are adding keywords and symbols (a la managed C++ in .NET) something like:

// non-gc'd
NewObject *newobject;
newobject = [[NewObject alloc] init];

// gc'd
GCNewObject ^newobject;
newobject = [[GCNewObject gcalloc] init];

What is the "gotcha" when a standard class wants to hold a reference to a garbage collected class? Or visa-versa?

How will all of this fit in with the current "pool/autorelease" pattern?

Will there be a language-enforced complementary concept to the "Dispose" pattern in .NET?

dernhelm
Aug 10, 2006, 09:25 AM
I can't say I agree with that. VS 2005 is much easier to use than Xcode. I remember how confusing doing something as simple as setting up targets was in Xcode 1.0 was after doing the same thing in ProjectBuilder.


While I generally agree that VS 2005 is simple to understand - you can't really bring up project dependencies/targets as a strong suit of the product. If you work on anything of any complexity or size, VS .NET cannot actually ever figure out what needs to be built and what doesn't - and more times than not resorts to re-linking the entire product (even if you tell it not to) whenever you start up in debug mode.

I'm not a big fan of Make (or gmake) - but I can make it sit up and beg if I need it to. And in general it runs circles around the VS IDE in terms of getting project dependencies set up correctly. I understand Xcode's system is built on top of "jam" somehow - I'm a little fuzzier on this one. But I can generally say that this is an area that Xcode is leaps and bounds better than VS.

slooksterPSV
Aug 10, 2006, 10:54 AM
Where Java is designed to be clean and simple C# is designed for writing software. M$ have not been afraid to allow the use of pointers (through the unsafe mode and compiler flag) and there is support for language level events which make GUI programming much easier. The .NET component model also makes it unbelievably easy to develop custom controls. I had no real understanding of just how powerful embedded metadata could be until I started developing controls in C#.

Ironically that other .NET language is probably the most horrific mess I've ever had the misfortune to code in.

Visual Studio 2005 is certainly better than Xcode is today but it definitely has more than its fair share of flaws and bugs. Coming from an Eclipse background I find it lacking in more advanced features that Eclipse users take for granted. Its refactoring is primitive and its class diagram support is just plain crappy. However its code editor is in some respects as good as Eclipse JDTs.

Well that explains it, no wonder you see so many threads on forums complaining about something .NET doesn't work. -- I haven't went on a Windows forum for years (wow I can honestly say that), but I remember seeing a lot of fuss - even if you google .NET it'll bring it up as well - about .NET's framework

XCode Developer package, does all that I need it to do. Which is great for me. Other's may like Visual Studio, but I haven't had a lot of experience with it.

Tehy
Aug 14, 2006, 07:27 AM
So, when XCode 3 will be available?

caveman_uk
Aug 14, 2006, 07:57 AM
So, when XCode 3 will be available?
When Leopard comes out (unless you're a paid up dev and you'll get it earlier)

live4ever
Aug 14, 2006, 11:07 AM
I wonder if Apple will get an optimized Intel compiler for Objective-C (there's one for C++ and Xcode).

mbabauer
Aug 16, 2006, 08:26 AM
The problems I've had with Java is it just not DOING the garbage collection randomly, even when it passes the max heap.

Java development is my primary job, so I speak from experience.

First, GC in Java works the same way GUI redraw in Java works. You can "suggest" it to occur, but its up to the individual vendor implementation whether or not it actually occurs. Also, it usually works byh setting a flag, indicating to the VM that the next cycle it needs to GC. In other words, telling the GC to garbage collect doesn't just stop everything and garbage collect.

Second, I have seen first-hand that the IBM JVMs, especially the 1.4.x ones for earlier AIX platforms, do not GC very effectively. There were indications of leaks in code that had no leaks under the Sun JVM, which tells me that its the JVM leaking, not my code.

Third, the GC is definately NOT random. It usually runs in a separate thread, which probably has a wait/sleep in it. It wakes up, and does some VERY rudamentary tests to see if it needs to run a garbage collect. Also, most JVMs implement a faster "quick" garbage collect and a more aggressive "full" garbage collect. The priliminary tests the GC does determines which one should run. You can see this first hand on the Sun JVMs by turning on verbose GC logs (I think the flag is -verbose:gc)

Last, for large applications, especially on application servers and such, I find it almost necessary to modify the GC's default behavior. There are LOADS of books, websites, etc that tell you how to tune GC for your JVM. The default settings work great for smaller applications, but for servers that typically allocate memory very aggressively, you should tune the GC accordingly.

As for .NET, I have done a little bit of development there, but not enough to be considered an "expert". From what I read, the same things that apply to Java VMs applies to C# VMs.

Hope that helps you out some...

wmmk
Aug 20, 2006, 01:25 PM
call me a complete n00b, but what is garbage collection?

FredClausen
Aug 20, 2006, 01:29 PM
call me a complete n00b, but what is garbage collection?

Here is a great writeup on garbage collection (http://en.wikipedia.org/wiki/Garbage_collection_%28computer_science%29).

wmmk
Aug 20, 2006, 09:03 PM
Here is a great writeup on garbage collection (http://en.wikipedia.org/wiki/Garbage_collection_%28computer_science%29).
cool, auto memory management! xcode just keeps making coding easier and easier. I wouldn't be surprised about a consumer targeted iCode app in a fw years.

kainjow
Aug 20, 2006, 10:05 PM
I wouldn't be surprised about a consumer targeted iCode app in a fw years.
Already exists: REALbasic, AppleScript Studio, etc ;)

wmmk
Aug 20, 2006, 10:45 PM
Already exists: REALbasic, AppleScript Studio, etc ;)
i'd disagree. applescript studio is for consumers, but it can't really do big applications. REALbasic actually requires knowledge of C++, which the casual consumer doesn't tend to have. when I say 'consumer targeted,' I mean super intuitive and requiring barely any knowledge of code. like the script assist mode in flash actionscript 2.0. along with IB. you click and drag actions from a list into a window and syntax is corrected automatically, then you drag and drop elements onto windows and toolbars and assign them functions from a list. a way for 'real' devs to create various functions and make them self installable into iCode. in other words, automator with more possible actions and actions not being related to only certain apps, but your app itself, then the result being a .app with a GUI, not just a script.

MadDoc
Jan 14, 2007, 04:56 AM
i'd disagree. applescript studio is for consumers, but it can't really do big applications. REALbasic actually requires knowledge of C++, which the casual consumer doesn't tend to have. when I say 'consumer targeted,' I mean super intuitive and requiring barely any knowledge of code. like the script assist mode in flash actionscript 2.0. along with IB. you click and drag actions from a list into a window and syntax is corrected automatically, then you drag and drop elements onto windows and toolbars and assign them functions from a list. a way for 'real' devs to create various functions and make them self installable into iCode. in other words, automator with more possible actions and actions not being related to only certain apps, but your app itself, then the result being a .app with a GUI, not just a script.

Huh? REALbasic doesn't require any knowledge of C++ at all. Have you actually ever used REALbasic?

MadDoc,

psychofreak
Jan 14, 2007, 05:06 AM
There is a consumer app maker: Dashcode...

bousozoku
Jan 14, 2007, 01:02 PM
i'd disagree. applescript studio is for consumers, but it can't really do big applications. REALbasic actually requires knowledge of C++, which the casual consumer doesn't tend to have. when I say 'consumer targeted,' I mean super intuitive and requiring barely any knowledge of code. like the script assist mode in flash actionscript 2.0. along with IB. you click and drag actions from a list into a window and syntax is corrected automatically, then you drag and drop elements onto windows and toolbars and assign them functions from a list. a way for 'real' devs to create various functions and make them self installable into iCode. in other words, automator with more possible actions and actions not being related to only certain apps, but your app itself, then the result being a .app with a GUI, not just a script.

REALbasic is about as close to point-and-click programming as you can get on Mac OS X, though Borland's JBuilder still runs. On Windows, both Microsoft and Borland have products with this paradigm and REALbasic runs there too.

You don't need knowledge of C++ to make anything work. You do need to study APIs to make your simply drag-and-drop application more substantial.

GeeYouEye
Jan 16, 2007, 02:03 PM
Having done significant work Xcode, Eclipse, and VS, I've come to the conclusion that each have their strengths and weaknesses. Eclipse is fantastic for Java. Nothing more needs be said about it. For coding anything else, I much prefer Xcode. VS has fantastic debugger functionality though. Between the two, I'd rather be stuck with Xcode (especially 3.0!) for eternity than VS, though the biggest source of my aggravation with it is the changes between versions... Initialize a variable in a for-loop, for example: for(int i =0...). In 2002, the lifetime of i is rather longer than it is in 2005. I know what it's supposed to be, of course, but despite the fact that it's a bugfix in 2005 doesn't mean there weren't regressions; there were. So any time there's anything resembling ambiguity, you have to take the safest route (for fear of what the next IDE revision will do to your code), which in this case would be to put the initialization before the for loop completely, whether or not I need an i later, which leads to extra lines of code.

Also, Xcode 3, and IB 3, are terrific. :p IB3's even better than RealBASIC's interface creation.

younker
Jan 17, 2007, 03:20 AM
I just wonder whether apple will release Xcode 3 for tiger, I think this can be helpful for developers to develop application for leopard, like what MS do, MS
releases the SDK of vista to public, then developer can develop applications on XP for vista.

Another question, Does gcc upgrade in Xcode 3?
I hope that gcc 4.1.1 or 4.2 will become the default C/C++ compiler.
In gentoo, gcc-4.1.1 already support gc for obj-c.

garethlewis2
Jan 17, 2007, 03:56 AM
That's the whole point of the paid ADC membership. You get the next beta release of the OS in this case Leopard and all the dev tools for it. For mere mortals not on the ADC premier or select membership you don't get ObjC-2 until Leopard.

For the GC on Java issue. On the project I am working on, we use the Sun performance tools which XRay is based on and it tells us exactly what the Java VM is doing at that moment in time. To stop our DataServer from stuttering every few minutes with huge numbers of GC'd objects we ran the GC on its own thread and made sure that the memory allocated to the VM was massive. The outcome, massive improvement in speed of the applications, no stuttering on the GUI, no sudden drops as the GC kicks in, it still kicks in, but runs its own thread and can do GC without having to suspend any other threads. If Apple can get ObjC-2 GC todo that and with C2D chips you have two HW threads, it will be stunning.