SlideShare a Scribd company logo
1 of 16
Download to read offline
ONE LANGUAGE TO RULE THEM ALL.
Sevil Guler - 11.12.2017
HOLD ON! HERE IS KOTLIN.
EXPECTATIONS ?
HISTORY
▸ Not new at all 2011 -> 2012, Saint
Petersburg
▸ Created by Jetbrains
To increase their productivity
Drive company business by
keeping trust
Drive sales of Intellij IDEA
▸ February 15, 2016
▸ Google IO - 2017
INTRODUCTION
▸ Industrial-strength Object Oriented language - it is pragmatic
▸ Open Source
▸ Interoperable with Java
▸ Concise and Expressive
▸ Easy to learn
▸ Terrific Support and great tools
▸ Safe
▸ Better Efficiency as a Programmer
LANGUAGE FEATURES
▸ Static typing
Compile time
1. Performance is better
2. More reliable
3. Easier to maintain
Type Inference (in contrast to Java)
▸ Object Oriented and Functional
Design around object and supports OO concepts
Not purely functional but :
A. Lambda Expressions
B. First class functions, immutability and no side effects
▸ Lambdas (High Order Functions)
▸ Compatible
▸ Incremental Compilation
▸ Null Safety
Java Code is defensive (NPE)
Safe Call Operator (?)
Safe Cast Operator (as?)
Elvis Operator (?:)
LANGUAGE FEATURES
▸ Extension Functions
Extend any class with new feature even we don’t have access to the source
code
▸ Operator Overloading
Can provide implementation for a predefined set of operators like +, =, ==
▸ Generics
Different types, same behaviour
Reflection, smart casts, companion objects, range expressions etc.
▸ Data Classes
Simplify classes
Separate pure data from business logic
COMPARING TO JAVA
1. Checked Exceptions
2. Primitives types
3. Static members
4. Non-private fields
5. Wildcard types
1. Lambda expressions (inline functions)
2. Extension functions
3. Null Safety
4. Sealed Classes
5. Smart casts
6. String templates
7. Properties
8. Singletons
9. Operator Overloading
10. Companion Objects
11. Data Classes
12. Coroutines
13.……
JAVA: 5 - KOTLIN : 0 JAVA: 0 - KOTLIN : 13…
Sevil Guler - 11.12.2017
COMPARING TO JAVA
COMPARE WITH
▸ Same conciseness and expressive code
BUT Kotlin wins
with static typing and null safety
‣ Difficult to compare but …
‣ Very similar where Swift is LLVM based and
C interop
THE PRESENT OF THE KOTLIN
▸ Google, Amazon, Foursquare, Capital One, Coursera,
Basecamp,Netflix, Uber, Trello, Pinterest, Corda etc. are using Kotlin
▸ Google I/O
THE PRESENT OF THE KOTLIN
▸ It is not only Java/Android language but compile projects
can also compile into JS.
THE PRESENT OF THE KOTLIN
▸ JavaScript target, allowing you to compile Kotlin code to JS and
to run it in your browser - Kotlin 1.1.
▸ Concept of common module - platform specific functionality for
multiplatform project - Kotlin 1.2.
A multiplatform project allows you to build multiple tiers of
your application
Reuse the code between JVM and JS
write the business logic of your application once, and
reuse it across all tiers of your application – the
backend, the browser frontend and the Android
mobile app.
KOTLIN EXAMPLES
▸ Example 1:
▸ if (object != null && object.getOtherObject() != null) {
String someString = object.getOtherObject().getString();
if (someString != null) {
return someString;
}
return “”;
} —- >JAVA
▸ return object?.getOtherObject()?.getString() ?: “" —-> KOTLIN
▸ Some more examples -> Intellij IDEA
THE FUTURE OF THE KOTLIN
★ Support for machine code Kotlin/Native - >
✴ Windows (x86_64 only at the moment)
✴ Linux (x86_64, arm32, MIPS, MIPS little endian)
✴ MacOS (x86_64)
✴ iOS (arm64 only)
✴ Android (arm32 and arm64)
✴ WebAssembly (wasm32 only)
★ iOS applications (reusing code with Android)
★ Embedded systems/IoT (e.g., Arduino and beyond)
★ Data analysis and Scientific Computing
DISADVANTAGES
▸ larger file package size than one built purely in Java.
▸ Build time for Kotlin is a little slower using Gradle
▸ Method count
A Brief Overview of Kotlin

More Related Content

What's hot

