Why Am I learning Kotlin?

I have always been Interested in Android Development, I started developing Android like other people, using Java, -which is still my favorite programming language but who knows what will happen after I finish this course?-.

Then Kotlin came out, and I kept hearing the phrase “A language with no-null guarantee !!”, my curiosity forced me to start learning this language.

But since I have a decent background in Java, I decided to share what I learn so other Java developers can learn Kotlin the easy way, by comparing it with what they already know.

Just to point out, I am studying Kotlin from different sources, and blogging while learning, I always take notes while learning a new skill, the only difference is that this time I will share my notes in a clean way for others to learn from them.

Also after I finish this course, I decided to create an app with Kotlin and share my progress.

Why Does Kotlin Exist?

let’s talk a bit more about why it exists because after all, there are plenty of programming languages so why do we need another one?

Well, Kotlin belongs to jet brains, which is the company behind the IntelliJ IDEA IDE. Now because of what JetBrains does, it not only sees a lot of Java code but it has a huge Java code base of its own and so it was familiar with some of the challenges of writing and maintaining a large Java code base.

So at some point, it decided to create its own, language that would be completely interoperable with Java and that would perhaps get around or overcome some of the challenges of working with a large code base written in Java and the language that is designed and implemented is Kotlin.

Now Jetbreains decided to create a language that will be easier to maintain and handle a big code like Java.
The team decided to name it after an island just like Java was named after the Indonesian island of Java (though the programming language Java was perhaps named after the coffee.)

What’s so special about Kotlin?

  • Kotlin can run anywhere Java runs, anywhere the JVM can run.
  • statically typed (The type of every expression is determined at compile time) so the compiler knows the type of every expression and variable, not at runtime, they’re all figured out at compile time!.
  • Object-oriented.
  • Uses functional programming. This means that you can use functions as values, meaning you can store them in variables, you can return them from functions and pass them as arguments to functions. ?
  • You might have heard that you can’t get a null pointer exception in Kotlin that’s not true, but it’s pretty hard to get one, You practically have to beg for one.

There is a lot of features and new stuff in Kotlin for us (Java developers) to discover, but I just wanted to give you guys a small Idea of why we are doing this.

So go grab your coffee and let’s get started!