SlideShare a Scribd company logo
KOTLIN
HI
2
ROBERT
MACLEAN
@rmaclean
REQUIRED ADVERTISING
You can click next in 5 seconds…
3
• Kotlin History
• How I’m Learning Kotlin
• [ INTERACTIVE DEMO ]
• Remember demos aren’t real
• Problems
4
AGENDA
The WYSIWYG slide
• 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…
• IntelliJ
• Android Studio
• VIM
• Sublime
• Code
• Atom
• Eclipse
• Netbeans
6
YOUR FAVOURITE EDITOR SUPPORTS IT
Unless your favourite is Fat Visual Studio
• 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….
KOANS
Out of nowhere, the
mind comes forth.
— The Diamond Sutra
8
• 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
• 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
GAME OF LIFE
Shall we play a game
11
• 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
• JetBrains
• Interoperability hacks
• “Kt” suffix on classes
• Kotlin to JS
• Lack of static
• Maybe
• Is it not opinionated enough?
13
PROBLEMS
Is Kotlin Perfect?
https://github.com/JetBrains/kotlin-workshop
https://kotlin.link
https://try.kotlinlang.org
https://github.com/Kotlin/kotlin-koans
https://github.com/gradle/kotlin-
dsl/tree/master/samples
https://kotlinlang.org/docs/reference/idioms.ht
ml
http://bit.ly/kotlinhelp
14
MORE RESOURCES
I know it is too small to read; grab these slides from me
THANK YOU
Robert MacLean @rmaclean
www.sadev.co.za
15

More Related Content

PPTX
Unit testing - The Star Wars version
PDF
Global Day of Code Retreat (2013)
PDF
Code retreat @BMW Car IT
PPTX
Yet Another Dan Kaminsky Talk (Black Ops 2014)
PDF
Orleans gdc2019
PDF
Code Retreat Graz, Austria 2013
PDF
Best Practices for Fast Game Design in Unity
PDF
Keynote, LambdaConf 2014 - The Silent Productivity Killer
Unit testing - The Star Wars version
Global Day of Code Retreat (2013)
Code retreat @BMW Car IT
Yet Another Dan Kaminsky Talk (Black Ops 2014)
Orleans gdc2019
Code Retreat Graz, Austria 2013
Best Practices for Fast Game Design in Unity
Keynote, LambdaConf 2014 - The Silent Productivity Killer

Similar to Kotlin 101 (20)

PDF
Making A Game Engine Is Easier Than You Think
PPTX
Noam Kfir - There is no Java Script - code.talks 2015
PPTX
There Is No JavaScript
PPTX
Test-Driven Sitecore
PDF
Programming with Kotlin
PPTX
Things you should know if you plan to ship a game
PDF
Understand Java for Android the Hard Way
PPTX
Low-level concurrency (reinvent vehicle)
PDF
Functional Programming in Clojure
PPTX
Watch Your Language! - What my Mother Taught Me about Being an Engineer.
PDF
Kernel Development: Drawing Lessons From "Mistakes" (Japan Linux Symposium 2009)
PPTX
OGDC 2014: Architecting Games in Unity
PPTX
A Prelude to Android
PDF
Concurrency in Python
PPTX
David Brevik - LOGIN Conference 2012
KEY
Enterprise Strength Mobile JavaScript
PPTX
Kotlin Multiplatfom In Action
PDF
Kotlin Multiplatfom In Action
PDF
3 years with Clojure
PDF
OGDC 2014_Architecting Games in Unity_Mr. Rustum Scammell
Making A Game Engine Is Easier Than You Think
Noam Kfir - There is no Java Script - code.talks 2015
There Is No JavaScript
Test-Driven Sitecore
Programming with Kotlin
Things you should know if you plan to ship a game
Understand Java for Android the Hard Way
Low-level concurrency (reinvent vehicle)
Functional Programming in Clojure
Watch Your Language! - What my Mother Taught Me about Being an Engineer.
Kernel Development: Drawing Lessons From "Mistakes" (Japan Linux Symposium 2009)
OGDC 2014: Architecting Games in Unity
A Prelude to Android
Concurrency in Python
David Brevik - LOGIN Conference 2012
Enterprise Strength Mobile JavaScript
Kotlin Multiplatfom In Action
Kotlin Multiplatfom In Action
3 years with Clojure
OGDC 2014_Architecting Games in Unity_Mr. Rustum Scammell
Ad

More from Robert MacLean (20)

PPTX
Deno ...................................
PPTX
14 things you need to be a successful software developer (v3)
PPTX
OWASP TOP 10
PPTX
Building a µservice with Kotlin, Micronaut & GCP
PPTX
Looking at the Vue
PPTX
Features of Kotlin I find exciting
PPTX
JavaScript Gotchas
PPTX
DevConf Survival Guide
PPTX
The state of testing @ Microsoft
PPTX
Visual Studio ❤ JavaScript
PPTX
What is new in C# 6?
PPTX
Putting the DOT in .NET - Dev/Ops/Test
PPTX
A Developer Day 2014 - Durban
PPTX
Agile lessons learned in the Microsoft ALM Rangers
PPTX
Hour of code - Train the trainer
PPTX
Building services for apps on a shoestring budget
PPTX
3 things your app API is doing WRONG
PPTX
PPTX
LightSwitch
Deno ...................................
14 things you need to be a successful software developer (v3)
OWASP TOP 10
Building a µservice with Kotlin, Micronaut & GCP
Looking at the Vue
Features of Kotlin I find exciting
JavaScript Gotchas
DevConf Survival Guide
The state of testing @ Microsoft
Visual Studio ❤ JavaScript
What is new in C# 6?
Putting the DOT in .NET - Dev/Ops/Test
A Developer Day 2014 - Durban
Agile lessons learned in the Microsoft ALM Rangers
Hour of code - Train the trainer
Building services for apps on a shoestring budget
3 things your app API is doing WRONG
LightSwitch
Ad

Recently uploaded (20)

PDF
Encapsulation theory and applications.pdf
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PPTX
Spectroscopy.pptx food analysis technology
PDF
NewMind AI Weekly Chronicles - August'25 Week I
DOCX
The AUB Centre for AI in Media Proposal.docx
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PPTX
Cloud computing and distributed systems.
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
Empathic Computing: Creating Shared Understanding
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Review of recent advances in non-invasive hemoglobin estimation
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Encapsulation theory and applications.pdf
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
MYSQL Presentation for SQL database connectivity
Diabetes mellitus diagnosis method based random forest with bat algorithm
Agricultural_Statistics_at_a_Glance_2022_0.pdf
MIND Revenue Release Quarter 2 2025 Press Release
Spectroscopy.pptx food analysis technology
NewMind AI Weekly Chronicles - August'25 Week I
The AUB Centre for AI in Media Proposal.docx
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Understanding_Digital_Forensics_Presentation.pptx
Cloud computing and distributed systems.
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Mobile App Security Testing_ A Comprehensive Guide.pdf
Reach Out and Touch Someone: Haptics and Empathic Computing
“AI and Expert System Decision Support & Business Intelligence Systems”
Empathic Computing: Creating Shared Understanding
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Review of recent advances in non-invasive hemoglobin estimation
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx

Kotlin 101