freeCodeCamp Tokyo meetup 19
freeCodeCamp Tokyo meetup 19freeCodeCamp Tokyo meetup 19
freeCodeCamp Tokyo meetup 19健太 田上
 
Typescript kata The TDD style 2 edition
Typescript kata The TDD style 2 editionTypescript kata The TDD style 2 edition
Typescript kata The TDD style 2 editionRonnie Hegelund
 
MongoDB Jump Start
MongoDB Jump StartMongoDB Jump Start
MongoDB Jump StartHaim Michael
 
Productive Android developers (Meetup slides)
Productive Android developers (Meetup slides)Productive Android developers (Meetup slides)
Productive Android developers (Meetup slides)Michal Juhas
 
Dsl로 만나는 groovy
Dsl로 만나는 groovyDsl로 만나는 groovy
Dsl로 만나는 groovySeeyoung Chang
 
Lessons Learnt from Backend Systems Development
Lessons Learnt from Backend Systems DevelopmentLessons Learnt from Backend Systems Development
Lessons Learnt from Backend Systems DevelopmentMichal Juhas
 
Venkat Subramaniam Blending Java With Dynamic Languages
Venkat Subramaniam Blending Java With Dynamic LanguagesVenkat Subramaniam Blending Java With Dynamic Languages
Venkat Subramaniam Blending Java With Dynamic Languagesdeimos
 
JavaScript, Node, and Drones: The Story of NodeCopter
JavaScript, Node, and Drones: The Story of NodeCopterJavaScript, Node, and Drones: The Story of NodeCopter
JavaScript, Node, and Drones: The Story of NodeCopterRomain Huet
 
A brief intro to RubyMotion
A brief intro to RubyMotionA brief intro to RubyMotion
A brief intro to RubyMotionKamil Lelonek
 
IDE as a Front-end and Fast time-to-market language support in Eclipse IDE re...
IDE as a Front-end and Fast time-to-market language support in Eclipse IDE re...IDE as a Front-end and Fast time-to-market language support in Eclipse IDE re...
IDE as a Front-end and Fast time-to-market language support in Eclipse IDE re...Mickael Istria
 
How do we test nodejs apps?
How do we test nodejs apps?How do we test nodejs apps?
How do we test nodejs apps?Michal Juhas
 
What's new with Kotlin - Google IO18' extended Covenant University.
What's new with Kotlin - Google IO18' extended Covenant University.What's new with Kotlin - Google IO18' extended Covenant University.
What's new with Kotlin - Google IO18' extended Covenant University.SimileoluwaAluko
 
Intro to Crystal Programming Language
Intro to Crystal Programming LanguageIntro to Crystal Programming Language
Intro to Crystal Programming LanguageAdler Hsieh
 
DevNight #1 (Kotlin) @ The Brick Space
DevNight #1 (Kotlin) @ The Brick SpaceDevNight #1 (Kotlin) @ The Brick Space
DevNight #1 (Kotlin) @ The Brick SpaceJedsada Tiwongvokul
 

What's hot (20)

freeCodeCamp Tokyo meetup 19
freeCodeCamp Tokyo meetup 19freeCodeCamp Tokyo meetup 19
freeCodeCamp Tokyo meetup 19
 
Typescript kata The TDD style 2 edition
Typescript kata The TDD style 2 editionTypescript kata The TDD style 2 edition
Typescript kata The TDD style 2 edition
 
MongoDB Jump Start
MongoDB Jump StartMongoDB Jump Start
MongoDB Jump Start
 
Productive Android developers (Meetup slides)
Productive Android developers (Meetup slides)Productive Android developers (Meetup slides)
Productive Android developers (Meetup slides)
 
Dsl로 만나는 groovy
Dsl로 만나는 groovyDsl로 만나는 groovy
Dsl로 만나는 groovy
 
Lessons Learnt from Backend Systems Development
Lessons Learnt from Backend Systems DevelopmentLessons Learnt from Backend Systems Development
Lessons Learnt from Backend Systems Development
 
Venkat Subramaniam Blending Java With Dynamic Languages
Venkat Subramaniam Blending Java With Dynamic LanguagesVenkat Subramaniam Blending Java With Dynamic Languages
Venkat Subramaniam Blending Java With Dynamic Languages
 
Java vs kotlin
Java vs kotlin Java vs kotlin
Java vs kotlin
 
JavaScript, Node, and Drones: The Story of NodeCopter
JavaScript, Node, and Drones: The Story of NodeCopterJavaScript, Node, and Drones: The Story of NodeCopter
JavaScript, Node, and Drones: The Story of NodeCopter
 
