Xcode 4 hands-on: be sure to RTFM first

Status
Not open for further replies.
Xcode 4 is probably the most significant change to Apple's developer tools since they were released. Ars provides a short overview of the changes, and highly recommends you RTFM if you're going to use this software.

<a href='http://meincmagazine.com/apple/reviews/2011/03/xcode-4-hands-on.ars'>Read the whole story</a>
 

Cincinnatus

Smack-Fu Master, in training
94
@frej

$ clang --version
Apple clang version 2.0 (tags/Apple/clang-137) (based on LLVM 2.9svn)

$ llvm-gcc-4.2 --version
i686-apple-darwin10-llvm-gcc-4.2 (GCC) 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2335.9)

$ gcc-4.2 --version
i686-apple-darwin10-gcc-4.2.1 (GCC) 4.2.1 (Apple Inc. build 5666) (dot 3)

(edit: include gcc-4.2 version information)
 
Upvote
0 (0 / 0)

pilky

Ars Scholae Palatinae
663
kaleberg":2opufi88 said:
Did they ever get NSArray to work? I tried using XCode and just creating an empty application that allocates and releases an empty NSArray caused an application crash. I wound up writing my own array code just as I did back in the 60s on an IBM 1130. So much for progress. XCode also has the annoying habit of becoming unable to build an application due to an update or inhaling while breathing between 0 and 90 degrees latitude, north or south as best I can tell. This requires tediously creating a new application and moving modules using cut and paste from your old working version to create a new working version. I'm amazed anyone can use this thing at all.

NSArray works, has worked for getting on for 20 years and is used in 1000s of applications by millions of people every day.

Does Apple plan to support XCode in the forseeable future? That might be news.

Considering they write all their software (including the OSs) in Xcode, and have just released a major update, I don't see why they would even consider dropping it.






Xavin":2opufi88 said:
Entegy":2opufi88 said:
JPan":2opufi88 said:
Errors in code are flagged while you type, and the system even offers suggestions on how best to fix them;

I always forget how far behind C/C++ development is behind Java. Eclipse has done this for Java since I can think.
Isn't that more on the IDE and not the language itself? I still hold Visual Studio in high regard for its error correcting/IntelliSense

The actual implementation of code completion and immediate errors is the IDE, but the design of the language is a huge factor in what the IDE can actually figure out in real time. Providing high quality realtime information about the code like VS does for C# requires very deep integration with the compiler, too.

It largely depends on the compiler to a degree. The reason why Xcode has been lacking, and why C/C++ dev environments in general are often seen lacking, is due to compilers, or more specifically GCC. It's GPL based and not designed to be an API (so can't be integrated easily), is slow, bloated and has crap error messages. LLVM/Clang changes much of that, by being designed to be modular, is fast, lean and knows a massive amount about your code. Whereas GCC knows something went wrong somewhere in a few line range, LLVM knows the exact character that is wrong, points to it and gives you a nice, clear error message.

In previous versions of Xcode, there was GCC for compiling and then internal parsers for handling syntax highlighting, refactoring, code completion etc. GDB also had it's own language parser. This led to large disconnects between the 3, especially as when a new language feature was added 3 parsers needed updating. With Xcode 4, Clang is the parser for the compiler (LLVM), syntax highlighting, refactoring, code completion, error checking/fixing and also for LLDB. This means they can focus on one parser, and even better than one parse is the one that is guaranteed to be the most accurate: the compiler parser.

That said, it is true that the language can play a large role. C#, like Java, is a strongly typed language, which means it is much easier to reason about prior to, and at, compile time. This allows for some very powerful tools. Objective-C, like Ruby or Python, is a weakly typed, highly dynamic language, which means it is near impossible to fully reason about until runtime. You can get a long way though, and static typing in Obj-C helps you find many silly errors. Of course, while you do lose the ability to produce quite as high quality tooling, you do gain in that you can often do the same thing with far less code. Ultimately it's the pros and cons of strong vs weak/dynamic typing and each developer has their own preference.





frej":2opufi88 said:
Is it really llvm 2._0_? Or just the apple 'version' and actually 2.8 or soon to be released 2.9?

