Really? For me, a chain of maps and filters is far easier to understand than nested for-loops or something.
I think it's a lot to do with exposure: imperative code is far more well-known, and most people are more exposed to it than they are to more declarative stuff. I'd say that if someone was exposed to both equally they'd find the declarative easier to quickly scan and understand.
I agree. I'm an Android developer, but I have a knack for FP-flavored programming style - you get some of it in C# (LINQ), Kotlin, even Java (Streams, or Guava), and I find it readable.
I never wrote a line of code in Swift, and the examples from the article were quite clear to me, too.
Of course you can create an unreadable monstrocity with maps, filters, group-bys etc. but it's possible in goodd ol' OOP just the same. Every construct can be used right or abused.
While you are allowed network-connected apps on the MAS, you have to specify the entitlement. I'd imagine that's something you'd have to justify (or at the very least you'd get more scrutiny and a longer approval time).
I think it's a lot to do with exposure: imperative code is far more well-known, and most people are more exposed to it than they are to more declarative stuff. I'd say that if someone was exposed to both equally they'd find the declarative easier to quickly scan and understand.