将 Swift 用于 Mac 应用程序有哪些优点和缺点?

What are the pros and cons of using Swift for a Mac app?

我正在开始开发一个新的应用程序,没有现有的代码库可以重用。我对 Objective-C 非常满意,但我想在 Swift 中构建应用程序,因为那是未来。但在此之前,我有几个问题:

Mac App Store 是否接受使用 Swift 编写的应用程序?

Swift 3 不是二进制兼容的,这是否意味着下一版本的 macOS 可能会破坏我的应用程序?我最终可能会遇到这样一种情况,即我必须为不同版本的 macOS 维护两个二进制文件吗?

是否所有 Xcode 调试工具都可用于 Objective-C 也可用于 Swift?

还有其他与此决定相关的因素吗?

我没有看到关于 Swift 应用程序的任何限制。它们在 Mac App Store 中被接受,无论您使用什么版本的 Swift,它们都将与最新和未来的 macOS 版本兼容。调试工具也适用于 Swift。

话虽如此,有利有弊:

优点:

  • 现代语言,优于Objective-C
  • Apple 的全面承诺
  • 可以很容易地与 Objective-C 混合(例如与第 3 方库)

缺点:

  • 更大的应用程序,因为所有应用程序都需要与 Swift 运行时库捆绑在一起。
  • 尚无法在 Swift 中创建二进制库。它们必须在源代码中分发。
  • XCode 中的重构仅适用于 Objective-C。
  • 语言仍在不断发展。尽管 XCode 有助于在语言发生变化时进行升级,但仍然需要手动工作和重新测试。