Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

Nowadays, only Mac and iOS are good for objective-C. What about future? Will Linux develop their environment for better objective-C's application?

I am considering study Objective-C and iOS programing.But afraid of this gonna be wasting my time if Apple going down rapidly after Mr.Jobs gone.

Designing of my career path is a serious and painful work. Want to hear more before I dive into certain. thanks.

share|improve this question

migrated from stackoverflow.com Apr 15 '11 at 23:48

This question came from our site for professional and enthusiast programmers.

closed as not constructive by Robert Harvey, ChrisF Jul 27 '11 at 15:51

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.If this question can be reworded to fit the rules in the help center, please edit the question.

This doesn't really answer your question, so I'll just post it as a comment, but I'd say that learning Objective C is worthwhile just because it's a great language. I'm sure many people will disagree with me here, but I feel that Objective C has an excellent set of features and is delightfully non-prescriptive with regards to how you write your code. –  Mitch Lindgren Apr 26 '11 at 22:07
add comment

7 Answers

Every platform you learn today will be obsolete some time in the future.

Frankly, the iOS platform seems to have decent life in it. If working on iOS and MacOS are interesting to you, then learn it. If not, then don't.

Programming is 1/2 language, 1/2 platform, and 1/2 the hardware you're working on. So, no matter what, you'll take away valuable knowledge and insight that you can apply elsewhere, at a later time, even if one or more of those factors changes.

share|improve this answer
+1 for the 3/2. –  Apalala Apr 15 '11 at 23:53
+1: I was just about to type the same thing, but I was going to use flying a plane as my analogy. Basically you learn to fly in Cessna and you can take those principles to another aircraft. Just like people learn programming in Pascal or Basic and move to other languages. –  Black Frog Apr 15 '11 at 23:54
All platforms but COBOL! –  user1249 Apr 26 '11 at 21:34
I don't do hardware. –  JeffO Jul 27 '11 at 14:08
3/2 ... no wonder I have to work so much overtime –  JoelFan Nov 13 '12 at 17:33
add comment

Personally I don't see Objective C coming into wide use beyond OS/X. Nobody else seems even mildly interested in it. At the same time, MacOS seems to be retaining its market share or slowly growing, and iOS seems to be growing quite well.

Perhaps more importantly, iOS is working in new enough territory that there's a lot of new development work being done there. Areas where it's impossible to compete with established players on Windows (for an obvious counterexample) are often nearly wide open on iOS. As such, there's a lot of opportunity there even though the market share is relatively small.

share|improve this answer
add comment

Back in 2006 I worked for a company whose product was based on GNUstep, a FSF project providing an Objective-C development environment for UNIX platforms and Windows. Last I heard, they were expanding and looking for new developers.

Recently, Sony announced (and seemingly lost interest in) SNAP, a mobile application platform based on GNUstep. Other people have done similar things: there are Windows apps out there based on Cocotron, for example. So non-Apple interest and financial dependence on Objective-C does exist, though it may not be about to set the world alight.

My experience with Apple makes me believe that they are happy with Objective-C as a framework and application language, and that they intend to carry on developing it to suit their needs for the foreseeable future. There have been frequent additions to the language since 2004, including a major new runtime just a few years back. So even if no-one else was using Objective-C, it's got major momentum on the Apple platforms.

share|improve this answer
add comment

I am jumping, more or less in one fell swoop, from a lifetime of batch-oriented, procedural, command-line coding into OO, event-driven, GUI coding.

I first approached iOS, and was irritated and overwhelmed by several features of Obj-C that I found archaic: header files, memory management, and relative unreadability (to me, Obj-C looks like a spooge of camel-cased sentences with very little punctuation to help the eye).

Since those PITAs were interfering with my learning the important things, I decided to take a more gradual approach: getting fluent with Java and then taking on Design Patterns and GUI programming. I feel certain that there will be high-level concepts that carry over nicely when I return to iOS and Obj-C (and maybe, by then, Obj-C in iOS will have automatic memory management :-/ ).

Bottom line: don't worry too much about wasting time: learning more than one of anything gives you a huge boost in your ability to spot conceptual similarities and differences, which IMO boosts your ability to learn new things in the future. About the one guarantee you have is, that will always be necessary.

share|improve this answer
I bet after learning Java fluently you will be screaming for Apple to open up their platforms to it, as I am. Wish you the best. –  user417896 Sep 4 '13 at 22:14
add comment

Will Linux develop their environment for better objective-C's application?

Do you mean application for Linux or developing on Linux for iPhone?

Anyway, currently Objective-C 2.0 does not work well on Linux. ObjC has two important parts, compiler and runtime (libobjc). On Linux you can use GNU Objective C runtime, however it isn't really compatible with Apple's runtime. Apple's ObjC runtime is closed source and only available for Apple systems.

So basically developing in Apple dialect of Objective-C you're in total vendor lock-in, you can only use it on Apple hardware running Apple system, and you need Apple software to develop it.

share|improve this answer
Apple runtime and compiler are open source: objc4-532, LLVM. I'm not aware of anyone using the Apple runtime outside OS X. –  Jano Sep 2 '12 at 17:38
add comment

Given the resources Apple is putting into MacRuby, I'd wager that Ruby will eventually replace Objective-C, at least for applications-level development. But I also think that situation is a long ways off (several years at least, maybe even more). I think Objective-C will be around on the Mac and iOS for a while -- and even if Ruby becomes dominant, I imagine Objective-C will continue to be supported for quite some time.

share|improve this answer
I don't think Apple has put any significant level of resources into MacRuby. They have one or two people working on it (as they do with Perl and Python). –  user4051 Jul 27 '11 at 14:07
add comment

Objective C has been around for over 20 years now... You can intertwine C and C++ code directly into Objective C programs. It will be around for many more generations. Essentially, you will need to learn a bit of C and C++ to understand how Objective C works. Starting yourself with these languages will teach you about pointers and memory management, which are great benefits over languages like Java and C# where you are at the mercy of a virtual machine. Xcode has an excellent set of tools including LLVM, GCC, GDB, and Instruments.

share|improve this answer
That's like saying you're at the mercy of your chauffeur. Not a bad problem to have. –  JeffO Jul 27 '11 at 14:12
I wouldn't say pointers have any "great benefits" over languages like Java and C#, especially where they are not semantically needed. Now, if you're talking about system software, it's a totally different ballgame. But Objective-C is more like Java/C# than C/C++ really. And you don't really use pointers in Objective-C either, they're called "objects". :-) –  Plumenator Aug 23 '12 at 6:13
I don't agree you need to learn C++ to learn Objective-C. –  JoelFan Nov 9 '12 at 20:46
Wow... Plumenator... Objective-C, C, and C++ all compile with the same C compiler, GCC. Objective-C is very much like C++ and you use pointers everywhere in Objective-C. Those objects you mention are accessed through pointers. –  jcpennypincher Nov 13 '12 at 8:09
add comment