A brief intro to RubyMotion
A brief intro to RubyMotionA brief intro to RubyMotion
A brief intro to RubyMotion
 
IDE as a Front-end and Fast time-to-market language support in Eclipse IDE re...
IDE as a Front-end and Fast time-to-market language support in Eclipse IDE re...IDE as a Front-end and Fast time-to-market language support in Eclipse IDE re...
IDE as a Front-end and Fast time-to-market language support in Eclipse IDE re...
 
How do we test nodejs apps?
How do we test nodejs apps?How do we test nodejs apps?
How do we test nodejs apps?
 
TypeScript
TypeScriptTypeScript
TypeScript
 
What's new with Kotlin - Google IO18' extended Covenant University.
What's new with Kotlin - Google IO18' extended Covenant University.What's new with Kotlin - Google IO18' extended Covenant University.
What's new with Kotlin - Google IO18' extended Covenant University.
 
C#
C#C#
C#
 
Polyglot Programmer
Polyglot ProgrammerPolyglot Programmer
Polyglot Programmer
 
Kshitij
KshitijKshitij
Kshitij
 
Scala vs ruby
Scala vs rubyScala vs ruby
Scala vs ruby
 
Intro to Crystal Programming Language
Intro to Crystal Programming LanguageIntro to Crystal Programming Language
Intro to Crystal Programming Language
 
DevNight #1 (Kotlin) @ The Brick Space
DevNight #1 (Kotlin) @ The Brick SpaceDevNight #1 (Kotlin) @ The Brick Space
DevNight #1 (Kotlin) @ The Brick Space
 

Similar to A Brief Overview of Kotlin

Android Development with Kotlin course
Android Development  with Kotlin courseAndroid Development  with Kotlin course
Android Development with Kotlin courseGoogleDevelopersLeba
 
Introduction_to_Kotlin.pptx
Introduction_to_Kotlin.pptxIntroduction_to_Kotlin.pptx
Introduction_to_Kotlin.pptxHARSHITJAIN068
 
Kotlin for android development
Kotlin for android developmentKotlin for android development
Kotlin for android developmentJalpesh Vasa
 
Top Object-Oriented Programming Languages To Follow In December 2022.pdf
Top Object-Oriented Programming Languages To Follow In December 2022.pdfTop Object-Oriented Programming Languages To Follow In December 2022.pdf
Top Object-Oriented Programming Languages To Follow In December 2022.pdfJamesEddie2
 
Top 10 Tips for Developing Android Apps Using Kotlin
Top 10 Tips for Developing Android Apps Using KotlinTop 10 Tips for Developing Android Apps Using Kotlin
Top 10 Tips for Developing Android Apps Using KotlinSofiaCarter4
 
Anko - The Ultimate Ninja of Kotlin Libraries?
Anko - The Ultimate Ninja of Kotlin Libraries?Anko - The Ultimate Ninja of Kotlin Libraries?
Anko - The Ultimate Ninja of Kotlin Libraries?Kai Koenig
 
Kotlin vs Java- Finding The All-Time Favorite Fit!
Kotlin vs Java- Finding The All-Time Favorite Fit!Kotlin vs Java- Finding The All-Time Favorite Fit!
Kotlin vs Java- Finding The All-Time Favorite Fit!Techugo
 
A Review Paper on Kotlin Programming Language
A Review Paper on Kotlin Programming LanguageA Review Paper on Kotlin Programming Language
A Review Paper on Kotlin Programming Languageijtsrd
 
Bootify Yyour App from Zero to Hero
Bootify Yyour App from Zero to HeroBootify Yyour App from Zero to Hero
Bootify Yyour App from Zero to HeroEPAM
 
BP203 limitless languages
BP203 limitless languagesBP203 limitless languages
BP203 limitless languagesMark Myers
 
Kotlin native for iOS and Android
Kotlin native for iOS and AndroidKotlin native for iOS and Android
Kotlin native for iOS and AndroidShady Selim
 
What is Kotlin Multiplaform? Why & How?
What is Kotlin Multiplaform? Why & How? What is Kotlin Multiplaform? Why & How?
What is Kotlin Multiplaform? Why & How? Shady Selim
 
Kotlin for Android
Kotlin for AndroidKotlin for Android
Kotlin for AndroidHan Yin
 
Kotlin vs Java: Which is Better for Android App Development?
Kotlin vs Java: Which is Better for Android App Development?Kotlin vs Java: Which is Better for Android App Development?
Kotlin vs Java: Which is Better for Android App Development?Marie Weaver
 

