4. • Kotlin History
• How I’m Learning Kotlin
• [ INTERACTIVE DEMO ]
• Remember demos aren’t real
• Problems
4
AGENDA
The WYSIWYG slide
5. • Started in 2010
• Version 1 in 2016
• Developed by JetBrains
• Built in response to real
development pains
• Borrows from other languages
• Built on the JVM
• Sum of the parts
• First class support from Google
• Hybrid language
• Not pure OO
• Not pure functional
5
KOTLIN HISTORY
I have clothes older than this…
6. • IntelliJ
• Android Studio
• VIM
• Sublime
• Code
• Atom
• Eclipse
• Netbeans
6
YOUR FAVOURITE EDITOR SUPPORTS IT
Unless your favourite is Fat Visual Studio
7. • Normal Person
• Basic Pascal Delphi
PHP Perl C# JavaScript
TypeScript Java
• Where do I begin?
7
HOW IAM LEARNING KOTLIN
How awkward would it be if I didn’t know it….
9. • Simple “game”
• Start with a grid of alive & dead
cells
• 4 rules
• Under population: Any live cell
with < 2 neighbours dies
• Any live cell with 2 or 3
neighbours lives
• Over population: Any live cell
with > 3 neighbours dies
• Reproduction: Any dead cell with
exactly 3 neighbours comes to life
9
GAME OF LIFE
Background for the big demo
TRUE: 3 neighbours it lives
TRUE: 2 neighbours & was
already alive, stays alive
FALSE: Everything else dies
10. • Grid is an array of booleans in an
array
• Render
• Draw to the screen
• Evolve
• Make a new grid
• Go though each cell
• Count how many neighbours it has
• Apply rules to new grid
• Replace the existing grid
• Repeat
10
GAME OF LIFE
Big demo time
12. • Getters & Setters
• Null Safety
• When
• Inheritance
• High Order Functions
• by (delegated properties)
• todo
• Reflection
• Making your own Operators
• String Templates
• Backticks
12
OTHER THINGS
In no particular order
13. • JetBrains
• Interoperability hacks
• “Kt” suffix on classes
• Kotlin to JS
• Lack of static
• Maybe
• Is it not opinionated enough?
13
PROBLEMS
Is Kotlin Perfect?