Kotlin is a programming language which you can use for multi-platform mobile app development, server-side development, Frontend and most importantly Android development.
2. 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.
4. 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.
7. 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.
8. 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.
9. 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.
10. 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.
11. Special features and application domains
Efficiency Null Safety in
Kotlin
Extension
Functions
Collections
And Streams
15. 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.
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