Similar to A Brief Overview of Kotlin (20)

Android Development with Kotlin course
Android Development  with Kotlin courseAndroid Development  with Kotlin course
Android Development with Kotlin course
 
Android with kotlin course
Android with kotlin courseAndroid with kotlin course
Android with kotlin course
 
Introduction_to_Kotlin.pptx
Introduction_to_Kotlin.pptxIntroduction_to_Kotlin.pptx
Introduction_to_Kotlin.pptx
 
Kotlin
KotlinKotlin
Kotlin
 
Kotlin for android development
Kotlin for android developmentKotlin for android development
Kotlin for android development
 
Top Object-Oriented Programming Languages To Follow In December 2022.pdf
Top Object-Oriented Programming Languages To Follow In December 2022.pdfTop Object-Oriented Programming Languages To Follow In December 2022.pdf
Top Object-Oriented Programming Languages To Follow In December 2022.pdf
 
Top 10 Tips for Developing Android Apps Using Kotlin
Top 10 Tips for Developing Android Apps Using KotlinTop 10 Tips for Developing Android Apps Using Kotlin
Top 10 Tips for Developing Android Apps Using Kotlin
 
Java for C++ programers
Java for C++ programersJava for C++ programers
Java for C++ programers
 
130700548484460000
130700548484460000130700548484460000
130700548484460000
 
Anko - The Ultimate Ninja of Kotlin Libraries?
Anko - The Ultimate Ninja of Kotlin Libraries?Anko - The Ultimate Ninja of Kotlin Libraries?
Anko - The Ultimate Ninja of Kotlin Libraries?
 
Kotlin vs Java- Finding The All-Time Favorite Fit!
Kotlin vs Java- Finding The All-Time Favorite Fit!Kotlin vs Java- Finding The All-Time Favorite Fit!
Kotlin vs Java- Finding The All-Time Favorite Fit!
 
A Review Paper on Kotlin Programming Language
A Review Paper on Kotlin Programming LanguageA Review Paper on Kotlin Programming Language
A Review Paper on Kotlin Programming Language
 
Bootify Yyour App from Zero to Hero
Bootify Yyour App from Zero to HeroBootify Yyour App from Zero to Hero
Bootify Yyour App from Zero to Hero
 
BP203 limitless languages
BP203 limitless languagesBP203 limitless languages
BP203 limitless languages
 
Kotlin
KotlinKotlin
Kotlin
 
Kotlin native for iOS and Android
Kotlin native for iOS and AndroidKotlin native for iOS and Android
Kotlin native for iOS and Android
 
Introduction to Kotlin
Introduction to KotlinIntroduction to Kotlin
Introduction to Kotlin
 
What is Kotlin Multiplaform? Why & How?
What is Kotlin Multiplaform? Why & How? What is Kotlin Multiplaform? Why & How?
What is Kotlin Multiplaform? Why & How?
 
Kotlin for Android
Kotlin for AndroidKotlin for Android
Kotlin for Android
 
Kotlin vs Java: Which is Better for Android App Development?
Kotlin vs Java: Which is Better for Android App Development?Kotlin vs Java: Which is Better for Android App Development?
Kotlin vs Java: Which is Better for Android App Development?
 

Recently uploaded

chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
cybersecurity notes for mca students for learning
cybersecurity notes for mca students for learningcybersecurity notes for mca students for learning
cybersecurity notes for mca students for learningVitsRangannavar
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfPower Karaoke
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number SystemsJheuzeDellosa
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEOrtus Solutions, Corp
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfjoe51371421
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio, Inc.
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
XpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsXpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsMehedi Hasan Shohan
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...aditisharan08
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 

Recently uploaded (20)

Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
cybersecurity notes for mca students for learning
cybersecurity notes for mca students for learningcybersecurity notes for mca students for learning
cybersecurity notes for mca students for learning
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdf
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number Systems
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASEBATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
BATTLEFIELD ORM: TIPS, TACTICS AND STRATEGIES FOR CONQUERING YOUR DATABASE
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
why an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdfwhy an Opensea Clone Script might be your perfect match.pdf
why an Opensea Clone Script might be your perfect match.pdf
 
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed DataAlluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
Alluxio Monthly Webinar | Cloud-Native Model Training on Distributed Data
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
XpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software SolutionsXpertSolvers: Your Partner in Building Innovative Software Solutions
XpertSolvers: Your Partner in Building Innovative Software Solutions
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...Unit 1.1 Excite Part 1, class 9, cbse...
Unit 1.1 Excite Part 1, class 9, cbse...
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 

