Do you know any programming at all?
I think Objective-C will be around for a long time. It's certainly worth knowing if you want a job in Mac programming because chances are you'll be working with some old Objective-C code. As long as the old code still works, I don't imagine a lot of companies will throw it away and convert over to Swift, though eventually probably everyone will be writing Swift for new apps and updating parts of their code as they get updated.
If you're just a hobbyist, why not learn both? The more languages you learn, the easier it is to pick up new ones, and I'm sure learning Objective-C first will help you appreciate Swift and what Apple's trying to accomplish with it.
That said, Swift is obviously the future. Apple is going to be supporting it much more in the long term. It will get most of the attention at Apple HQ. If there's an OS 11 in the pipeline, it's possible Apple will switch to a brand new set of APIs and Objective-C will fall by the wayside, like C++ did after the OS X transition. In fact, I'd go so far as to say the introduction of Swift is probably the first big sign we've seen that big changes are coming to Mac development. A big company like Apple doesn't create and endorse a new programming language on a whim.
So, learn both, and learn as many other languages as you can, and you can be the old dev someday talking about how Objective-C used to be everybody's favorite thing. C, and C-based languages are probably not ever going to disappear, they just go in and out of style.
Thanks, I guess I'll learn both. I'm only 14, so I probably won't be getting a programming job for a while, but it will be fun to learn. (And I'll keep developing apps for a long time) What would you recommend starting with?
At 14? Start with Swift and get in on the ground floor with everyone else who's now learning it.
Well, it really depends on you. I spent a year learning C, then Objective C before I even started with Cocoa and started on my first app. I wanted to learn how to program and enjoyed learning the inner workings of the code.Not really. I can modify most code to make it do what I want it to do, but I don't write any code.
He's 14, though. He has plenty of time to learn Swift. At his age I was learning Pascal and I've never written another program in it since. It was still a valuable experience. My advice to learn as many languages as possible is all the more relevant to a kid just starting out. The knowledge you learn from each language builds up and makes you understand the decisions made by other language designers. It's going to be a while before any real good Swift books come out, anyway. He can start learning Objective-C now, and start using it now, and in a few months when the new XCode is released publicly, and everybody's scrambling to get their book out, he can pick up one or two of the best ones and start on Swift. Hey, he's already got his Objective-C book. Might as well use it.
Thanks, I guess I'll learn both. I'm only 14, so I probably won't be getting a programming job for a while, but it will be fun to learn. (And I'll keep developing apps for a long time) What would you recommend starting with?
It'll be more like iOS, iPhones, or maybe OS X and Macs, where it'll be dwindling within a few months and all but gone within 4 years.
Thanks, I guess I'll learn both. I'm only 14, so I probably won't be getting a programming job for a while, but it will be fun to learn.
Highly doubtful. You really think companies / developers are going to rewrite their existing legacy code in Swift for what is effectively no reason?
Objective-C will be around for many, many years to come.
Highly doubtful. You really think companies / developers are going to rewrite their existing legacy code in Swift for what is effectively no reason?
Objective-C will be around for many, many years to come.
I really think that companies and developers have far less Obj-C code worth keeping around than you might think. Because Obj-C never had a decent package manager (CocoaPods seems to have been the only one, and in my limited experience with it, I found that it was complete garbage), there's a shortage of Obj-C code that got reused much. There's not much for good examples or full featured libraries outside of what Apple provides. So yes, I think Obj-C will have a swift (no pun intended) demise now that Apple has decided to unveil Swift (this was the point when I realized the possible pun).
I agree with AoW
Apple appears to have put in significant resources into Swift. The proof will be how much "dogfooding" they do with their own apps.
That being said no one else uses Obj C so there's little point in a newbie (like myself) learning it. By the time you get comfortable (assuming 3-4) Swift will have undergone two more iterations and AoW is right. New projects will likely be dominated by Swift.
I really think that companies and developers have far less Obj-C code worth keeping around than you might think. Because Obj-C never had a decent package manager (CocoaPods seems to have been the only one, and in my limited experience with it, I found that it was complete garbage), there's a shortage of Obj-C code that got reused much. There's not much for good examples or full featured libraries outside of what Apple provides. So yes, I think Obj-C will have a swift (no pun intended) demise now that Apple has decided to unveil Swift (this was the point when I realized the possible pun).
It is the new COBOL in the Mac world.
Its not just the amount of code, its how vital it is to the company and if the ROI of dev costs is there to rip it out for new stuff.
Deeper it digs into the heart as it were, I have found the harder it is to remove it is my experience in this area from many years in IT.
Also have to factor in in some places the time won't be there for conversion to swift in a short time frame. Staff numbers depending, playing with swift comes after the obj-c code maintenance for current user needs.
Internal corp development in my view is a different animal than 3rd party. Not a dev at work, I just see how our shop runs for the dev section.
When the CFO comes down and says please fix this app for us...its tends to be a priority. One you can't do a say adobe on this. I have a more than mild hatred of adobe because at many months out they stop developing for current software, but they will put in a new release months away from release.
Tell the CFO you can't fix their current app because you are working on a new app in a new language with no timeframe of completion is not going to fly.
This,imo, gives obj-c a good lifespan.
Hey, at his age I was learning assembler 🙂 Today, I'm learning Swift.
Learn all the languages you can, but knowing down-to-the-metal C will always give you an advantage over most other programmers.