Apple uses Clang's (the C/C++/Obj-C frontend for LLVM) version number, so it is Clang 2.0 on top of LLVM 2.8 or 2.9
 
Upvote
0 (0 / 0)
pjleinen":2xuul1i5 said:
xcode uses a mix of objective C, snippets of NEXT (the bastard child of Steve Jobs) and what is called Cocoa Touch. Cocoa Touch are essenitally a buch of prebuilt commands used to allow user interaction with the device.

This makes it sound like an ugly mish-mash, which it is not.

Objective-C is an extension of the C language, which adds object-oriented syntax based on Smalltalk. All standard C is legal (and some high-performance APIs such as OpenGL are implemented in C). The syntax is extremely simple, and if you are familiar with object-oriented programming concepts and memory management, can be learned in about 30 minutes. Mastery may take a bit longer...

Cocoa is Apple's API that is used for Mac Development. OS X has it's roots in NeXTStep, as does Cocoa. Many of the classes are still prefixed "NS", like the aforementioned NSArray (which does indeed work just fine).

Cocoa Touch is basically the same API, but for iOS. It has adaptations for the user interface, file system, hardware differences, etc.
 
Upvote
0 (0 / 0)
jpjansen":3kouyucr said:
ltcommander.data":3kouyucr said:
jpjansen":3kouyucr said:
Huh? We're supposed to pay $99 for GCC now?

MacPorts wouldn't install on my brand-new, built-to-order, late-ish to deliver and quite pleasant-to-use MBP until I remembered that some version of Xcode might be available on one of those discs in one of those beautiful black boxes which I never bother to open.
I don't see anyone reporting that the intention is to discontinue including XCode with OS X. And the latest version of XCode 3 is still available for free. Most likely this is another case of Apple's strict interpretation of accounting rules requiring charging something for new programs. Just like every Mac comes with iLife for free but you have to pay for major new versions. XCode 4 will probably be included for free with Lion. If they can bundle in Lion Server for free I can't see why they wouldn't do so for XCode.

Disagree, with respect.

I'm uncomfortable with the fact that Apple ship an obsolete or obsolescent SDK and expect me to rip out my credit card for a major release as touted. An OS without the latest SDK is rather uninteresting.

I'd cheerfully pay for Lion, though, provided that I'd could type "make" without much hassle.

Hmm...
How is apple shipping an obsolete or obsolescent SDK with its OS?
What is going on here?

Here is the deal.
1. you need to be a registered dev, to distribute software on the Mac or IOS app store.
2. unlike the old MAC dev system, which was EXPENSIVE (over $1k) its $99 to be registered.
3. once you are registered you get the latest and greatest SDK, references, assistance, and a "cheaper" hardware deals.
4. If you don't want to pay money then you can get any number of free dev tools to use on the Mac and you can also publish software for the Mac WITHOUT registering as a dev.
5. why the hell does any of this matter. If you are a developer or an enthusiast who wants to code with the latest apple xcode, and you can't afford $4.99, then you should be selling your computer so you can feed yourself. You shouldn't be worrying about paying $4.99 for a piece of software.
(you should just download and compile GCC and use that instead or something.)

Its amazing that people will do all this whining for an apple $5 price hike where the cheapest MS Visual Studio I can find is $250 and the premium version is $5000...

Its just like when people where upset that OSX costs $29 vs MS cheapest license at $129 or something.

What exactly is the reason people have such knee jerk reactions to Apple & $?
 
Upvote
0 (0 / 0)

steven75

Ars Scholae Palatinae
852
benInMa":2l8pw1e3 said:
The other part of me is annoyed.. because I'm at a point where I'm not really fluent in how XCode works.. upgrading to XCode 4 doesn't seem like it would effect much on the Objective-C side or with respect to learning the various apple frameworks.. but it does mean the books I've purchased are probably hopelessly out of date now, and as a result there could be a whole lot of that RTFM going on for me.

That aside this looks awesome but I'll wait till it's a bit more solid I suppose, which will allow me time to come further up to speed with 3 and be less reliant on the manuals.

/same boat here.

I'm going to wait awhile also. Think of it this way, by the time we update to Xcode 4, it'll probably be on v4.2 or something and many of the teething bugs will be fixed.
 
