In reading “The Swift Programming Language” to prep for my post on how Swift informs us about programming language trends, I was surprised at how straightforward the language’s features seemed:
I found myself nodding along with each feature introduced. Tuples: check. Named Parameters: check. Default Parameters: check. Protocols: check. Functions: check.
I realized it wasn’t just because Swift has unsurprising features, but because I’m familiar enough with enough other languages
that I’ve experienced or used those features before. Although I write mainly in Ruby and JavaScript at work, I have a lot of
experience with Java and C, and had my head was in Scala for quite a while a few years ago.
Although the forms of Swift’s various features differ from their analogs in other languages, conceptually, they are the same: the
generic type system is similar to Java’s, and the tuples are close enough to Scala’s that all I need to do is understand the
syntax.
It really is true that the more languages you know, the easier it is to “pick up” new ones. This is a great reason to
learn a new programming language every year.
If all you know are dynamic languages like Ruby or JavaScript1, or you are only familiar with Java or C#, you are increasingly at
a disadvantage when trying to acquire new skills. Learning something like Swift (or Scala, or Elixir, or whatever) requires not
just understanding the syntax of the language, but the very concepts that underpin its features (some of which can be mind-bending).