IMO the choice of reference counting for memory management means Swift is going to lose out to garbage collected languages for most problem domains. It makes sense for UIKit but not for most backend work.
Could you, at least, provide something to substantiate your opinion? There's ups and downs to both approaches. But you should note that reference counting, for the most part, is handled for you at compile time.
My iOS code is loaded with manual weak ref handling. It’s easy to get wrong. It’s an extra cognitive load and source of bugs. I’d say on pretty much every iOS project I’ve been on there’s been at least one client visible bug caused by forgetting to use a weak ref somewhere.