Hacker News new | past | comments | ask | show | jobs | submit login

Beyond bugs and crashes, it seems to me that Xcode sucks because it's primarily built for a rather archaic language (Obj-C), thus the value added by the IDE is "scrappy" rather than uniform and natural.

Environments that are rich with implicit metadata have synergy with IDEs. Environments full of repetition, gnarly API headers, #ifdefs and #defines don't.

---

In other words, Xcode is technologically fighting an uphill battle. Fortunately people are still skilled enough to produce great OS X and iOS apps with it.




Microsoft hasn't had any problems with their development tools that support rather archaic languages.

The problem is solvable; it's just that making a decent developer product is not a priority at Apple. Provisioning is another example of terrible UI. And then there's their crappy command line/scripting support (for integration into a CI server), and their horrible developer portal web interface. The entire developer UI and usability experience is downright embarrassing. And to cap it off you have the typical Apple unhelpful or misleading error messages, including the most common and my personal favorite "An unknown error has occurred".

Ugh... my blood is boiling already, and I still have another 10 hours today with this shitty tool to look forward to...


I used VS up to VS2008 and didn't find it for C++ particularly good either. The IntelliSense didn't work half the time and, apart from the debugger, about the only thing I used was Go-To-Definition/Declaration. The C# context was enormously more helpful and reliable.


>Beyond bugs and crashes, it seems to me that Xcode sucks because it's primarily built for a rather archaic language (Obj-C), thus the value added by the IDE is "scrappy" rather than uniform and natural.

Newer dynamic languages have actually WORST IDE support than Obj-C. IDEs for dynamic languages for example (Ruby, Python, Lua, ...) suck, and are left in various stages of incompleteness. Even IDEs for JVM based languages (Scala, Groovy, etc) are not that good (mostly some basic IDE capabilities built on top of Eclipse core engine).

>Environments that are rich with implicit metadata have synergy with IDEs. Environments full of repetition, gnarly API headers, #ifdefs and #defines don't.

Objective-C by it's design keeps a lot of metadata, especially since XCode 4+ has the full LLVM and AST of the whole project at it's disposal to check for types, inheritance, messages, variables, autocompletion et al.

>In other words, Xcode is technologically fighting an uphill battle.

In other words, no.


I don't disagree about those dynamic languages. I wouldn't even try to use an IDE for them. BTW, Go has nothing to do with the JVM.

Why don't you consider the need for LLVM+clang and the subsequent huge amount of work indicative of an uphill battle to retrofit the IDE?


Re: Go, yes, meant to write: Groovy!

>Why don't you consider the need for LLVM+clang and the subsequent huge amount of work indicative of an uphill battle to retrofit the IDE?

Well, I'm not sure about the "huge amount of work". We just saw some release from Apple and that was it, we had XCode 4. Shouldn't have taken that much, more like 2 years or something for everything, considering that was around the time Apple started using LLVM.

They did retrofit it, but only because they had a more basic IDE before. Not because something in the language particularly prevented it.

It took the Eclipse project a few years to build their first version of the IDE too.


Well, LLVM+clang first needed to be built up to be suitable for such an integration (on and off Apple's dime).

I contrast the general situation with something like C# which is on record as being designed from scratch to have synergy with Visual Studio, not the other way round. This general quality shines through while developing with it.

For example, the wonderful LINQ language feature: Statically typed declarative operations on any data. You write these 'reversed' compared to SQL and in return that means each stage can be fully auto-completed.

Back in Obj-C land AKA Jurassic Park, code's full of things like 'IBAction' and 'IBOutlet' which are C macros #defined to void or whatever, just to help the tools out.

But, like I said, Apple ecosystem developers still manage to produce good results. All things considered, OS X / iOS are the best platforms from a user perspective, IMO :)




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: