Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

iOS

Help me on choosing language

Hello,

I would like to ask if you can answer me this:

Which language I need to start building iphone/ipad apps like Wunderlist/trello/teamtreehouse.

Also if possible, please tell me which language what doing

Thank you

4 Answers

You can do this in either Objective-C or Swift. Swift is definitely the more modern language, but although most of my peers will disagree with me, I'm a huge advocate of starting with Objective-C. It'll give you a much deeper understanding of what's actually going on and where the Swift language and the Cocoa Touch frameworks are coming from, not to mention it's been around way longer and thus has more documentation/support on the internet

Jennifer Nordell
seal-mask
STAFF
.a{fill-rule:evenodd;}techdegree
Jennifer Nordell
Treehouse Teacher

Hi there! I would say that learning Swift would probably be the simplest, but I remain unconvinced that it's the best approach to learn it first.

I tend to agree with Michael Hulet on the importance of Objective C. Objective C was built upon the C programming language (as are several others). Learning Objective C will help you understand why something is done the way it is in Swift and the background behind it. In my opinion, it will also result in a deeper understanding of how memory is allocated by your program.

This is very likely why Treehouse themselves applaud learning Objective C as indicated by their inclusion of this course on Objective C in their iOS Development with Swift 2.0 track.

But, this is just my opinion. Hope this helps! :sparkles:

Hi, could you explain a bit why i need to know objective-c to be a successfull Swift programmer? I mean i dont need to know Perl5 to learn the new Perl6 or i dont need to know C to learn C++, i dont need to learn Java to learn Scala.... Wouldn't it be more usefull if this guy would first learn the basics of programming overall? According to the TIOBE index objective-c dropped from place 3 of the most popular programming languages to place 15. And there are 140.000 code repositories with Swift on Github at the moment (last year just around ~75000).

I like to compare SWIFT and objective-c every year and look at the expansion on swifts popularity and I think with the next generation of programmers Swift will be more popular than objective-c

Jennifer Nordell
seal-mask
.a{fill-rule:evenodd;}techdegree
Jennifer Nordell
Treehouse Teacher

Hi Tobias Krause! I think you're misunderstanding. I never said anywhere in my post that it was necessary to learn Objective-C to be a successful Swift programmer. All I stated was that it would be beneficial to learn it. And given that it is beneficial to learn it, the question becomes should you learn it after Swift or before or during? And I don't know. And I explicitly said this:

".. but I remain unconvinced that it's the best approach to learn it first. " (referring to Swift)

I also never said nor implied that you need to know C to learn C++. But given that the UNIX kernel was written in C, do I believe it would still be beneficial to learn it? Sure! Unfortunately, I can't say I know enough about Java or Scala to answer anything about that.

I also never made any statements regarding the popularity of Swift. And indeed, I did say that it would be simplest to learn Swift first. And this sort of goes along with what Treehouse has laid out for the Swift 2.0 track. But at the end of the track for Swift 2.0 is an Objective C course. Because it's still important.

This should have been a relatively straightforward thread. An opinion was asked for and given. I'm now going to consider this matter closed on my end unless contacted by the OP. Best wishes! :sparkles:

I think you're thinking about the relationship between Objective-C and Swift in the wrong way. Swift isn't the next logical evolution to Objective-C (such as Perl6 is to Perl5, for example), but rather a total divergence in the ways and thoughts that one would write code in for iOS. For example, Objective-C is designed to be object-oriented, but Swift is designed to be protocol-oriented, which is a much lesser-used method of thinking that might be hard for a beginner to pick up. In the meantime, Objective-C is being updated as its own language right alongside Swift (it gained lightweight generics recently, which is great).

For what it's worth, I learned Objective-C before Swift came out, and I think I'm a much better developer for it. There are lots of patterns in Cocoa Touch that seem entirely counterintuitive to someone who only knows or is learning Swift, such as KVO. Apple is marketing Swift as a great first language, but I beg to differ. It has a number of concepts that might be tough for a beginner to pick up initially that Objective-C doesn't (nested classes, enums, structs, and protocols, and enums that can do things are an entirely different topic, and also value and reference types are far more prevalent than Objective-C), so while Swift may seem syntactically easier, I think it's conceptually harder, and I believe that learning Objective-C first will help a ton to get you over that conceptual barrier

Jason Anders
MOD
Jason Anders
Treehouse Moderator 145,863 Points

Hey Simonas,

As you can probably see, everyone is going to have an opinion on this matter.

Myself, I found Objective-C much easier to learn than Swift. And seeing that Swift is build on-top of the Objective-C language, I feel that it's still the language to start with, if you want to fully understand Swift.

I learned Swift (didn't enjoy it). Then I had to go and re-learn Swift 2, because it broke much of Swift... Now, if Apple thinks I'm going to 'adopt' Swift 3 (all this in the course of 2 years)? Well, I've got a surprise for them... :)

Like I said, It all comes down to personal opinion and personal preference, but I tend to agree with Michael Hulet and Jennifer Nordell ... While it may not be "necessary" to learn Objective-C... it would be smart to.

I've only been in the coding world for a couple of years now, but I will stick with Objective-C. And, for as many blogs I've read supporting Swift, I've read just as many blogs saying "stay away." And while some of my friends like Swift, some don't like it and are staying away. So, again... all personal preferences!

Overall, I say it once again, there is no right or wrong answer... only personal opinions. For what it's worth, my opinion is that Tobias is right in that the next couple of years will be very telling for Swift. It may very well become the dominant iOS language, or it could go the way of the "Betamax" and "HDDVD." No one knows for sure, so only time will tell.

Keep Coding! :) :dizzy:

Well all my colleagues say that there is no point in learning objective-c anymore. Of course it will still be used but Apple will support and develop on Swift more and more. Some of them even say that objecive-c is dead and you should focus on swift.

Basiclly swift will replace it in the next years and objective c will lose more and more importance. Objective-c is legacy. It will compile and work of course and will still be used. But its importance will fall a lot in the next years (i guess in 5 years or so...THIS DEPENDS highly on the community).

You can google that btw. there are a lot of blogs and website with the same opinion.

But yeah objective-c will never be entirely gone

I want to add, that at the moment it seems that Apple just wanted to create a fairly "easy-to-learn" language with a good learning curve that is focused on new developers. Apple has to improve a lot on Swift cause it is a very young language.

The thing is that most of the young apple developers might start with Swift instead of objective-c since it is pretty much know to be an easier to learn language. So we all can expect, that the community of this language will largely grow in the next years.

Apple can't replace objective-c yet, and might never will do it. There are too much frameworks out there and far to much "old-school" developers who used objective-c for several years. You can't just force them to give their language up.

The next years of Swift will be interesting...it's community could grow largely and it could become a big thing, or it could still fail. This depend highly on apples afford of time and money on this language.