Kotlin is a new JVM based programming language that was fisrt conceived and developed by Jetbrains. By design, Kotlin is a pragmatic, concise, safe and has a focus on interoperability with existing java code.
Just like java, Kotlin is a powerful language that can be used to build various types of applications on various hardware platforms. You can use Kotlin to make:
Applications that run on the server. These type of apps can be:
Mobile applications that run anywhere java can run e.g
Kotlin can also be used to make desktop softwares like school management systems etc.
Clearly, Kotlin is a powerful and general purpose language that can run in many platforms out there.
In the programming domain, whenever we talk about static typing, we basically mean that the compiler will infer every expression and variables in your program at compile time as opposed to at runtime. The compiler can ensure that you have assigned the correct data types to variables and that your methods and variables are actually defined in their classes.
In statically typed languages, common mistakes like spelling and other syntax errors can be detected before the program is actually run.
Other statically typed languages include java and C++. However, unlike these languages, Kotlin doesn't force you to specify the variable types explicitly. The compiler will automatically infer the data type of variable based on the data you assign.
In the above example, the compiler will for instance determine that we have used a String data type without us specifying it explicitly. This ability is calledtype inference.
Statically typed languages have the advantage over dynamically typed languages with regards to performance, reliability and better tool support.
The two main programming paradigms currently are object oriented programming style and functional programming style. Objects are the first class citizens in Object Oriented programming while Functions are the first class citizens in Functional Programming paradigm.
Majority of people are probably familiar with OOP unlike Functional Programming, however, functional programmer has also some benefits especially in some given scenarios.
The two main concepts to grasp in functional programming are:
Yes, free as in free, you don't have to pay any money to use Kotlin. It's also open source and available in github under the Apache2 license.