Upvote
0 (0 / 0)
I'd just like to say that the comments on this article prove beyond a shadow of a doubt what absolute *ssholes most developers are. Almost every comment is some kind of braggadocio about something the developer has done in the past, some random dig at past versions of the XCode tools that has nothing to do with the review, a drive-by generic Apple insult, or a tired "Microsoft rules" kind of thing.

It's no wonder that none of you have girlfriends.
 
Upvote
0 (0 / 0)

oluseyi

Ars Tribunus Militum
1,513
erikengh":j3648ba3 said:
2. For more sophisticated apps you will normally need Model-View-Controller stuff. That works way better in Cocoa. I think Qt screwed up here and they pretty much acknowledged that themselves.
I think it was Qt 4.4 that introduced abstract models. Qt leaves it up to you how to divvy up your model and controller, but does provide a model-view architecture. I'm looking to employ it in the next revision of a project.

erikengh":j3648ba3 said:
Of course Qt has the big advantage of being multi platform. Getting started doing simple apps is also much easier.
That advantage evaporates in the most bizarre places, such that the source tree for my current ostensibly Qt-based project includes a Win32-only C++ file and an Objective-C++ file, so I can take advantage of native facilities.

Sample? QFile::copy, both static and member variants, has consistently failed me with medium-sized (30 - 50 MB) files. I tried going with QFile::write(QFile::readAll()) and chunked QFile::write(QFile::read()) strategies, at one point even cascading through all three approaches. Extremely unreliable. In the end I went with NSFileManager copyItemAtPath: toPath: error: on OS X and CopyFileEx on Windows. Worked like a charm, on the first try.

Today I learned that the application (which is actually written in Flash, embedded in an EXE/app bundle, then packaged with a separate updater executable which is the one I'm writing in Qt/Cocoa/Win32) may be expanding to the iPad and Android tablets. I can't, in good conscience, say that I'll keep Qt in the mix when I have to target OS X, Win32, iOS and Android. I'm looking at implementing the application core in C++ and then providing UI and very-low-level services layers in the various native APIs. The variation in input metaphors is too great, and platform coverage from Qt too unreliable and too spotty.

Huge digression. :)


AlanC":j3648ba3 said:
Personal experience is that Xcode 4 is more than a bit unreliable when working with iOS projects created with XCode 3.2: I've had lots of crashes, even when doing something as simple as editing the app-Info.plist.
On a lark, what's your Safari version? I was at 5.0.3 and found virtually all of my crashes (actually, all so far) disappeared once I upgraded to 5.0.4. Also, Copy Files build phases don't appear to work with Xcode 4, and will stall your build.


Overall, I think Xcode 4 is a winner. Obviously I've been using it since at least November (probably late September, actually) so I'm already very familiar with it. It's a huge upgrade over 3.2, and I expect the version that ships with Lion will fill in some of the obvious gaps and fix a few bugs. The future of Xcode is quite bright.
 
Upvote
0 (0 / 0)

Entegy

Ars Legatus Legionis
18,167
Xavin":2fvfh4vj said:
Isn't that more on the IDE and not the language itself?
The actual implementation of code completion and immediate errors is the IDE, but the design of the language is a huge factor in what the IDE can actually figure out in real time. Providing high quality realtime information about the code like VS does for C# requires very deep integration with the compiler, too.
Ok, thanks.
 
Upvote
0 (0 / 0)

nikster

Well-known member
580
So that explains why they didn't hire me ;) - after my first iPhone project, I sent a ranting, raving job application to Apple, promising to fix their freaking dev tools, which are about 10 years behind the curve now. They actually had a job posting for a development tools software engineer. I am hoping they hired someone better than myself - then we should be all good soon.

Ok so some people are still excited about emacs and TextMate and for those XCode isn't a problem - glorified text editor right here.

But for those of us who have been using Eclipse and similar tools for over 10 years, XCode 3 was shocking. Crap, basically. Even more shocking because of Objective-C - ObjC is an old language, and so it has a lot of clutter, a lot of extraneous typing, a lot of possibilities for errors, and so on - well since that's the case, that's also a chance for an IDE to make very significant improvements to the process - all these inefficiencies could, in theory, be removed by an IDE which "does the right thing". The worse the language, the more chances for the IDE to improve things. But XCode didn't do any of that - instead, it provides a basic text editor, and 700 different compiler properties settings which you can only hope and pray you never need.