A Brief Overview of Kotlin

  • 1. ONE LANGUAGE TO RULE THEM ALL. Sevil Guler - 11.12.2017 HOLD ON! HERE IS KOTLIN.
  • 3. HISTORY ▸ Not new at all 2011 -> 2012, Saint Petersburg ▸ Created by Jetbrains To increase their productivity Drive company business by keeping trust Drive sales of Intellij IDEA ▸ February 15, 2016 ▸ Google IO - 2017
  • 4. INTRODUCTION ▸ Industrial-strength Object Oriented language - it is pragmatic ▸ Open Source ▸ Interoperable with Java ▸ Concise and Expressive ▸ Easy to learn ▸ Terrific Support and great tools ▸ Safe ▸ Better Efficiency as a Programmer
  • 5. LANGUAGE FEATURES ▸ Static typing Compile time 1. Performance is better 2. More reliable 3. Easier to maintain Type Inference (in contrast to Java) ▸ Object Oriented and Functional Design around object and supports OO concepts Not purely functional but : A. Lambda Expressions B. First class functions, immutability and no side effects ▸ Lambdas (High Order Functions) ▸ Compatible ▸ Incremental Compilation ▸ Null Safety Java Code is defensive (NPE) Safe Call Operator (?) Safe Cast Operator (as?) Elvis Operator (?:)
  • 6. LANGUAGE FEATURES ▸ Extension Functions Extend any class with new feature even we don’t have access to the source code ▸ Operator Overloading Can provide implementation for a predefined set of operators like +, =, == ▸ Generics Different types, same behaviour Reflection, smart casts, companion objects, range expressions etc. ▸ Data Classes Simplify classes Separate pure data from business logic
  • 7. COMPARING TO JAVA 1. Checked Exceptions 2. Primitives types 3. Static members 4. Non-private fields 5. Wildcard types 1. Lambda expressions (inline functions) 2. Extension functions 3. Null Safety 4. Sealed Classes 5. Smart casts 6. String templates 7. Properties 8. Singletons 9. Operator Overloading 10. Companion Objects 11. Data Classes 12. Coroutines 13.…… JAVA: 5 - KOTLIN : 0 JAVA: 0 - KOTLIN : 13… Sevil Guler - 11.12.2017
  • 9. COMPARE WITH ▸ Same conciseness and expressive code BUT Kotlin wins with static typing and null safety ‣ Difficult to compare but … ‣ Very similar where Swift is LLVM based and C interop
  • 10. THE PRESENT OF THE KOTLIN ▸ Google, Amazon, Foursquare, Capital One, Coursera, Basecamp,Netflix, Uber, Trello, Pinterest, Corda etc. are using Kotlin ▸ Google I/O
  • 11. THE PRESENT OF THE KOTLIN ▸ It is not only Java/Android language but compile projects can also compile into JS.
  • 12. THE PRESENT OF THE KOTLIN ▸ JavaScript target, allowing you to compile Kotlin code to JS and to run it in your browser - Kotlin 1.1. ▸ Concept of common module - platform specific functionality for multiplatform project - Kotlin 1.2. A multiplatform project allows you to build multiple tiers of your application Reuse the code between JVM and JS write the business logic of your application once, and reuse it across all tiers of your application – the backend, the browser frontend and the Android mobile app.
  • 13. KOTLIN EXAMPLES ▸ Example 1: ▸ if (object != null && object.getOtherObject() != null) { String someString = object.getOtherObject().getString(); if (someString != null) { return someString; } return “”; } —- >JAVA ▸ return object?.getOtherObject()?.getString() ?: “" —-> KOTLIN ▸ Some more examples -> Intellij IDEA
  • 14. THE FUTURE OF THE KOTLIN ★ Support for machine code Kotlin/Native - > ✴ Windows (x86_64 only at the moment) ✴ Linux (x86_64, arm32, MIPS, MIPS little endian) ✴ MacOS (x86_64) ✴ iOS (arm64 only) ✴ Android (arm32 and arm64) ✴ WebAssembly (wasm32 only) ★ iOS applications (reusing code with Android) ★ Embedded systems/IoT (e.g., Arduino and beyond) ★ Data analysis and Scientific Computing
  • 15. DISADVANTAGES ▸ larger file package size than one built purely in Java. ▸ Build time for Kotlin is a little slower using Gradle ▸ Method count