A Modern Programming Language
Background
and History
• In 2010 the developers behind JetBrains, decided that they
needed to solve developer challenges much more easily
than they currently were.
• They needed a simpler tool than Java to work with IntelliJ
IDEA, which was totally written in it.
• JetBrains lead investigated alternatives like Scala, but
remained unsatisfied due to it’s slow compilation time, and
so they decided to invent their own language instead.
• They named it Kotlin.
• Their goal was also to receive an effective tool that could be
used together with Java in Android app development and
work wherever Java works. Another goal was to compile as
quickly as Java.
Introduction
Domain and
Implementation
• Kotlin has been designed to be an industrial-strength OOP language and a "better language" than Java,
but still be fully interoperable with Java code so that companies can easily migrate from Java to Kotlin.
• Kotlin variable declarations and parameter lists have the data type come after the variable name with a
colon separator.
E.g:- var count: Int = 10
• Kotlin supports inheritance like Java but classes themselves are final by default, meaning that creating
a derived class is disabled unless the base class is declared with the open keyword.
open class A {
}
class B : A() {
} /* Derived class,derived from A
This class cannot be inherited unless it also uses 'open' keyword
*/
• Kotlin is very concise in terms of code size but yet as fast as Java. Besides being largely used for app
Development, it’s also used in back-end web development.
Advantages of
Kotlin
Maximize the productivity
Works with existing Java Code
Less chances of bugs
Reliable
Disadvantages
of Kotlin
Kotlin Minimal Learning Opportunities
Compilation speed is slower
Distinct from Java
Less Kotlin professionals to recruit
Evaluation
Readability:
• Kotlin has a clear and concise code; hence easy to
read. It is easier to read when compared to verbose
languages like Java.
• Kotlin focuses on readable syntaxes, so even people
who are not familiar with the language can do code
reviews
• Kotlin also provides functional programming support
with zero overhead lambdas and mapping, folding over
standard Java collections.
Evaluation
Writability:
• Kotlin is statically typed, the developer can easily see
where the class or function is applied in the code.
• Instead of HTML for API docs, Kotlin supports
markdown writing. This makes writing the code a
pleasurable task.
• Kotlin plays an important role in tension functions
too as it lets you add methods to classes without
modifying the source code.
Evaluation
Reliability:
• Kotlin provides in-built null-safe operators. This indirectly
increases developer productivity because it’s easy to catch
nulls during compile time and there are no more worries
of crashing your app at the runtime.
• Kotlin allows developers to catch bugs in the compiler
time and not in the runtime.
• Kotlin help us to build powerful language extensions and
integrate existing Java APIs with other features (of Kotlin)
increased developer productivity, right from language to
framework and to tools.
Evaluation
Cost:
• Fluctuation in Compilation :Kotlin is faster than Java,
there is no doubt about it. However, Java remains a
clear winner when it comes to creating clean builds for
Android apps.
• Limited Learning Resources: limited number of
resources available in the market to learn and master
Kotlin. This basically leads to extra time to try and
figure out how to do or build certain things in an
Android app using Kotlin programming language.
Special features and application domains
Efficiency Null Safety in
Kotlin
Extension
Functions
Collections
And Streams
Installation and Popular IDEs
Program Example:
• Printing an Integer entered by a user in Kotlin using Scanner:
Output:
Multiply Two Floating Point Numbers:
Output:
Conclusion:
• With popularity Kotlin is now
supporting a lot of the aspects of
modern-day applications.
• Google recommended application for
Android development.
• API for using same code with minimal
addition for IOS.
• Kotlin is a great fit for developing
server-side applications.
• Kotlin for JavaScript provides ability to
transpile Kotlin code, the library, and
any compatible dependencies to
JavaScript.
Thank you
Any Questions?
Sources:
• Youtube: Videos from JetBrainsTV, Android Developers etc.
• Wikipedia: https://en.wikipedia.org/wiki/Kotlin_(programming_language)
• https://github.com/JetBrains/kotlin/releases/tag/v1.4.31
• https://www.programiz.com/kotlin-programming/examples
• https://kotlinlang.org/
• https://krify.co/advantages-and-disadvantages-of-kotlin/
• https://www.appsbee.com/blog/kotlin-advantages-disadvantages-facts-you-should-know/
• https://medium.com/quick-code/pros-and-cons-of-kotlin-for-android-app-development-c4b0f95c1324
• https://www.javacodegeeks.com/2019/04/kotlin-features-every-android-app-developer-know.html

