14

I have just finished a year of university and learnt how to write nice applications with C++, OpenGL and Qt.

I was just about to start learning Objective C and Cocoa. This seemed optimal to develop iOS & Mac apps since Objective C was, like C++, a variant of C, Cocoa would allow me to make nice UIs and I could continue using my good OpenGL knowledge to do 3d graphics.

However, Apple has recently announced that many things are changing. Most importantly, they have announced that there is a new language called "Swift", and that they are replacing (from what I understand) OpenGL with "Metal"

My question is, taking into account the lack of good books/comprehensive tutorials (I had found a great one for Objective C and Cocoa).
At this stage, should I wait for the release of XCode6 and iOS8 in fall, along with what I hope will be new books and tutorials on learning this new language and do something else in the meantime to avoid learning a defunct language, or should I learn Objective C anyway and then learn Swift when it comes out (and all these new things like Metal etc).

Is it worth deepening my OpenGL understanding in light of all this new stuff being announced?

gideon
  • 19,329
  • 11
  • 72
  • 113
alexbcg
  • 193
  • 1
  • 1
  • 6
  • 2
    Please note that your question will probably be put on hold, because it is primarily opinion based. My personal advice is: 1. You can already start learning Swift, if you join as a developer 2. Objective-C is probably not going to disappear soon, so you will still be able to write apps with it. Just go ahead and learn it... – Atomix Jun 03 '14 at 23:06
  • Also, to avoid more frustration, Stackoverflow is a Q&A site for specific programming questions/problems). Questions which are very broad or ask for an opinion will usually get shut down... :-) – Atomix Jun 03 '14 at 23:14
  • Ok thanks for your help - I'll try finding appropriate resources but knowing what to learn (like openGL vs whatever Metal is, cocoa and swift) for a beginning is pretty daunting with so many new things! Thanks anyway, do you know where I can go where I can get advice on what to learn to get coding on apple products? – alexbcg Jun 03 '14 at 23:18
  • 1
    The answer is dead simple, you must learn both. – Fattie Jun 04 '14 at 11:34
  • 1
    I don't mind learning both but isn't that a bit redundant if swift replaces objective c? – alexbcg Jun 04 '14 at 16:54
  • Knowing how to program and learning a language is not the same thing. Unfortunately many start off learning a language and assume that means they know how to "program". – Allen S Oct 01 '14 at 20:01
  • 2
    @AllenS I don't really understand what you're trying to add to the discussion with your comment? – alexbcg Oct 03 '14 at 00:07
  • Sorry I was vague. To begin there isn't a question about Obj-c vs Swift at this time. If you wanted to ask, then Obj-C would be where you would start for multiple reasons I don't have space to list out. Swift is nice and exciting to some but not more valuable to a hiring manager than Obj-C. And no Metal does not replace OpenGL. And learning OpenGL or Metal does not mean you have a strong grasp on computer graphics. Having that strong grasp on it makes the question irrelevant to a large degree since APIs are easy to learn. That makes deepening your skills using what you know, GL, makes sense. – Allen S Oct 03 '14 at 17:53

1 Answers1

1

I would advise learning Swift. It is proving to be popular, and there are some tutorials out already, such as this one (http://ios-blog.co.uk/tutorials/developing-ios-apps-using-swift-part-1/). Learning Objective-C will probably only be useful for a couple months, as Apple will probably push Swift as the main language. You can also get a good tutorial book by Apple on the iBooks store for free. Also, if you are a registered developer, you can get Xcode 6 and ios 8 now.

mginn
  • 16,036
  • 4
  • 26
  • 54
  • 28
    I think it'll be a bit longer than a couple months before obj-c is gone... – Myron Slaw Jun 03 '14 at 23:41
  • 2
    But for a new developer, it's probably not worth it – mginn Jun 04 '14 at 01:57
  • 1
    It'll be super helpful for young devs to know Obj-C so they can implement some older libraries, etc....but Swift is the future of iOS. I'm convinced that's why they're releasing it, to court new/young devs – d2burke Jun 04 '14 at 17:10
  • I'm sure it's good to know the new language but which serious application can afford to only support the latest OS only? For iOS this might be ok mostly, for Mac I couldn't do that ... still have 10.6 users around ... – guitarflow Jun 07 '14 at 20:24
  • 5
    I have started implementing Swift in my app and I advice you to start with Objective C. For instance just try to make a Generic class in Swift while having it extend NSObject. Or implement a singleton. Also all the large companies have invested a lot in Objective C and all the tutorials are still in Objective C. The tutorial book from apple only focuses on the language not on for instance downloading some data in the background or sending a push notification. – Arno van Lieshout Jul 01 '14 at 15:20
  • 7
    This question is only important to beginners. With that said if you had only one choice (which you don't), then Obj-C wins hands down. Swift is new and people like new stuff, but won't earn you interview points over Obj-C. And even if Obj-C went away years down the road (emphasis on IF) then you would already have a strong amount of experience with iOS dev that the question would have long since become irrelevant. No offense but I don't see how this is the accepted answer. Learning Swift is trivial to long time iOS devs and the assumption of Obj-C going away in a few months is flat out wrong. – Allen S Oct 03 '14 at 18:02
  • I guess it depends what you're into programming for. If you want to be hired by a company to work on their legacy code, then sure, Obj-C is great. But if you want to do independent hobby/amateur development, Swift is an excellent language, and worth learning. – mginn Sep 18 '15 at 16:14