Java vs Objective-C
I’m a long-time Java developer (applications, not websites) who started doing a lot of Objective-C programming for Macs about a year and a half ago. I thought I’d comment on my impressions of both languages now that I have some experience in both.
Objective-C is a great language, but there are a few things I miss from Java:
- Not needing to worry about linking
- Having all relevant information in once source file (.java) instead of two (.m and .h)
- Not needing to think about file organization
- Having warnings printed every time I compile instead of just once, when the file is first changed
- Easy bulk renames in Eclipse (Java), which are much more difficult in Xcode (Objective-C) though I hear this may change soon
- Debugging in Eclipse — Xcode’s debugger isn’t very helpful
- No memory leaks
Overall, these issues aren’t big enough to annoy me anymore. I guess I’ve gotten used to programming for a native platform again. Hopefully, the new versions of Objective-C and Xcode coming out in a few months will eliminate the last 3 items from this list. That’d be great.
On the flip-side, there are a few things I really like about Objective-C:
- Being able to extend the built-in classes easily
- Creating a user interface in Interface Builder is dead-simple
I haven’t found that the dynamic nature of the language has been all that wonderful. It certainly hasn’t hurt though. I’m sure I haven’t used it to its fullest potential yet, so I guess I’ll reserve judgment for now.