Thoughts after reading the introduction to the Swift book.
Basic types and the syntax around them.
Operators, including overloading, and thoughts on brevity.
Language design trade-offs, highlighted by string manipulation.
The value (and challenge) of learning languages in parallel.
Collection types and the difference between syntax and semantics.
Pattern matching and the value of expression blocks.
Functions, closures, and an awful lot of Swift syntax.
Sum types (
enums) and more on pattern matching
Classes and structs (product types), and reference and value types.
Hopes for the next generation of systems programming.
Properties: type and instance, stored and computed.
Methods, instance and otherwise.
Indexing and subscripts, or: traits vs. keywords again.
Inheritance: a Swiftian specialty (for now).
Initialization: another area where Swift has a lot more going on than Rust.
Deinitialization: ownership semantics and automatic reference counting
Tradeoffs, or: Speed and stability are for everyone
A handy design pattern stolen from Objective-C and Swift for designing nicely usable APIs.
If you want developers to love your platform, then you need to take this seriously. If it isn’t documented, it isn’t done.