I'm excited about Swift but is there any reason someone who is not making money as an iOS dev but knows objective C well should drop everything in learn it (serious question)?
My initial opinion was swift does a lot of things much better, (no header files, new operators, etc.) but learning a new language takes a long time + it appears a majority of code is still in objC
Programming in Swift with protocols[1], generics, and value types is so much more productive than Objective-C for me. The amount of reusable code that you can write now is very high - even throwing away what type safety Obj-C can offer and making everything an "id" couldn't do many of the things you can do.
It's not clear from your post if you're trying to make money as an iOS dev but failing, or if you're making money writing for a different platform, but happen to know Obj-C. If the former, you should learn Swift - but you don't need to "drop everything" to do so, it's just a language. If the latter, whatever, doesn't matter either way.
[1] Unlike in Obj-C where they were relegated mostly to delegates/data sources and a few obscure framework classes (remember IKImageBrowserView?), in Swift they're practically the base of the language - almost every type you write should probably be based on a protocol.
Learning a new language doesn't take a long time. If you can program, then picking up a new language is a matter of days especially if it's the same paradigm. If it's something radically different, I can't see why it should take more than a month. The only learning curve to swift would be it's standard library. But in this age of IDEs with auto competition and copious documentation that's not much of a program.
sometime in the future, Apple will begin releasing swift-only APIs. it's unclear that one should "drop everything", but swift usage will only increase in the future. in addition, as a company, it will become difficult to hire new people if you don't try to move to swift at some point.
ymmv, of course. i'm new to iOS land and i write objective-c exclusively during my day job. that being said, the difficulty in iOS development (in my experience) is not in the language, but the APIs, abstractions, and patterns - and they are the same regardless of whether you're using swift or objective-c
I mean sometime in the future will probably be pretty far away for Obj-C developers.
“Objective-C is not going away. We still love Objective-C as a language; we still very much depend on Objective-C and do a tremendous amount of work in Objective-C here internally at Apple,” Federighi told Ars. “We’ll be supporting Objective-C and continuing to evolve it as necessary to fit into this evolving world. We do think that Swift is the language that we recommend for new developers to our platform who are investing for the future and building new apps. We think Swift is absolutely the right place to start. But we’ll continue to maintain, advance, and support Objective-C for as far as we can see.”
The beauty of making Swift open source means that changes to the language will be influenced by the broader community. If Apple finds this kind of thing useful, then perhaps the APIs will get the same treatment and we'll start to see an improvement in the iOS dev experience.
My initial opinion was swift does a lot of things much better, (no header files, new operators, etc.) but learning a new language takes a long time + it appears a majority of code is still in objC