Hello Swift Community,
I wanted to kick off a discussion about the deprecation and eventual removal of the framework-specific entrypoint attributes @UIApplicationMain and @NSApplicationMain. To offer a brief background, these attributes were introduced with Swift 1.1 to make it far simpler to write an app entirely in Swift. Before that, the main entrypoint was either contained in a main.swift or an Objective-C .m file that called UIApplicationMain or NSApplicationMain as appropriate. Even for apps written entirely in Swift, I'm sure some of us can recall having to manually call these entrypoints with the (then) CommandLine type's data and how awkward that was.
With the advent of SE-0281 and the enthusiastic adoption of type-based entrypoints by SwiftUI, AppKit, and UIKit, I feel that it's time to begin a discussion about removing the hard-coded framework-specific attributes from the language.
A draft copy of the proposal text can be found in this gist. The implementation is mostly noise in tests since this proposal is just about a diagnostic, but it can be found here