The switch to LLVM is a very good sign - I imagine that will eventually lead to full control and full incremental compiler support a'la Eclipse. You never compile code in Eclipse - it's compiled every time you make a code change. As a result, you get live feedback on errors you might have introduced - even if you made the error in an API that's used by some other module thousands of classes away - that module will show the error. Full compiler control is also important for proper refactoring - by that I mean refactoring support through the compiler, rather than doing some weird text based guessing like XCode 3 did. The compiler knows the calling chains, the method signatures, the visibility and use of all objects - a good IDE must make use of all that knowledge. That also leads to perfect code completion - knowing all methods and objects accessible from the current context helps a lot. They could even do automatic imports... The result of all this is a 30% or more real-life productivity gain. Cleaner code is also a result because when refactoring is quick and easy (and risk-free) you're much more likely to do it.

Hurray for XCode 4, going to check it out today.
 
Upvote
0 (0 / 0)

Arcanum-XIII

Wise, Aged Ars Veteran
121
The latest SDK can be access without Xcode 4, and for free with a free developer membership — with Xcode 3.2. Not the latest and greatest from the IDE point of view, but still working fine.

In Xcode 4, I have no problem with code completion for now, on iOS apps with some external library. It's not perfect, and I hope we will soon get LLDB to debug, but well, one things at a time : 4.1 or 4.2 will change this. Seeing how things have evolved between 3.0 to 3.2, it's nearly a given...

Objective C may be an old langage, still, working with it for 9 month now, it's really, really powerful and easy to write. My first app was out in 2 weeks, and even if the code was crap, it work fine without memory leak or any problem... Top notch documentation helps of course.

Microsoft tools seem to be cool too. The tool for WPF/Silverlight seem very, very neat to design advanced and special interface, something that's truly not the point of IB/Xcode. But it also seem to be a very different view of the art of programming, so I will have to adapt — and I think, for what I've read here, this is the major criticism of Xcode : it's not like other IDE. And Xcode 3 to 4 change the way to work with it, so another adaption for programmer, and more FUD in view !
 
Upvote
0 (0 / 0)

Arcanum-XIII

Wise, Aged Ars Veteran
121
The latest SDK can be accessed without Xcode 4, and so with a free developer membership — with Xcode 3.2. Not the latest and greatest from the IDE point of view, but still working fine.

In Xcode 4, I have no problem with code completion for now, on iOS apps with some external library. It's not perfect, and I hope we will soon get LLDB to debug, but well, one things at a time : 4.1 or 4.2 will change this. Seeing how things have evolved between 3.0 to 3.2, it's nearly a given...

Objective C may be an old langage, still, working with it for 9 month now, it's really, really powerful and easy to write. My first app was out in 2 weeks, and even if the code was crap, it work fine without memory leak or any problem... Top notch documentation helps of course.

Microsoft tools seem to be cool too. The tool for WPF/Silverlight seem very, very neat to design advanced and special interface, something that's truly not the point of IB/Xcode. But it also seem to be a very different view of the art of programming, so I will have to adapt — and I think, for what I've read here, this is the major criticism of Xcode : it's not like other IDE. And Xcode 3 to 4 change the way to work with it, so another adaption for programmer, and more FUD in view !
 
Upvote
0 (0 / 0)
To avoid this, I've added a .gitignore file that tells the system not to include many of the project settings. This has allowed me to commit code, but means that I don't end up saving the configurations of all my tabs, meaning I'll have to recreate my work environment if anything goes wrong.

Hmm. Looks like there is a misunderstanding. The purpose of Git isn't to provide some sort of backup system, it's designed for revision control and collaboration. Personal project settings should never go into a Git repo.

Accordingly, you'd better test how to view or compare to last week's code version, and how to fetch code changes from or send code changes to the neighbour's repository. Bonus points for testing collaboration with public repositories, like the ones on Github or Sourceforge. That is what matters.
 
