|
|
|
|
|
by mdhughes
3145 days ago
|
|
Objective-C code from 30 years ago still compiles and works; many of the NS* APIs still used were stable by then. The tech whims of Kids Today™ don't tell you anything about long-term survival, because they haven't been alive as long as some of those codebases. In 5 years, everyone doing Swift is either going to be rewriting their app for the 5th time, or switching to something less like quicksand. |
|
With the caveat of a huge pile of AppKit warnings and deprecations that will need to be fixed, and probably a number of Obj-C warnings stemming from llvm/clang being smarter than the gcc of 30 years ago.
This was my experience reviving an OS X 10.1-era project. It compiled and worked, but its warning+deprecation count was ridiculously high for the project size that the effort involved in fixing it all was scarcely (if at all) better than migrating to a major new version of Swift, and honestly it probably would've been better for a lot of those warnings to have been errors given how long the involved APIs had been deprecated.
I've also migrated a moderately complex app from Swift 3.2 to Swift 4. The transition was painless and amounted to little more than a couple dozen lines changed across the project. Most of it didn't change at all. There's no way that Swift users are going to be rewriting their apps once per year, especially if the UI and logic in these projects are reasonably well separated.