(no. 1 in Most Loved Programming Language in the Stack Overflow Developer Survey in 2015) Current version: 6.2 How it started Yukihiro Matsumoto - Matz started in 1993, open-sourced v0.95 in 1995 (no.5 in "Top paying technologies" in 2022) Current version: 3.4
for variables and functions, PascalCase for types: classes, structs, enums, protocols, etc. Naming conventions in Ruby: snake_case for variables and functions, PascalCase for classes and modules
the variable’s type, while Ruby variables do not have a type, only values have a type* • Variables declaration: let (immutable) vs. var (mutable) • Optionals for nil safety • Classes (reference type) vs. Structs (value types) • Protocols (conformance) & Extensions (adding behavior) _____________________________________________________ * from the book: "Master Hotwire" by Radan Skorić
Swift has limited runtime dynamism by design. • Swit extensions are more constrained than Ruby's monkey-patching. • Duck typing: Explicit protocols are the Swift way. • nil's flexibility: Swift's safety comes with more boilerplate for nil handling.