Upvote
0 (0 / 0)
Traumflug":exuoibyx said:
Hmm. Looks like there is a misunderstanding. The purpose of Git isn't to provide some sort of backup system, it's designed for revision control and collaboration. Personal project settings should never go into a Git repo.

Accordingly, you'd better test how to view or compare to last week's code version, and how to fetch code changes from or send code changes to the neighbour's repository. Bonus points for testing collaboration with public repositories, like the ones on Github or Sourceforge. That is what matters.

Why? If you work on a one-man project (and there are a lot of those), why not use some form of revision control (e.g. git) for everything in it, including IDE settings? It's not like git comes with a license saying "Thou must only use this to store source code, and only when working with others".

seabasstin":exuoibyx said:
Its amazing that people will do all this whining for an apple $5 price hike where the cheapest MS Visual Studio I can find is $250 and the premium version is $5000...
Its just like when people where upset that OSX costs $29 vs MS cheapest license at $129 or something.
What exactly is the reason people have such knee jerk reactions to Apple & $?

You're not very good at searching, then: It's available for free. ( http://www.microsoft.com/express/ )
(Admittedly, the express editions are not identical to the expensive versions - but if you need the differences, you're most likely in a situation where you won't mind paying for it.)
 
Upvote
0 (0 / 0)
I'm astounded at the number of posts related to XCode articles from people who clearly know nothing about development and/or development related to Apple-based technology. Many are pretending to be knowledgeable, yet clearly aren't (who in their right mind would reinvent NSArray for crying out loud). A bit of Visual Studio trolling going on too. I work with both XCode and Visual Studio - both have problems, but I personally find VS a lot more frustrating (and it isn't cheap either). And VS Express? Don't waste your time....

Why has XCode suddenly become a target for all this drivel? I can understand if it was developers complaining about genuine problems, but what does anyone else care?
 
Upvote
0 (0 / 0)

wizard69

Ars Tribunus Militum
2,283
Traumflug":o6i57paw said:
To avoid this, I've added a .gitignore file that tells the system not to include many of the project settings. This has allowed me to commit code, but means that I don't end up saving the configurations of all my tabs, meaning I'll have to recreate my work environment if anything goes wrong.

Hmm. Looks like there is a misunderstanding. The purpose of Git isn't to provide some sort of backup system, it's designed for revision control and collaboration. Personal project settings should never go into a Git repo.

Accordingly, you'd better test how to view or compare to last week's code version, and how to fetch code changes from or send code changes to the neighbour's repository. Bonus points for testing collaboration with public repositories, like the ones on Github or Sourceforge. That is what matters.

I have to disagree here, especially with public source code releases. Sometimes it si very useful to know how a developer had his environment set up. By environment I mean everything associated with the build process, which the IDE is part of. You don't now how many times I ended u scratching my head over a build issue only to find out a command line wasn't setup right or an environment variable was wrong.
 
Upvote
0 (0 / 0)

wizard69

Ars Tribunus Militum
2,283
WesGordon":2n6o2gng said:
I'm astounded at the number of posts related to XCode articles from people who clearly know nothing about development and/or development related to Apple-based technology. Many are pretending to be knowledgeable, yet clearly aren't (who in their right mind would reinvent NSArray for crying out loud). A bit of Visual Studio trolling going on too. I work with both XCode and Visual Studio - both have problems, but I personally find VS a lot more frustrating (and it isn't cheap either). And VS Express? Don't waste your time....

Why has XCode suddenly become a target for all this drivel? I can understand if it was developers complaining about genuine problems, but what does anyone else care?

I don't disagree that some people here don't understand XCode but that is not a sin. In fact some of the questions appeared to be very honest. As to Visual Studio well that is really a product worth comparing XCode to, it isn't trolling in any shape or form.

For me it is pretty simple, I read these threads to get an idea of the sate of XCode 4 and the value in changing over to that platform. Frankly I've never liked XCode as it has always been extremely buggy and the IB approach to building GUI's just totally rubs me the wrong way. XCode has the potential to make coding for the Mac far more bearable.

As to developers that is not a narrow range of programmers, but a rather wide range of skills and interest. Not everybody out there is a full time Mac develoepr nor an iPhone developer.
 
Upvote
0 (0 / 0)

oluseyi

Ars Tribunus Militum
1,513
ltcommander.data":2uacdk95 said:
Out of curiosity, what versions of OS X and iOS can XCode target? I believe XCode 3.2 supported everything from Tiger and iOS 2.x and up. Does XCode 4 still provide GCC 4.0.1 to target Tiger and can it still build Universal Binaries for PPC support?
Tiger remains the minimum supported OS X deployment target. For iOS, it's 3.0.
 
Upvote
0 (0 / 0)

NukemHill

Ars Centurion
291
Subscriptor
Xcode 4 managed to lock my Macbook Pro up this afternoon. I was running some builds (on a rather extensive project ported over from 3.2.5) and Xcode just choked. I was experimenting with LLVM 2.0, and Xcode put up the beachball in the middle of an edit/build sequence. I tabbed out to Safari for a while, to catch up on news, and then tried to tab back. No glory.

I finally hard-clicked on the Xcode icon in the Dock and selected Force Quit.

Bang. Whole system locked up. No mouse, no nothin'. Had to power down and restart.

It's been stable since. I backed out to GCC, and then cleaned the project before each build. I'm building successfully in LLVM 2.0 now.

Interestingly enough, it is barking about assignment errors that GCC only raises a warning on. I've had to modify several protocols (which I've been wanting to do anyway; just never made the time for it) to allow for a successful build. I guess it's good. But I find it interesting how LLVM seems to be stricter in allowing message forwarding.

I would very much like to have access to LLDB. I'm sick of GDB.
 
Upvote
0 (0 / 0)

topham

Ars Legatus Legionis
13,756
Subscriptor
NukemHill":1pcenf45 said:
Xcode 4 managed to lock my Macbook Pro up this afternoon. I was running some builds (on a rather extensive project ported over from 3.2.5) and Xcode just choked. I was experimenting with LLVM 2.0, and Xcode put up the beachball in the middle of an edit/build sequence. I tabbed out to Safari for a while, to catch up on news, and then tried to tab back. No glory.

I finally hard-clicked on the Xcode icon in the Dock and selected Force Quit.

Bang. Whole system locked up. No mouse, no nothin'. Had to power down and restart.

It's been stable since. I backed out to GCC, and then cleaned the project before each build. I'm building successfully in LLVM 2.0 now.

Interestingly enough, it is barking about assignment errors that GCC only raises a warning on. I've had to modify several protocols (which I've been wanting to do anyway; just never made the time for it) to allow for a successful build. I guess it's good. But I find it interesting how LLVM seems to be stricter in allowing message forwarding.

I would very much like to have access to LLDB. I'm sick of GDB.


gcc allows a lot of things that are way outside the specifications. It's a pretty sloppy compiler.
 
Upvote
0 (0 / 0)

mrstep

Wise, Aged Ars Veteran
194
mbmcavoy":1nvqtnql said:
pjleinen":1nvqtnql said:
xcode uses a mix of objective C, snippets of NEXT (the bastard child of Steve Jobs) and what is called Cocoa Touch. Cocoa Touch are essenitally a buch of prebuilt commands used to allow user interaction with the device.

This makes it sound like an ugly mish-mash, which it is not.
...<snip>...

Thanks for answering that so I didn't feel compelled. :)

Oh, what the hell... maybe I should explain how Xcode compares to Eclipse.

Eclipse uses a mix of Java, snippets of SUN (the bastard child of Scott McNealy), and what is called Honeycomb. Honeycomb is essentially a bunch of prebuilt commands to allow user interaction with the device.

I'm happy to have been able to bring the same level of keen insight to Eclipse as was brought to Xcode. If anyone can explain Visual Studio for the layman, I'm sure some of us out here are still confused about that IDE as well. ;)

