52
10 lessons we can learn from the 36,303 (and counting) Swift commits (And it's not a clickbait)

Devoxx - France : Making Swift – 10 enseignements qu’on peut tirer des 31.463 commits qui ont créé le langage

Embed Size (px)

Citation preview

Page 1: Devoxx - France : Making Swift – 10 enseignements qu’on peut tirer des 31.463 commits qui ont créé le langage

10 lessons we can learnfrom the 36,303 (and counting)

Swift commits(And it's not a clickbait)

Page 2: Devoxx - France : Making Swift – 10 enseignements qu’on peut tirer des 31.463 commits qui ont créé le langage
Page 3: Devoxx - France : Making Swift – 10 enseignements qu’on peut tirer des 31.463 commits qui ont créé le langage

1. Everything has abeginning

Page 4: Devoxx - France : Making Swift – 10 enseignements qu’on peut tirer des 31.463 commits qui ont créé le langage
Page 5: Devoxx - France : Making Swift – 10 enseignements qu’on peut tirer des 31.463 commits qui ont créé le langage
Page 6: Devoxx - France : Making Swift – 10 enseignements qu’on peut tirer des 31.463 commits qui ont créé le langage

Makefilelib/Lex/Lexer.cpplib/Lex/Makefilelib/Makefilelib/Parse/Makefilelib/Parse/Parser.cpptools/Makefiletools/swift/Makefiletools/swift/swift.cpp

Page 7: Devoxx - France : Making Swift – 10 enseignements qu’on peut tirer des 31.463 commits qui ont créé le langage

swift.cpp

int main() {

}

Page 8: Devoxx - France : Making Swift – 10 enseignements qu’on peut tirer des 31.463 commits qui ont créé le langage

11 commits later

Page 9: Devoxx - France : Making Swift – 10 enseignements qu’on peut tirer des 31.463 commits qui ont créé le langage

386 commits later

Page 10: Devoxx - France : Making Swift – 10 enseignements qu’on peut tirer des 31.463 commits qui ont créé le langage
Page 11: Devoxx - France : Making Swift – 10 enseignements qu’on peut tirer des 31.463 commits qui ont créé le langage

2/A. SVN is not dead yet(At least not to everybody)

Page 12: Devoxx - France : Making Swift – 10 enseignements qu’on peut tirer des 31.463 commits qui ont créé le langage
Page 13: Devoxx - France : Making Swift – 10 enseignements qu’on peut tirer des 31.463 commits qui ont créé le langage
Page 14: Devoxx - France : Making Swift – 10 enseignements qu’on peut tirer des 31.463 commits qui ont créé le langage
Page 15: Devoxx - France : Making Swift – 10 enseignements qu’on peut tirer des 31.463 commits qui ont créé le langage

2/B. If you struggle with

gityou're not

alone

Page 16: Devoxx - France : Making Swift – 10 enseignements qu’on peut tirer des 31.463 commits qui ont créé le langage
Page 17: Devoxx - France : Making Swift – 10 enseignements qu’on peut tirer des 31.463 commits qui ont créé le langage
Page 18: Devoxx - France : Making Swift – 10 enseignements qu’on peut tirer des 31.463 commits qui ont créé le langage
Page 19: Devoxx - France : Making Swift – 10 enseignements qu’on peut tirer des 31.463 commits qui ont créé le langage
Page 20: Devoxx - France : Making Swift – 10 enseignements qu’on peut tirer des 31.463 commits qui ont créé le langage
Page 21: Devoxx - France : Making Swift – 10 enseignements qu’on peut tirer des 31.463 commits qui ont créé le langage
Page 22: Devoxx - France : Making Swift – 10 enseignements qu’on peut tirer des 31.463 commits qui ont créé le langage
Page 23: Devoxx - France : Making Swift – 10 enseignements qu’on peut tirer des 31.463 commits qui ont créé le langage
Page 24: Devoxx - France : Making Swift – 10 enseignements qu’on peut tirer des 31.463 commits qui ont créé le langage

3. 36% of Swiftis written in Swift

Page 25: Devoxx - France : Making Swift – 10 enseignements qu’on peut tirer des 31.463 commits qui ont créé le langage
Page 26: Devoxx - France : Making Swift – 10 enseignements qu’on peut tirer des 31.463 commits qui ont créé le langage

4. ♥ is in the stdlib

Page 27: Devoxx - France : Making Swift – 10 enseignements qu’on peut tirer des 31.463 commits qui ont créé le langage

Some examples...→ Optionals→ Array

→ Dictionary

Page 28: Devoxx - France : Making Swift – 10 enseignements qu’on peut tirer des 31.463 commits qui ont créé le langage

...Other examples→ String→ Int→ Bool→ Bit

Page 29: Devoxx - France : Making Swift – 10 enseignements qu’on peut tirer des 31.463 commits qui ont créé le langage
Page 30: Devoxx - France : Making Swift – 10 enseignements qu’on peut tirer des 31.463 commits qui ont créé le langage

5. I tawt I taw a python

Page 31: Devoxx - France : Making Swift – 10 enseignements qu’on peut tirer des 31.463 commits qui ont créé le langage
Page 32: Devoxx - France : Making Swift – 10 enseignements qu’on peut tirer des 31.463 commits qui ont créé le langage
Page 33: Devoxx - France : Making Swift – 10 enseignements qu’on peut tirer des 31.463 commits qui ont créé le langage

6. Generate Your Boilerplate

Page 34: Devoxx - France : Making Swift – 10 enseignements qu’on peut tirer des 31.463 commits qui ont créé le langage

Template%{integerBinaryOps = [ (x[:-1], x[-1], x[:-1].capitalize(), 'a result') for x in 'add+ subtract- multiply* divide/'.split()] + [ ('remainder', '%', 'Divide', 'the remainder') ]}%

Usagepublic protocol _IntegerArithmeticType {% for name,_,Action,result in integerBinaryOps: /// ${Action} `lhs` and `rhs`, returning ${result} and a `Bool` that is /// true iff the operation caused an arithmetic overflow. static func ${name}WithOverflow(lhs: Self, _ rhs: Self) -> (Self, overflow: Bool)% end}

Page 35: Devoxx - France : Making Swift – 10 enseignements qu’on peut tirer des 31.463 commits qui ont créé le langage

7. Comment your complexity

Page 36: Devoxx - France : Making Swift – 10 enseignements qu’on peut tirer des 31.463 commits qui ont créé le langage

/// Insert `newElement` at index `i`. /// /// Invalidates all indices with respect to `self`. /// /// - Complexity: O(`self.count`). public mutating func insert(newElement: Character, atIndex i: Index) { withMutableCharacters { (inout v: CharacterView) in v.insert(newElement, atIndex: i) } }

Page 37: Devoxx - France : Making Swift – 10 enseignements qu’on peut tirer des 31.463 commits qui ont créé le langage

8. We are the facilitatorsof our own creative evolution

Page 38: Devoxx - France : Making Swift – 10 enseignements qu’on peut tirer des 31.463 commits qui ont créé le langage

github.com/apple/swift-evolution

Page 39: Devoxx - France : Making Swift – 10 enseignements qu’on peut tirer des 31.463 commits qui ont créé le langage
Page 40: Devoxx - France : Making Swift – 10 enseignements qu’on peut tirer des 31.463 commits qui ont créé le langage
Page 41: Devoxx - France : Making Swift – 10 enseignements qu’on peut tirer des 31.463 commits qui ont créé le langage

Commonlyrejectedchanges

github.com/apple/swift-evolution/blob/master/commonly_proposed.md

Page 42: Devoxx - France : Making Swift – 10 enseignements qu’on peut tirer des 31.463 commits qui ont créé le langage

March, 21st 2016

Swift 2.2Integrates the community feedback

Page 43: Devoxx - France : Making Swift – 10 enseignements qu’on peut tirer des 31.463 commits qui ont créé le langage

9. We all code by night

Page 44: Devoxx - France : Making Swift – 10 enseignements qu’on peut tirer des 31.463 commits qui ont créé le langage
Page 45: Devoxx - France : Making Swift – 10 enseignements qu’on peut tirer des 31.463 commits qui ont créé le langage

10. It's (too) easy to complain aboutsomeone else's code

Page 46: Devoxx - France : Making Swift – 10 enseignements qu’on peut tirer des 31.463 commits qui ont créé le langage
Page 47: Devoxx - France : Making Swift – 10 enseignements qu’on peut tirer des 31.463 commits qui ont créé le langage
Page 48: Devoxx - France : Making Swift – 10 enseignements qu’on peut tirer des 31.463 commits qui ont créé le langage
Page 49: Devoxx - France : Making Swift – 10 enseignements qu’on peut tirer des 31.463 commits qui ont créé le langage
Page 50: Devoxx - France : Making Swift – 10 enseignements qu’on peut tirer des 31.463 commits qui ont créé le langage

Thanks!

Page 51: Devoxx - France : Making Swift – 10 enseignements qu’on peut tirer des 31.463 commits qui ont créé le langage

Simone Civetta@viteinfinite

Page 52: Devoxx - France : Making Swift – 10 enseignements qu’on peut tirer des 31.463 commits qui ont créé le langage

Sources

→ Swift Weekly Brief by Jesse Squires→ Swift Evolution Mailing List

→ github.com/apple