Introduction to Kotlin

  • 1.
  • 2.
    Background and History • In2010 the developers behind JetBrains, decided that they needed to solve developer challenges much more easily than they currently were. • They needed a simpler tool than Java to work with IntelliJ IDEA, which was totally written in it. • JetBrains lead investigated alternatives like Scala, but remained unsatisfied due to it’s slow compilation time, and so they decided to invent their own language instead. • They named it Kotlin. • Their goal was also to receive an effective tool that could be used together with Java in Android app development and work wherever Java works. Another goal was to compile as quickly as Java.
  • 3.
  • 4.
    Domain and Implementation • Kotlinhas been designed to be an industrial-strength OOP language and a "better language" than Java, but still be fully interoperable with Java code so that companies can easily migrate from Java to Kotlin. • Kotlin variable declarations and parameter lists have the data type come after the variable name with a colon separator. E.g:- var count: Int = 10 • Kotlin supports inheritance like Java but classes themselves are final by default, meaning that creating a derived class is disabled unless the base class is declared with the open keyword. open class A { } class B : A() { } /* Derived class,derived from A This class cannot be inherited unless it also uses 'open' keyword */ • Kotlin is very concise in terms of code size but yet as fast as Java. Besides being largely used for app Development, it’s also used in back-end web development.
  • 5.
    Advantages of Kotlin Maximize theproductivity Works with existing Java Code Less chances of bugs Reliable
  • 6.
    Disadvantages of Kotlin Kotlin MinimalLearning Opportunities Compilation speed is slower Distinct from Java Less Kotlin professionals to recruit
  • 7.
    Evaluation Readability: • Kotlin hasa clear and concise code; hence easy to read. It is easier to read when compared to verbose languages like Java. • Kotlin focuses on readable syntaxes, so even people who are not familiar with the language can do code reviews • Kotlin also provides functional programming support with zero overhead lambdas and mapping, folding over standard Java collections.
  • 8.
    Evaluation Writability: • Kotlin isstatically typed, the developer can easily see where the class or function is applied in the code. • Instead of HTML for API docs, Kotlin supports markdown writing. This makes writing the code a pleasurable task. • Kotlin plays an important role in tension functions too as it lets you add methods to classes without modifying the source code.
  • 9.
    Evaluation Reliability: • Kotlin providesin-built null-safe operators. This indirectly increases developer productivity because it’s easy to catch nulls during compile time and there are no more worries of crashing your app at the runtime. • Kotlin allows developers to catch bugs in the compiler time and not in the runtime. • Kotlin help us to build powerful language extensions and integrate existing Java APIs with other features (of Kotlin) increased developer productivity, right from language to framework and to tools.
  • 10.
    Evaluation Cost: • Fluctuation inCompilation :Kotlin is faster than Java, there is no doubt about it. However, Java remains a clear winner when it comes to creating clean builds for Android apps. • Limited Learning Resources: limited number of resources available in the market to learn and master Kotlin. This basically leads to extra time to try and figure out how to do or build certain things in an Android app using Kotlin programming language.
  • 11.
    Special features andapplication domains Efficiency Null Safety in Kotlin Extension Functions Collections And Streams
  • 12.
  • 13.
    Program Example: • Printingan Integer entered by a user in Kotlin using Scanner: Output:
  • 14.
    Multiply Two FloatingPoint Numbers: Output:
  • 15.
    Conclusion: • With popularityKotlin is now supporting a lot of the aspects of modern-day applications. • Google recommended application for Android development. • API for using same code with minimal addition for IOS. • Kotlin is a great fit for developing server-side applications. • Kotlin for JavaScript provides ability to transpile Kotlin code, the library, and any compatible dependencies to JavaScript.
  • 16.
    Thank you Any Questions? Sources: •Youtube: Videos from JetBrainsTV, Android Developers etc. • Wikipedia: https://en.wikipedia.org/wiki/Kotlin_(programming_language) • https://github.com/JetBrains/kotlin/releases/tag/v1.4.31 • https://www.programiz.com/kotlin-programming/examples • https://kotlinlang.org/ • https://krify.co/advantages-and-disadvantages-of-kotlin/ • https://www.appsbee.com/blog/kotlin-advantages-disadvantages-facts-you-should-know/ • https://medium.com/quick-code/pros-and-cons-of-kotlin-for-android-app-development-c4b0f95c1324 • https://www.javacodegeeks.com/2019/04/kotlin-features-every-android-app-developer-know.html