Instruction 1

Kotlin Programming Language

Kotlin is a statically typed programming language developed and open-sourced by JetBrains. Statically typed means that before the project is prepared to run on your computer, the variable’s type must be known.

There are other languages called dynamically typed, which let you change your profile byline from 2.2360678 to "Kodeco is the best" and expect the program to understand what you mean while the program is running. The second byline is better, don’t you think? :]

Generally, Kotlin is extremely appreciated among Java developers since it’s safe, concise, and interoperable with Java and other languages. Java runs on the JVM (Java Virtual Machine), a virtual machine that enables a computer to run Java programs. However, Kotlin is interoperable with Java and works with numerous other platforms. You can easily mix Kotlin with Java code. This means you can keep your Java programs while gradually introducing Kotlin.

Fig. 2.1 - Kotlin Logo
Fig. 2.1 - Kotlin Logo

Kotlin’s standard library contains a vast amount of code that interfaces with the underlying operating system. However, Kotlin does not communicate directly with the operating system. It communicates through other programs and tools that specialize in converting the instructions from Kotlin to the underlying platform and vice versa.

Kotlin has an array of tools that enable the standard library to function on more platforms, known as the Kotlin Multiplatform project. Thanks to these tools, Kotlin can run on Android, iOS, Desktop (JVM), Web (based on Wasm/Javascript), watchOS, and tvOS. This is one of the reasons why Kotlin is so special despite the existence of over seven hundred programming languages.

Kotlin is an object-oriented language, but you can use it for functional programming, making it suitable for a wide range of programming styles. Thanks to its functional programming capabilities, Kotlin is used for server-side development, web development, multiplatform development, and even data science.

Note: Object-oriented programming creates software based on data and the methods (functions) that work on that data. Functional programming creates software based on functions, whether basic functions or functions composed of other functions.

Kotlin is less verbose than Java and has many modern features available in other programming languages. One of the best things about Kotlin is null safety, which means it’s easier to develop applications that are less likely to result in errors from using null data. This is a common issue in most programming languages. In subsequent lessons, you’ll learn more about this.

With this brief introduction to Kotlin, you now know that you need a software development environment to build programs with any programming language. Keep reading to learn how you can make use of Kotlin to build programs.

Software Development Environment

A software development environment is a workspace with tools for building software applications. Depending on the type of application you’re building, you’ll need different tools to write your program, test it, create an artifact, and distribute it to others.

A basic software environment provides a platform that allows you to write your code and execute it in some particular programming language. You can achieve this in many different ways. You may use a simple text editor, console, shell, or other utility, application, or online service.

For Kotlin, there are many different ways to write and run your programs. Each of them is designed differently. They have a set of features that make them more suitable under specific situations.

There are specially built applications that offer a suite of features necessary for building simple to complex programs. These are called Integrated Development Environments, or simply IDEs. As you go further in this MMLP, you’ll build applications with IDEs. In the next section, you’ll see some of these tools, how to access them, and when to use them.

See forum comments
Download course materials from Github
Previous: Introduction Next: Instruction 2