Seriously, how can someone be posting 'information' like that if they have no idea what they're talking about? What is a 'snippet of NEXT (the bastard child of Steve Jobs)' supposed to even be? Cocoa Touch is essentially a bunch of prebuilt commands used to allow user interaction with the device? Ugh, it's so far beyond just inaccurate... got to go rinse the vomit out of my mouth now.
 
Upvote
0 (0 / 0)
What a surprisingly positive review. My experience with Xcode 4 is the opposite, for me it's buggy and slow at it's painful to work in it with a large C++ codebase. Maybe it's great if you're writing 2000 line iOS apps, but for developing a full blown major Mac application with integrated script stages, multiple targets and executables, I'll stay with 3.2 for now. I can see where Apple wanted to go with Xcode 4 and there are some great intentions behind it, but the execution is mediocre. I wish Apple would hold their developer tools to the same standard as they do to the OS itself, but so far every major Xcode update felt to me like they shipped it with their UI and QA departments on vacation.
 
Upvote
0 (0 / 0)

mrstep

Wise, Aged Ars Veteran
194
Stef":1je1lb69 said:
What a surprisingly positive review. My experience with Xcode 4 is the opposite...

I've seen a lot of problems with larger projects as well, things like code completion not working, compile errors/warnings not tying back to the line of code with the problem, slow builds, one project of mine going from 5 secs (12-core Mac Pro, this took about 40 seconds on my old 4-core machine, Xcode 3 ran the compile on 24 threads and just screamed!) back to about 30 seconds now. Guess it's good I have the fast machine, because otherwise it would be taking minutes now, presumably. Oh yeah, and I've never seen an IDE chew up quite so much memory (easy to get 1.5+ GB RAM chewed up). I have enough RAM, so it doesn't matter there, I'm more irritated with strange build settings, the slow compiles, and warning/errors not taking me to the code responsible.

