Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

maplingstorie

macrumors 6502
Original poster
Jan 25, 2009
399
115
Malaysia
Hi guys,

I will be taking this course in developing mobile apps for iOS using Objective-C. My university doesn't offer Swift because it's too new. Now the question, is it a waste to learn Objective C now because of Swift? I don't want to spend 3 months of my life learning a programming language that is/will be obsolete in the predictable future. Thank you. :confused:
 

1458279

Suspended
May 1, 2010
1,601
1,521
California
Hi guys,

I will be taking this course in developing mobile apps for iOS using Objective-C. My university doesn't offer Swift because it's too new. Now the question, is it a waste to learn Objective C now because of Swift? I don't want to spend 3 months of my life learning a programming language that is/will be obsolete in the predictable future. Thank you. :confused:

Short Answer: No. ObjC can't go anywhere, it's too late.

Longer Answer: "You don't want to spend 3 months" ... 1st this assumes that you can/will become a productive programmer. Only you can determine this. 2nd you might hate programming and again, only you can determine this. Well worth looking into (IMO) because programming can be fun or at least better than some other jobs.

Even Longer Answer: Apps are pretty much out of the infancy stage, they are more mature than when apps 1st started. There's a TON of ObjC code out there to do everything that's currently being done.

If you are developing a new app from ground zero and don't need example code, Swift might get you there, however, ObjC would get you there too.

Mature apps at this point are already in ObjC, they aren't likely to dump everything just for a language that is easier. They have no reason to.

The value of an easier language. An easier language has NO VALUE to those that already know the current language.

Example: If the US government came out with a new language to replace English in order to make it easier for people to learn... This would be of ZERO value to those that already know English. In addition, the value of the new language would only be to those that use it or use the results of it. In other words, if a programming shop has 1 million lines of ObjC and want you to maintain and modify it... knowing Swift won't help unless they want to rewrite at least part of it.

So you have to dig deeper and ask: Do you want an app or a job? Will you want a job later?

_IF_ Swift takes off, it can be adapted into current apps from the standpoint that they (as I understand it) will work together (Swift/ObjC in the same app).

Also, if swift catches, new apps may be developed with it in large numbers, the number of jobs for the new language could be large and you could be at the start of a new wave.

Might be best to learn both.

Remember, app development is much more than just the language, look at the API and the design of apps as well as all the add-ons (backend servers, cloud, BT devices, etc) It takes more than the language alone.
 

firewood

macrumors G3
Jul 29, 2003
8,108
1,345
Silicon Valley
No.

Objective C is actually useful for developing apps, both for iOS and OS X. On the order of a million apps coded in Objective C have been approved by Apple. Hundreds of books and tutorials on it. Tons of open source code in Objective C. Tons of 3rd party frameworks for it. Objective C is also a superset of C, which is one of the most popular and useful languages (many OSes are written in it).

The Swift compiler is in beta and currently buggy and slightly broken in beta6. You can't currently use it to build apps for submission to the App store. Very little documentation, only about a half-dozen books on it, some incomplete.

Wait 1 to 3 years, and the answer might change.
 

maplingstorie

macrumors 6502
Original poster
Jan 25, 2009
399
115
Malaysia
Short Answer: No. ObjC can't go anywhere, it's too late.

Longer Answer: "You don't want to spend 3 months" ... 1st this assumes that you can/will become a productive programmer. Only you can determine this. 2nd you might hate programming and again, only you can determine this. Well worth looking into (IMO) because programming can be fun or at least better than some other jobs.

Even Longer Answer: Apps are pretty much out of the infancy stage, they are more mature than when apps 1st started. There's a TON of ObjC code out there to do everything that's currently being done.

If you are developing a new app from ground zero and don't need example code, Swift might get you there, however, ObjC would get you there too.

Mature apps at this point are already in ObjC, they aren't likely to dump everything just for a language that is easier. They have no reason to.

The value of an easier language. An easier language has NO VALUE to those that already know the current language.

Example: If the US government came out with a new language to replace English in order to make it easier for people to learn... This would be of ZERO value to those that already know English. In addition, the value of the new language would only be to those that use it or use the results of it. In other words, if a programming shop has 1 million lines of ObjC and want you to maintain and modify it... knowing Swift won't help unless they want to rewrite at least part of it.

So you have to dig deeper and ask: Do you want an app or a job? Will you want a job later?

_IF_ Swift takes off, it can be adapted into current apps from the standpoint that they (as I understand it) will work together (Swift/ObjC in the same app).

