Home > Mac OS X > Xcode: Apple’s Answer to Visual Studio Xcode: Apple’s Answer to Visual Studio Eugenia Loli 2003-09-05 Mac OS X 38 Comments The company is doing wonderful things for programmer productivity. Now Apple is wooing developers in compelling ways as if it were trying to make up for the lost time. If only the IDE supported more languages, SDTimes says. About The Author Eugenia Loli Ex-programmer, ex-editor in chief at OSNews.com, now a visual artist/filmmaker. Follow me on Twitter @EugeniaLoli 38 Comments 2003-09-05 3:58 pm > The compiler for C, C++ and Objective C is gcc 3.3, the > GNU-based workhorse tool that is hardly known for generating > high-performance code. I hope Apple will eventually write > its own compilers that optimize the daylights out of > generated code. No. I hope Apple will optimizer the GNU Compiler Collection. By optimizing a single code generator, you get support for all the languages: C, C++, Obj-C, Java, Fortran, Ada… 2003-09-05 4:02 pm Imagine if even M$ would support it, that would give an unseen compiler framework… Well as usual I am dreaming ;-( 2003-09-05 4:20 pm I agree, it would be wiser to improve gcc.. and guess what ? that’s exactly what Apple does.. 2003-09-05 4:26 pm Ha! I can’t believe he ho-hummed gcc-3.3! 2003-09-05 4:32 pm I don’t think Apple is likely to throw away it’s work on GCC.. would be quite a dumb decision imho. 2003-09-05 4:33 pm erm, sorry for the crazy english I’m tired.. 2003-09-05 4:36 pm I use program OS X at home and Windows at work. I prefer the OS X operating system to Windows, the .NET Framework to Cocoa, and Visual Studio to XCode. But XCode is very nice, and it’s a big step forward. I wish there were an OS and development suite that had everything I need. 2003-09-05 4:39 pm “Like VS.NET, Xcode supports the C, C++, Java and Objective-C general programming languages plus others specific to the operating system, such as AppleScript.” Wow, when did VS.NET start supporting Java and Objective-C? There aren’t any plug-ins I’m aware of. And J# isn’t Java, it’s a JDK 1.1.4 compatable Java like language. Java in syntax only, not the platform. Just FYI, VS.NET supports C, C++, Managed C++, Visual Basic.NET, JScript.NET and C# out of the box. VS.NET 2003 adds J# to the mix. Anything else is a 3rd party addon. 2003-09-05 4:41 pm I believe Apple will contribute more to gcc rather than creating their own complier. 2003-09-05 4:42 pm It is suicide to create their own compiler, which takes many years to mature. Apple will contribute to GCC. It is a brain-dead fact. 2003-09-05 4:50 pm I use program OS X at home and Windows at work. I prefer the OS X operating system to Windows, the .NET Framework to Cocoa, and Visual Studio to XCode. I haven’t used Visual Studio or XCode (as long as it’s better than project builder, i’m going to be happy :-)), but can you elaborate a bit more on what is better about VS? Just curious. Nicest IDE I used thus far is Eclipse, but it’s not really a speed demon 🙂 (but I haven’t used much IDEs, nor have I programmed allot) 2003-09-05 4:53 pm The xlc compiler from IBM has their back. It produces code that can link with GCC code, so developers can write the performance intensive code in C/C++ and compile it with xlc for speed and link it to their Obj-C gui code using GCC. In the beta form the xlc compiler seems to be able to produce code (for the 970) that is up to twice as fast as the GCC compiler. It even produces better binaries for the G4 then GCC does (sometimes). IMO, the compiler isn’t as important as the tools. Tools like XCode, Interface Builder, etc, need to be top notch to compete with the other platforms. 2003-09-05 5:04 pm Or we may see IBM’s XL compiler mature – with Apple’s assistance – into a full featured alternative/replacement for GCC. The idea is this: Want a decent, free compiler? Use the Apple supported GCC compiler. NEED to squeeze every bit of juice out of your code? Pay up and go with the Apple supported, IBM XL compiler. 2003-09-05 5:25 pm Comparisons of XCode to VS.NET can hardly be made – based on the description that was made in the article. If Apple thinks the optimization of the edit-compile-link cycle is what developers consider highest priority, I would expect Apple has missed the mark. One of the largest advantages VS.NET has over previous IDEs is simply the power from Intellisense and instant code navigation and code comprehension afforded by that key technology. I am currently not an Apple developer, but have been looking to understand the difference between the tool platforms. It would seem that VS.NET is several years ahead in providing the key abstraction developers need most: source code comprehension. 2003-09-05 5:26 pm Why hasn’t anyone mentioned CodeWarrior? Just because Metrowerks doesn’t support the G5? Well they can’t really can they? They’re under the Motorola umbrella. But G3/G4 CPUs still have life in them, so if you a better-than-gcc compiler I think CodeWarrior is the real answer, not IBM’s XL compiler. 2003-09-05 5:28 pm because the OS is gonna kick butt and Xcode will be a sweet IDE…and its FREE!!!! that is the big seller for me. 2003-09-05 5:32 pm well, you have to acnowledge the fact that VS.NET has about 5 years on Apple. up until OS X came out, Apple had not made Developer tools for their platform. the fact that you can do basic coding in a good IDE is fantasitic. give it time and they will get the power built in. 2003-09-05 5:44 pm Why is everybody always referring to VS.NET as the mother of all IDEs? I use it daily, don’t get me wrong it’s a good IDE, but it has it’s shortcomings as well. The intellisense keeps breaking, to get it to work properly we had to buy a 3rd party tool: Visual Assist. The GUI designer in VS.NET isn’t that great either. I had to create a C# GUI for a project and became really frustrated with the way VS lays out components. Furthermore the number + quality of the components it provides is just sad. This is probably .NETs fault, but still. What I’ve seen Interface Builder does a way better job. Especially in layout with regards to enforcing HIG etc. In other words I can’t wait to get my hands on xCode (and Panther as an added bonus, or was it the other way around 😉 Just my 2 euro cents… 2003-09-05 6:10 pm If there’s one thing .Net, Java, and Delphi proved – it’s the class framework that counts more than any language. As long as NextStep/Cocoa is only truly supported by Obj-C they’re hobbled. Few people want to use an Apple-only language. They desperately need a complete C++/Cocoa hook-up. And also get the OS-X .Net implementation (Rotor) up to snuff and usable. 2003-09-05 6:24 pm I think the major big difference here is the price $1,079 US – $2,499 US for Visual Studio .NET 2003 $0 for Xcode 2003-09-05 6:27 pm I don’t think that multi language Cocoa is that important. .NET has lots of languages. I think that actually it’s weakness. Try to find an example… hmmm it’s in VB.NET I want C# or whatever. Obj-C is actually a pretty nice language for GUI work. And you can mix it with your C++ code. Write the core of your software in C++ and the GUI layer in Obj-C / Cocoa. About OS X .NET, I heard that porting Windows.Forms is the real problem. On the X11 side most people use gtk# or whatever. To me this is an indication that it wasn’t actually meant to be cross platform at all. They would have abstracted the Win32 GUI stuff more. If you want cross platform go with Java, it’s more mature anyway. The only thing Sun should do is generate the same hype as .NET! 2003-09-05 6:28 pm “”” If there’s one thing .Net, Java, and Delphi proved – it’s the class framework that counts more than any language. As long as NextStep/Cocoa is only truly supported by Obj-C they’re hobbled. “”” Two completely contradictory sentences. First, you say the language doesn’t matter, then you immediately say that ObjC hobbles Cocoa. I think you had it right the first time Objective C takes a day to learn and can be mixed with C and C++. It’s also a great language to do GUIs in because it’s so dynamic. And I’m really tired of the “it’s proprietary” stuff. How is Cocoa any more proprietary than Windows.Forms? When you use a given OS’s native toolkit, you’re tying yourself to that OS, regardless of what language you’re programming in. The important part is that the interface can be separated from the core code and the two can easily be linked together. 2003-09-05 6:39 pm Actually, the lack of decent documentation/books for Objective-C and the fact that it doesn’t run on Win32 is what’s hobbling it. 2003-09-05 6:44 pm Sad but true: Microsoft’s Visual Studio, C# together with the .Net framework is lightyears ahead of Apple’s Objective-C and Cocoa. Actually, Cocoa hasn’t received a major upgrade in het last 8 (!) years or so. I can hardly see any differences with the NextStep frameworks dating from 1994 (and still running on my Pentium 100mhz 🙂 ). Sure, we have Quartz, webCore, etc., but the ease of programming is so much better with .NET now than it has ever been with Cocoa and Objective-C. Programming for the Mac will start to be fun again when we’ll have a full .NET development environment running on OS X. If only the Mono guys could speed it up a bit … And Apple itself should be in a hurry. With Microsoft working hard on Longhorn’s Quartz clone (due 2005), Apple should work hard to not let the development gap get wider. 2003-09-05 6:54 pm If there’s one thing .Net, Java, and Delphi proved – it’s the class framework that counts more than any language. As long as NextStep/Cocoa is only truly supported by Obj-C they’re hobbled. Few people want to use an Apple-only language. They desperately need a complete C++/Cocoa hook-up. Obj-C is by no means an Apple-only language. GCC will compile it, it’s usable on pretty much every *nix. The GNUstep project (www.gnustep.org), which like Cocoa is an implementation of Sun/NeXT’s public OpenStep standard, is based on Obj-C. I would say most programmers are already knowledgable about C. Obj-C adds only a few things to the language, and within hours one can harness the power of object-oriented programming. C++, on the other hand, is seen as too complex by some and in any event takes longer to learn. Try downloading Apple’s Obj-C tutorial (or the old one by NeXT). It does a good job of explaining why Obj-C is a good choice. 2003-09-05 7:33 pm Cocoa also supports Java, you can program using all the Cocoa frameworks in Java. Or you can just make a Swing App that uses the Aqua L&F. Cocoa is by nature an Object Oriented framework. Though it can’t really be bound to C++ because C++ is too staticly bound. You have to use the hybrid Obj-C++ language to link C++ code to the Cocoa frameworks. Cocoa supports C, C++, Java and AppleScript out of the box. You could probably even do bindings for OO scripting languages like ruby, python, even Perl. 2003-09-05 7:44 pm >””” >If there’s one thing .Net, Java, and Delphi proved – it’s >the class framework that counts more than any language. >As long as NextStep/Cocoa is only truly supported by Obj->C they’re hobbled. >””” >Two completely contradictory sentences. ——- yes. justly noted. What I meant to say (I think) is that on OS-X Cocoa is what’s important more than all those languages, and the “obj-C only” thing is a barrier to entry for enough people to make it an issue. Wouldn’t it be easy to provide a C++ implementation? And if Apple doesn’t have the manpower, why don’t they just start a C++ port and then open-source it? especially if it’s been static for 8 years as somebody noted. Sure, maybe obj-C is a silly barrier to entry, and it’s a great and easy language. But I’ve talked to too many people who are feeling overwhelmed by SW complexity and just don’t want another framework AND another language to deal with. Not that many professionals can devote themselves to a – what? 3% marketshare? – platform. Cross platform tools are vital. There must be a million lines of .Net code being written as we speak. Apple should lure those folks to at least looking at porting with some work on .Net. As for Java, even Apple admits it’s slooow on OS-X. There are byte-compilation options like gcc or excelsior, but what’s their status on OS-X? Maybe apple can get some ball roling on that pitch too. In short – Apple would be doing itself a big favor doing whatever it took to make OS-X development look less like a walled ghetto. 2003-09-05 7:48 pm I don’t care about C++ and I definetly don’t use anything M$ produces. It’s all Java for me and I am 100% happy even though JBuilder costs a fortune. Netbeans gets better and I am looking with much interest at Eclipse the last years. 2003-09-05 8:27 pm Apple had a development environement before this called MPW. Painful at best to use but it was around for years and quite widely used. 2003-09-05 8:35 pm they don’t… they specifically say in their documentation that it isn’t slow, they don’t know where that came from, and maybe it was in the past, but it isn’t now. 2003-09-05 8:48 pm Dude all of you people complaining that Cocoa is hard and people don’t want to deal with it are weak and probably have never seriously used it a day in your life. It’s no different than C#. Personally I don’t get C#, i can’t find anything “WOW!” about it, it looks like a strange combination of C/C++ & Java which will confuse people more than Objective-C. My teachers who communicate with industry officials from many companies say .NET has had the opposite effect most of you describe. “Most people don’t like Visual Studio .NET because they don’t want another language just to learn another language.” Aaron Hillegrass says you can learn Objective-C in a couple of hours and really he is right. I’ve only been taught windows & some UNIX specific development so far and it didn’t take me long to learn Objective-C and start working on my project for Mac OS X. Seriously all you really need for an IDE is a editor,compiler,linker,debugger,etc and some tools to test the running app. I don’t know what your doing complaining about stuff most people don’t need in and ide. Oh and where is this lack of documentation? Apple has documentation on their site for Objective-C,Cocoa,Carbon,Java, and many other things. Plus when you get the developer tools you get documentation right on your hard drive in html and pdf. If thats not enough for you there is Vervante which prints an Objective-C book for apple. Plus there are many Cocoa/Objective-C books out there as well as plenty of documentation for using C/C++ in your projects as well. I actually find that Objective-C is a much nicer language for GUI development than C++ is. I mean god i wish i had a dime for everytime i could have used a NSMutableArray in C++ or Interface Builder in Java. 2003-09-05 8:55 pm What i meant in my last comment was that C# is no different in Objective-C in that you are going to have to learn a new language. The difference is that Objective-C is much easier to learn as compared to C#. Some of you are really stupid for saying “Man i don’t want to have to learn another language/framework” yet go out of your way to learn C# & .NET when it’s not that great of a language and lots of people are evaluating .NET as a failure. I’ve been using .NET for a while myself and haven’t found anything exceptional about it/ If anything when you get down to it Cocoa is the best IDE i’ve used and i’ve tried Visual Studio 6, Visual Studio .NET, NeatBeans, KDevelop,etc. plus the different versions of Project Builder over the years. 2003-09-05 10:13 pm One of the largest advantages VS.NET has over previous IDEs is simply the power from Intellisense and instant code navigation and code comprehension afforded by that key technology. Those things are nice, but they are not exclusive features. Other editors and IDEs also have those things. The thing for me that makes VS.NET tolerable (seeing as it is as slow as Darius seems to think Java is ) is it’s debugger. I think Borland and Microsoft have the best debuggers of any IDEs in the industry (in that order). 2003-09-06 12:21 am I really cannot believe some people are comparing Cocoa to .NET! It is obvious that some people have not played with Cocoa enough to realize how much it does for you. .NET does not hold a candle to Cocoa on a framework comparison. Cocoa is mature and it shows. Now, these people are talking about the tools, then they have a more legitimate point as VS .NET does have a better IDE than Project Builder if you need things like Intellisense or the like to do development. I haven’t seen XCode in action yet, but it looks to have that feature in. 2003-09-06 2:31 am With Cocoa, although it is an extension of the NeXTStep framework, one *could* if they so wished, implement the API based on the documentation already available. Unlike winforms, Cocoa doesn’t suffer from the same platform dependence. If .NET was a true multi-platform frame work, one should be able to rip out the win32 API from Windows and .NET should still run without a problem. 2003-09-06 7:54 am When it comes to IDE’s Borland has always bettered VS, even today Borland provides better tools, IMO. With regard to Xcode, we are seeing Apple add in WebObjects and NeXT development features that not only eliminates the linking but the coding to. The article did not do justice to Xcode, I believe the writer was basically using Apple’s preview site for her review, especially since the site doesn’t yet mention the new controller objects as was demonstrated at WWDC. 2003-09-06 7:44 pm Cool…it sounds like with AppleScript Studio integrated in XCode they’re trying to make an OSX answer to Visual Basic. “Real” programmers my loathe its existance, but VB is the reason that Windows programs and utilities are so abundant, and why so much custom corporate software is written for Windows. I wish there were something like it for Linux. 2003-09-06 8:58 pm Since when does VS.Net support Obj-C? And since when is Carbon the ‘new GUI API’ and Cocoa exclusively the system API? Does Andrew Binstock know something we don’t? Or the other way around?