views:

14803

answers:

6

I'm going to learn Objective-C, and I was wondering if there was an eclipse plugin out there to do things like syntax highlighting and easy compiling/project management. I did some preliminary searching, but I couldn't find anything.

What's my best I can do for an IDE?

I don't have a mac.

+4  A: 

for Objective-C the best is Xcode - if you have a Mac. There are some other IDEs out there like KDevelop that offer support for other OSes. The only thing I have seen for Eclipse is objectiveeclipse, but I do not have any experience with it.

akf
I don't have a mac.
Stefan Kendall
KDevelop will be fine.
Stefan Kendall
+2  A: 

If you don't have a Mac and want to learn Objective-C on Windows you should have a look at GNUstep (http://www.gnustep.org/). I think you get packages for Windows and it comes with an IDE. GNUstep contains a lot of the Cocoa classes so it might be relatively easy to get started. When I tried GNUstep on Windows a while back it was quite buggy for me, though.

A text editor you could try is E (http://www.e-texteditor.com/index.html). It's a clone of TextMate (a popular editor on the Mac) and you can install bundles for all sorts of things, including Objective-C support. (http://svn.textmate.org/trunk/Bundles/). You get a free trial, so maybe just give it a shot.

I hope that helps. I have hardly done any Objective-C programming on Windows, but that's what I would look at first, GNUstep and possibly E.

Thomas Müller
+20  A: 

The other answers provide pretty good direct answers. However, my first instinct is to jump to the meta-question: "What is your reason for learning Objective-C?" The reason I'd ask that is because the guidance I'd give depends greatly on your motivations. For example...

  1. You have heard that Objective-C is a powerful language and want to see if using it will make your programs cooler, easier to write, whatever. I'll be frank — unless you're planning to eventually to Mac/iPhone development, there's little point in learning Objective-C, other than academic curiosity. I'm a longtime Apple guy, and I love Objective-C, but if you are on another operating system, and plan to stay on it for the foreseeable future, there's little point. Objective-C has some very cool features, but the cost-to-benefit ratio of the language itself isn't that high. It becomes very powerful when coupled with the Cocoa frameworks provided by Apple. GNUstep provides a degree of interoperability, but if you're going cross-platform, there are better-suited languages.
  2. You're planning to write Mac/iPhone software, but don't have a Mac yet. If you're at all serious, I recommend getting a Mac sooner rather than later. While you can learn Objective-C using an IDE on another platform, nearly all Objective-C tutorials and books assume a Mac environment. There will be practically zero support for third-party tools, especially on the forums and lists that are likely to be most helpful to you when learning. (Of course, I recommend at least considering a Mac to anyone, not just people learning Objective-C. You can dual-boot to Windows if needed, so it's a more flexible development investment. Still, I know not everyone can drop cash for a new Mac.)
  3. You're planning to write Mac/iPhone software, but want to do it all from a PC. If this were the case, I'd suggest stopping now and re-evaluating priorities, for several reasons.
    • Apple's tools are the best tools for developing Mac/iPhone apps, bar none. Not developing on a Mac puts you at a huge disadvantage. Imagine trying to develop .NET software in Eclipse, KDevelop, or emacs. It may be possible, but it's not a smart way to do things.
    • Unless you use a Mac regularly, you'll never understand what a good Mac app feels like, or how to design one. Consequently, you'd be likely to get user complaints over issues that may not make sense to you, and ill-equipped to address them.
    • Third-party support for Objective-C and Cocoa will always lag behind that of Apple, and have a different set of bugs. You won't get the best experience, and neither will users. Coding for two Objective-C implementations is likely to drive you nuts in record time.
    • Most non-Mac people don't care about Objective-C, so language plugins and compilation support are unlikely to be well-developed, let alone exist in the first place. Aside from the code editor, you'd need libraries to compile and link against. Again, Xcode is the gold standard for Objective-C. Besides, project setup and administration in Eclipse is a pain even for Java.

I realize this doesn't directly answer your question, but I hope it provides some insight, whether to the asker or to someone else in the same situation. Cheers!

Quinn Taylor
Good info. My priorities are 2, then 1. I've given up entirely on 3, but I won't have my mac environment for a while. If I can use KDevelop to get up to speed with Objective-C, that's all I need. I'm in the process of setting up a hackint0sh for the interim until I can afford a MBP.
Stefan Kendall
A: 

I once tried to pull together an open-source, iPod/iPhone development environment, but the process took too long and gave up eventually. I got a Mac instead. From there, the tools were free and I started thinking and coding in Objective-C.

I spotted a book about open-source software development (under Linux). Publisher is good ol' O`Reilly. Might worth having a look.

On a similar thread of thoughts, writing up apps in Objective-C for Linux could bring a greater acceptance of the language and framework. For now, it is reserved indeed for those interested in app development for Mac or iPhone/iPad/iPod devices.

In addition, if the objective-C runtime module is light enough, it might be suitable for game console homebrews too: I wrote an app for Nintendo`s DS console and ended up writing lots of C++ lines of codes. I feel it could have been done with less coding with ObjC, and an encapsulated version of libnds, but, to my knowledge, GNUStep hasn't been ported to the DS Open Source toolchain yet (www.devkitpro.org).

Happy Coding!

Yves McDonald
A: 

Who are you guys and why are you typing on this website? What motivated you to write here. Seriously..

OhmyGosh
+1  A: 

"Apple's tools are the best tools for developing Mac/iPhone apps"

Yes, but comparing IDEs, Xcode leaves a lot to be desired. It's got nothing on Eclipse for Java when it comes to rapid navigation between files, definitions and usages.

plausible_deniability
It doesn't help to compare a Java IDE when the question is about Objective-C development. Remarking on the shortcomings of Xcode would be best left to a comment, not an answer...
Jeff