Also, if swift catches, new apps may be developed with it in large numbers, the number of jobs for the new language could be large and you could be at the start of a new wave.

Might be best to learn both.

Remember, app development is much more than just the language, look at the API and the design of apps as well as all the add-ons (backend servers, cloud, BT devices, etc) It takes more than the language alone.
First, thank you so much for your time writing this. Second, well.. umm.. I don't plan to be a programmer but a musician. (Super long story) and this is my final semester before I can graduate. Oh, what I meant by useless is for a newbie like me. If Swift can do what Obj-C can and it's easier then I should go for it and not Obj-C? But if Obj-C is still in a way crucial and still be used in the future, then I wouldn't mind. I just don't want my tuition fees to go into something that will not be used if so happens my music career fails. :eek:

----------

No.

Objective C is actually useful for developing apps, both for iOS and OS X. On the order of a million apps coded in Objective C have been approved by Apple. Hundreds of books and tutorials on it. Tons of open source code in Objective C. Tons of 3rd party frameworks for it. Objective C is also a superset of C, which is one of the most popular and useful languages (many OSes are written in it).

The Swift compiler is in beta and currently buggy and slightly broken in beta6. You can't currently use it to build apps for submission to the App store. Very little documentation, only about a half-dozen books on it, some incomplete.

Wait 1 to 3 years, and the answer might change.
Haha. Alright. What I meant was since they introduced Swift, would it make Obj a harder deciding factor for us newbies. :D
 

PhoneyDeveloper

macrumors 68040
Sep 2, 2008
3,114
93
It doesn't take 3 months to learn obj-c. Most of your learning will be iOS app development and in particular learning iOS APIs. That knowledge will transfer to swift directly if you choose to move to swift in the future.

The statement that swift is easier than obj-c is puzzling to me. The obj-c documents in Apple's documentation are a few tens of pages long. The swift books apple released are 500 pages and 300 pages. I think a lot of people just believe that swift is java for iOS or python for iOS because of the parentheses instead of square brackets. There's a whole lot more to swift than that. I spent a week going through the 500 page book and I don't feel like I really know the language.
 

1458279

Suspended
May 1, 2010
1,601
1,521
California
I don't think it would be a waste. As long as you can learn in that time frame, which you probably should be able to.

Like Phoney said, you'll be learning "iOS development" and ObjC. Moving from iOS dev with ObjC to iOS dev with Swift is easier once you know some iOS dev.

This assumes you'll ever have a reason to learn Swift.

You might want to grab an ObjC book and a Swift book and see how much of it you get.

You can also watch some of the many YouTube videos and see if you get the hang of it.

As far as "worth it" goes, you already said you don't want to be a programmer, so it's an issue of will it get you the app you want (I assume you want to make an app)... ObjC will do that. Might be a bit faster or slower depending on the app.

Some apps have very little actual code. Look at some of the samples Apple has, some depend more on what's built in and some require a ton of code to do something special.

You can probably answer the question by having a clear idea of the goal and watching a few YouTube tutorials.

I doubt it'll be a waste of time or money.
 

larswik

macrumors 68000
Sep 8, 2006
1,552
11
FYI - You will never stop learning once you start. Programming is always changing and you will never master it, you'll just get better and better at it as the years pass by.
 

1458279

Suspended
May 1, 2010
1,601
1,521
California
FYI - You will never stop learning once you start. Programming is always changing and you will never master it, you'll just get better and better at it as the years pass by.

Great point. ObjC has changed over the years, we used to do ref counting, now we do ARC. New APIs come out all the time and the device changes. It's really a never ending cycle.
 

larswik

macrumors 68000
Sep 8, 2006
1,552
11
Great point. ObjC has changed over the years, we used to do ref counting, now we do ARC. New APIs come out all the time and the device changes. It's really a never ending cycle.

Yes... If the people starting out are slow learners by the time they finish a book it's already changed. I started with Ref counting and then 3 months later ARC. Then XIB's turned to storyboards and so on. 10 years ago I'm guessing programming didn't change as fast as it does now.

Anyone that wants to make an iPhone app should have a rock solid foundation of C under their belt. Learning to program is almost a full time job.
 

recoil80

macrumors 68040
Jul 16, 2014
3,117
2,755
It doesn't take 3 months to learn obj-c. Most of your learning will be iOS app development and in particular learning iOS APIs. That knowledge will transfer to swift directly if you choose to move to swift in the future.

This
The language is "easy" to learn, but the most important thing is to become familiar with cocoa touch, and you have the same APIs in swift so if you start with Objective C you are not wasting your time
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.