I really like where they're going with it - the in-app workflow is an improvement - but it definitely doesn't feel ready for prime-time. :/
 
Upvote
0 (0 / 0)
Xavin":25av9uez said:
To avoid this, I've added a .gitignore file that tells the system not to include many of the project settings.
It's never a good idea to add your personal settings files to source control, as those will be different for everyone.

Project settings files are named with your username, so everyone can submit their project changes just fine - they don't overwrite each other and the project package is capable of containing other users' project settings files - unless two developers have the same username on their own client machines. A version control system is actually suitable for this as developers will make personal settings throughout development of a product. Having a version controlled history of this is good.
 
Upvote
0 (0 / 0)
JPan":w09uk660 said:
Depends some languages make it simpler for you than others. For example in C with all its pointer magic its much much harder to predict what will happen and what is an error than for example Java.

Ha ha - I was thinking the exact opposite. C, with the use of pointers is perfectly predictable. How could it not be? It's Java's garbage collection that you never really know what's going on and when.
 
Upvote
0 (0 / 0)
aeberbach":2x0p87au said:
Sbrocket":2x0p87au said:
Plus...did you seriously reimplement a data structure class simply because you couldn't figure out how to use NSArray correctly? How would that even seem reasonable?

I bet he never realised there is a NSMutableArray :D

Or, what has been previously mentioned, is that he didn't understand that a static convenience constructor (e.g. [NSArray array]) is autoreleased.

It's sad that this guy probably has told this to people and they believed him.
 
Upvote
0 (0 / 0)
gustav_1":1t8k4tlw said:
JPan":1t8k4tlw said:
Depends some languages make it simpler for you than others. For example in C with all its pointer magic its much much harder to predict what will happen and what is an error than for example Java.

Ha ha - I was thinking the exact opposite. C, with the use of pointers is perfectly predictable. How could it not be? It's Java's garbage collection that you never really know what's going on and when.

That's only true for trivial projects. Attempting any enterprise level development on a non-managed environment is a sure recipe for disaster. Not to mention loss of mental health.
 
Upvote
0 (0 / 0)

FGauthier

Seniorius Lurkius
46
imagremlin":1az533qt said:
gustav_1":1az533qt said:
JPan":1az533qt said:
Depends some languages make it simpler for you than others. For example in C with all its pointer magic its much much harder to predict what will happen and what is an error than for example Java.

Ha ha - I was thinking the exact opposite. C, with the use of pointers is perfectly predictable. How could it not be? It's Java's garbage collection that you never really know what's going on and when.

That's only true for trivial projects. Attempting any enterprise level development on a non-managed environment is a sure recipe for disaster. Not to mention loss of mental health.

Java C# and others are programmed in C. How could it not be reliable for enterprise grade apps.
 
Upvote
0 (0 / 0)
Status
Not open for further replies.