The distinction is more salient in Swift, though--in a lot of cases, it's mostly just a performance detail, but in Swift it's absolutely fundamental to how function call dispatch occurs. You can't really understand the language without understanding the distinction. So it's not a "programming 101" concept, but it is very much a "Swift 101" concept.