Submit Search
Upload
Derping With Kotlin
•
0 likes
•
615 views
Ross Tuck
Follow
A lightning talk introducing the basics of the Kotlin programming language
Read less
Read more
Technology
Report
Share
Report
Share
1 of 71
Download now
Download to read offline
Recommended
Clojure入門
Clojure入門
Naoyuki Kakuda
Shell and perl scripting classes in mumbai
Shell and perl scripting classes in mumbai
Vibrant Technologies & Computers
eJADA web development the Ruby way
eJADA web development the Ruby way
Mustafah Elbanna
(안드로이드 개발자를 위한) 오픈소스 라이브러리 사용 가이드
(안드로이드 개발자를 위한) 오픈소스 라이브러리 사용 가이드
Taeho Kim
레진코믹스가 코틀린으로 간 까닭은?
레진코믹스가 코틀린으로 간 까닭은?
Taeho Kim
Joshua Wehner - Tomorrows Programming Languages Today
Joshua Wehner - Tomorrows Programming Languages Today
Refresh Events
Mkscript sh
Mkscript sh
Ben Pope
Imutabilidade em ruby
Imutabilidade em ruby
mauricioszabo
Recommended
Clojure入門
Clojure入門
Naoyuki Kakuda
Shell and perl scripting classes in mumbai
Shell and perl scripting classes in mumbai
Vibrant Technologies & Computers
eJADA web development the Ruby way
eJADA web development the Ruby way
Mustafah Elbanna
(안드로이드 개발자를 위한) 오픈소스 라이브러리 사용 가이드
(안드로이드 개발자를 위한) 오픈소스 라이브러리 사용 가이드
Taeho Kim
레진코믹스가 코틀린으로 간 까닭은?
레진코믹스가 코틀린으로 간 까닭은?
Taeho Kim
Joshua Wehner - Tomorrows Programming Languages Today
Joshua Wehner - Tomorrows Programming Languages Today
Refresh Events
Mkscript sh
Mkscript sh
Ben Pope
Imutabilidade em ruby
Imutabilidade em ruby
mauricioszabo
Node.js - Demnächst auf einem Server in Ihrer Nähe
Node.js - Demnächst auf einem Server in Ihrer Nähe
Ralph Winzinger
Couchdb
Couchdb
Саги Усаги
Loops
Loops
SV.CO
dplyr and torrents from cpasbien
dplyr and torrents from cpasbien
Romain Francois
What makes Groovy Groovy - Guillaume Laforge (Pivotal)
What makes Groovy Groovy - Guillaume Laforge (Pivotal)
jaxLondonConference
かとうの Kotlin 講座 こってり版
かとうの Kotlin 講座 こってり版
Yutaka Kato
dplyr use case
dplyr use case
Romain Francois
Rakudo
Rakudo
awwaiid
dplyr
dplyr
Romain Francois
perl-pocket
perl-pocket
tutorialsruby
Intro to python2
Intro to python2
Victoria Sandin
Crystal Rocks
Crystal Rocks
Brian Cardiff
A Python Crash Course
A Python Crash Course
Alex-P. Natsios
Pre-Bootcamp introduction to Elixir
Pre-Bootcamp introduction to Elixir
Paweł Dawczak
Music as data
Music as data
John Vlachoyiannis
Cracking for the Blue Team
Cracking for the Blue Team
James '-- Mckinlay
Haskell
Haskell
Jackson dos Santos Olveira
New text document
New text document
Pavel111212
Swift - 혼자 공부하면 분명히 안할테니까 같이 공부하기
Swift - 혼자 공부하면 분명히 안할테니까 같이 공부하기
Suyeol Jeon
Kotlin Programming Language. What it is all about. Roman Belov, PMM in Kotlin
Kotlin Programming Language. What it is all about. Roman Belov, PMM in Kotlin
JetBrains Russia
Groovy ネタ NGK 忘年会2009 ライトニングトーク
Groovy ネタ NGK 忘年会2009 ライトニングトーク
Tsuyoshi Yamamoto
Scala in a Java 8 World
Scala in a Java 8 World
Daniel Blyth
More Related Content
What's hot
Node.js - Demnächst auf einem Server in Ihrer Nähe
Node.js - Demnächst auf einem Server in Ihrer Nähe
Ralph Winzinger
Couchdb
Couchdb
Саги Усаги
Loops
Loops
SV.CO
dplyr and torrents from cpasbien
dplyr and torrents from cpasbien
Romain Francois
What makes Groovy Groovy - Guillaume Laforge (Pivotal)
What makes Groovy Groovy - Guillaume Laforge (Pivotal)
jaxLondonConference
かとうの Kotlin 講座 こってり版
かとうの Kotlin 講座 こってり版
Yutaka Kato
dplyr use case
dplyr use case
Romain Francois
Rakudo
Rakudo
awwaiid
dplyr
dplyr
Romain Francois
perl-pocket
perl-pocket
tutorialsruby
Intro to python2
Intro to python2
Victoria Sandin
Crystal Rocks
Crystal Rocks
Brian Cardiff
A Python Crash Course
A Python Crash Course
Alex-P. Natsios
Pre-Bootcamp introduction to Elixir
Pre-Bootcamp introduction to Elixir
Paweł Dawczak
Music as data
Music as data
John Vlachoyiannis
Cracking for the Blue Team
Cracking for the Blue Team
James '-- Mckinlay
Haskell
Haskell
Jackson dos Santos Olveira
New text document
New text document
Pavel111212
What's hot
(18)
Node.js - Demnächst auf einem Server in Ihrer Nähe
Node.js - Demnächst auf einem Server in Ihrer Nähe
Couchdb
Couchdb
Loops
Loops
dplyr and torrents from cpasbien
dplyr and torrents from cpasbien
What makes Groovy Groovy - Guillaume Laforge (Pivotal)
What makes Groovy Groovy - Guillaume Laforge (Pivotal)
かとうの Kotlin 講座 こってり版
かとうの Kotlin 講座 こってり版
dplyr use case
dplyr use case
Rakudo
Rakudo
dplyr
dplyr
perl-pocket
perl-pocket
Intro to python2
Intro to python2
Crystal Rocks
Crystal Rocks
A Python Crash Course
A Python Crash Course
Pre-Bootcamp introduction to Elixir
Pre-Bootcamp introduction to Elixir
Music as data
Music as data
Cracking for the Blue Team
Cracking for the Blue Team
Haskell
Haskell
New text document
New text document
Similar to Derping With Kotlin
Swift - 혼자 공부하면 분명히 안할테니까 같이 공부하기
Swift - 혼자 공부하면 분명히 안할테니까 같이 공부하기
Suyeol Jeon
Kotlin Programming Language. What it is all about. Roman Belov, PMM in Kotlin
Kotlin Programming Language. What it is all about. Roman Belov, PMM in Kotlin
JetBrains Russia
Groovy ネタ NGK 忘年会2009 ライトニングトーク
Groovy ネタ NGK 忘年会2009 ライトニングトーク
Tsuyoshi Yamamoto
Scala in a Java 8 World
Scala in a Java 8 World
Daniel Blyth
Presentatie - Introductie in Groovy
Presentatie - Introductie in Groovy
Getting value from IoT, Integration and Data Analytics
PHP Strings and Patterns
PHP Strings and Patterns
Henry Osborne
The Groovy Way
The Groovy Way
Gabriel Dogaru
Class 5 - PHP Strings
Class 5 - PHP Strings
Ahmed Swilam
Idiomatic kotlin
Idiomatic kotlin
Anton Arhipov
Idiomatic Kotlin
Idiomatic Kotlin
intelliyole
BEKK Teknologiradar - Kotlin
BEKK Teknologiradar - Kotlin
Vegard Veiset
多治見IT勉強会 Groovy Grails
多治見IT勉強会 Groovy Grails
Tsuyoshi Yamamoto
Kotlin Basics - Apalon Kotlin Sprint Part 2
Kotlin Basics - Apalon Kotlin Sprint Part 2
Kirill Rozov
The groovy puzzlers (as Presented at JavaOne 2014)
The groovy puzzlers (as Presented at JavaOne 2014)
GroovyPuzzlers
1.1 motivation
1.1 motivation
futurespective
Hey Kotlin, How it works?
Hey Kotlin, How it works?
Chang W. Doh
Scala vs Java 8 in a Java 8 World
Scala vs Java 8 in a Java 8 World
BTI360
This Is Not Your Father's Java
This Is Not Your Father's Java
Sven Efftinge
はじめてのGroovy
はじめてのGroovy
Tsuyoshi Yamamoto
Introduction to Swift programming language.
Introduction to Swift programming language.
Icalia Labs
Similar to Derping With Kotlin
(20)
Swift - 혼자 공부하면 분명히 안할테니까 같이 공부하기
Swift - 혼자 공부하면 분명히 안할테니까 같이 공부하기
Kotlin Programming Language. What it is all about. Roman Belov, PMM in Kotlin
Kotlin Programming Language. What it is all about. Roman Belov, PMM in Kotlin
Groovy ネタ NGK 忘年会2009 ライトニングトーク
Groovy ネタ NGK 忘年会2009 ライトニングトーク
Scala in a Java 8 World
Scala in a Java 8 World
Presentatie - Introductie in Groovy
Presentatie - Introductie in Groovy
PHP Strings and Patterns
PHP Strings and Patterns
The Groovy Way
The Groovy Way
Class 5 - PHP Strings
Class 5 - PHP Strings
Idiomatic kotlin
Idiomatic kotlin
Idiomatic Kotlin
Idiomatic Kotlin
BEKK Teknologiradar - Kotlin
BEKK Teknologiradar - Kotlin
多治見IT勉強会 Groovy Grails
多治見IT勉強会 Groovy Grails
Kotlin Basics - Apalon Kotlin Sprint Part 2
Kotlin Basics - Apalon Kotlin Sprint Part 2
The groovy puzzlers (as Presented at JavaOne 2014)
The groovy puzzlers (as Presented at JavaOne 2014)
1.1 motivation
1.1 motivation
Hey Kotlin, How it works?
Hey Kotlin, How it works?
Scala vs Java 8 in a Java 8 World
Scala vs Java 8 in a Java 8 World
This Is Not Your Father's Java
This Is Not Your Father's Java
はじめてのGroovy
はじめてのGroovy
Introduction to Swift programming language.
Introduction to Swift programming language.
Recently uploaded
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
Padma Pradeep
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
Mattias Andersson
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
Alfredo García Lavilla
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
charlottematthew16
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
Fwdays
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
Florian Wilhelm
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
UiPathCommunity
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
Dubai Multi Commodity Centre
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
comworks
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
Sergiu Bodiu
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Wonjun Hwang
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
Kalema Edgar
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
null - The Open Security Community
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
shyamraj55
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
ScyllaDB
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
Lorenzo Miniero
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
Memoori
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
gvaughan
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
Pixlogix Infotech
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
The Digital Insurer
Recently uploaded
(20)
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
Derping With Kotlin
1.
Derping.with { Kotlin }
2.
3.
4.
5.
// JVM // Android //
JavaScript // LLVM
6.
// Actually has
libraries // Actually has tooling // Actually has traction
7.
// Variables
8.
val name =
"Ross" var age = 32
9.
val name: String
= "Ross" var age: Int = 32
10.
val name =
"Ross" var age = 32
11.
// Functions
12.
fun answer(): Int
{ return 42 }
13.
fun answer(): Int
= 42
14.
fun answer() =
42
15.
fun answer(): Int
{ return 42 }
16.
// Parameters
17.
fun greet(name: String):
String { return "Hello " + name }
18.
// String Interpolation
19.
fun greet(name: String):
String { return "Hello " + name }
20.
fun greet(name: String):
String { return "Hello $name" }
21.
// Named Parameters
22.
fun greet(name: String):
String { return "Hello $name" }
23.
fun greet(name: String, ):
String { return "Hello $name" }
24.
fun greet(name: String, greeting:
String = "Hello" ): String { return "Hello $name" }
25.
fun greet(name: String, greeting:
String = "Hello" ): String { return "$greeting $name" }
26.
// Calling a
function
27.
greet("Ross") greet("Ross", greeting="Aloha")
28.
// Classes
29.
class Game() { }
30.
class Game() { fun join(user:
UserName) { } }
31.
val myGame =
Game()
32.
// Dependencies
33.
class Game() { fun join(user:
UserName) { } }
34.
class Game(val logger:
Logger) { fun join(user: UserName) { } }
35.
class Game(val logger:
Logger) { fun join(user: UserName) { this.logger.log("foo") } }
36.
class Game(val logger:
Logger) { fun join(user: UserName) { logger.log("foo") } }
37.
class Game(private val
logger: Logger) { fun join(user: UserName) { logger.log("foo") } }
38.
// Neat Class
Things
39.
// Neato Constructor
Options // Enums // Sealed Classes // Delegation // Properties data class Name(val first: String, val last: String)
40.
// Null Safety
41.
fun greet(name: String):
String { return "Hello $name" }
42.
fun greet(name: String?):
String { return "Hello $name" }
43.
fun greet(name: String?):
String { return "Hello $name" } “Hello Ross”
44.
fun greet(name: String?):
String { return "Hello $name" } “Hello null”
45.
fun greet(name: String?):
String { return "Hello $name" }
46.
fun greet(name: String?):
String { return "Hello ${name.toUpperCase()}" }
47.
fun greet(name: String?):
String { return "Hello ${name.toUpperCase()}" }
48.
fun greet(name: String?):
String { return "Hello $name" }
49.
fun greet(name: String?):
String { if (name == null) { return "STRANGER DANGER" } return "Hello $name" }
50.
fun greet(name: String?):
String { return "Hello $name" }
51.
fun greet(name: String?):
String { return "Hello ${formatName(name)}" } fun formatName(name: String): String { return name.toUpperCase(); }
52.
fun greet(name: String?):
String { return "Hello ${formatName(name)}" } fun formatName(name: String): String { return name.toUpperCase(); }
53.
fun greet(name: String?):
String { return "Hello ${formatName(name)}" } fun formatName(name: String): String { return name.toUpperCase(); }
54.
address?.postCode()?.suffix() age ?: 29
55.
// Java Interop
56.
import myutils.tableflip import java.time.LocalDate val
now = LocalDate.now()
57.
//Extension Functions
58.
fun BoardGame.tableFlip(): String
{ return "(ノ°Д° ︵)ノ ┻━┻" } val game = BoardGame() game.tableFlip()
59.
60.
fun BoardGame.tableFlip(): String
{ return "(ノ°Д° ︵)ノ ┻━┻" } val game = BoardGame() game.tableFlip()
61.
import nerdstuff.BoardGame import myutils.tableflip
62.
import java.time.LocalDate fun LocalDate.yesterday():
LocalDate { return minusDays(1) } val now = LocalDate.now() val yesterday = now.yesterday()
63.
// Collections
64.
val nums =
listOf(1, 2, 3) nums.map( )
65.
val nums =
listOf(1, 2, 3) nums.map({x: Int -> x * 2}) nums.map({x -> x * 2}) nums.map() {x -> x * 2} nums.map {x -> x * 2} nums.map { it * 2 }
66.
// DSLs
67.
routing { get("/") { call.respondText("Hello,
world!") } post("/register") { // do stuff } }
68.
val routing =
RoutingBuilder() routing.get( {call: Call -> call.respondText("Hello World!") } ) routing.post(/* do stuff */)
69.
html { head { title
{ +"Demo" } } body { h1 { +"Welcome!" } a(href="/FAQ") { +"FAQ" } } }
70.
// Kotlin &
Me & You
71.
// Thanks // @rosstuck //
me@rosstuck.com
Download now