4 ms·
I've been developing a mid-sized project in Swift since its release. And while the language feels new and interesting, the only thing that matters (and has rema
by interpol_p 12y ago
I've been developing a mid-sized project in Swift since its release. And while the language feels new and interesting, the only thing that matters (and has remained largely the same) is the Cocoa touch API.
One's career is built more on knowing the ins and outs of the significant collection of frameworks provided by Apple, not the language. The language can be used to explore new design patterns and implementations, but it's really the API that makes it capable.
I think Swift is as much a barrier to entry as Objective-C (i.e., not a very big barrier). The hard part is knowing the APIs available, when to use them, how to use them, and how not to use them. That has not been reset with the release of Swift; in my experience with the language so far.
- eridius 12y agoThe next generation of Cocoa APIs will be developed with Swift in mind. Every Cocoa API today is developed for the features and limitations of Obj-C. And yes, for a number of years to come, APIs will still retain Obj-C compatibility. But we'll also start seeing Swift-only APIs (even if these are functionally equivalent to other Obj-C APIs), using design patterns that are appropriate for Swift instead of Obj-C. So yes, you do need to know the Cocoa APIs. That's extremely important for developing applications today. But the applications of tomorrow will be developed using APIs we don't have now, APIs that are based around idioms and design patterns that will be developed over the next year (or few years) as people explore Swift and figure out what they can do with it that's different from Obj-C. Apple will undoubtedly define many of the idioms and design patterns themselves. But there will be many that emerge from the community, from experiments that people do and open-source libraries they write.
- interpol_p 12y agoI agree that Swift will influence the development of future APIs, however I think my point that it will not reset careers still stands. I don't believe that languages influence API design very much — unless they are of a fundamentally different paradigm, which Swift is not. Most of the iOS concepts I see new developers struggle with are related to architectural decisions not informed by language design. For example, the biggest thing I see new iOS devs struggle with is reusable table/collection view cells: the concept of cells moving into a pool once scrolled off-screen and re-used was made for performance reasons, new developers often attach model state to their cells and end up with all sorts of bugs. This is not a language issue. APIs are where the majority of the learning is. For example, if you try Reactive Cocoa (or Swift RX), you are going to be thinking about your app design in a completely different way. Same thing applies to auto-layout, device trait collections, layer-backed view hierarchies, and so on. These concepts are not likely to be influenced by Swift, and these are the things that really matter. That said, I do see Swift eventually dropping message-passing-heavy APIs (NSNotificationCenter, target:selector patterns) in favour of more strongly typed APIs. But most developers should not find the transition jarring.
- n1ghtmare_ 12y agoThis is absolutely true ! I'm new to the iOS development, and while swift is really easy to get into, the API's are a complete mystery. Even building a simple app involves a ton of tutorials/articles and Googling, because one really needs to know the APIs as well as the concepts of doing things. I can write quicksort in swift, but not build a simple app.