On the road to Swift 6

It’s exciting to hear these goals articulated.

Regarding #1: In the teaching portion of my software life, Swift makes an appearance only if students choose of their own accord to do iOS projects, plus as a few-weeks-long object of study in the Programming Languages course.

We teach our intro / core computer science sequence in Python and Java, plus a smidge of C and x86 in the Systems course. Swift isn’t really even on the table for any of those core courses. Why? The top reasons are:

  1. Poor Windows support
  2. Poor Windows support
  3. Poor Windows support
  4. Poor Windows support
  5. Poor Windows support

Imagine this student: they wrote their first line of code a few weeks or months ago. They’re more comfortable with mobile than desktop interfaces; even file navigation using Explorer feels unfamiliar. They’ve never touched a command line. They’re feeling overwhelmed and intimidated by the firehose of new information. They harbor a terrible self-doubting voice in the back of their head that says, “Programming isn’t for people like you,” and they’ll believe that voice if they encounter enough frustration to confirm it.

When that student can install and use Swift without frustration on a Windows laptop of dubious vintage, then I could consider making a case for using it in our curriculum.

Regarding #3: I’ll echo others who hope to see generalized existentials on that list. While I recognize that they are often a misleadingly wrong tool that people might reach for too quickly without understanding, and recognize that the core team is resistant to adding them before the language has “all the things you really want instead of existentials,” the lack of them is a hard dead end in the language right now that has forced some ugly compromises in my code over the years. I do hope they get their due sooner rather than later.

26 Likes