Hello World in Kotlin

Hello World in Kotlin Featured Image

With the current trend of new language articles in the Hello World in Every Language series, I figured we might as well cover one of the more popular ones. In this article, we’ll be tackling Hello World in Kotlin, a language which first debuted in 2011.

Table of Contents

Kotlin Background

Since Kotlin is a bit more popular than most of the newer languages, it actually has a Wikipedia pageOpens in a new tab.. So, we’ll use that to learn more.

According to Wikipedia, Kotlin is a programming language that runs on the Java Virtual Machine. In other words, Kotlin compiles down to Java bytecode. In fact, developers have the option to decide which version of Java bytecode they want. In addition to the JVM, Kotlin can also compile down to JavaScript.

In terms of features, Kotlin offers an aggressive form of type inference. In other words, the language supports static type checking on implicit types. Of course, the benefit is a far less verbose syntax than Java.

Of course, I think my favorite feature is extension methods. In Kotlin, we can take a class that already exists and tack on our own methods without creating an extension class. For instance, Wikipedia shares the following snippet:

fun String.lastChar():  Char = this.get(this.length - 1)

In this example, the lastChar method is added to the String class. How cool is that?

Hello World in Kotlin

Anyway, let’s get down to business—Hello World in Kotlin:

package hello

fun main(args: Array<String>) {
  println("Hello, World!")
}

Now, time to dig in!

On the first line, we have the package declaration. Like most languages, this basically declares the package or module name of this file. If anyone needed to use a function in this file, they could access it via the package name.

Next, we have the function definition. In this first line, we can see we define the main function which receives an array of Strings as input. In a lot of languages, types are declared in type-var order, not in Kotlin. In Kotlin, we declare the variable name before giving it a type.

Finally, we print Hello World in Kotlin. Like many languages, we use a simple call to the println function, so no surprises there.

How to Run the Solution

At this point, we probably want to actually run the Hello World in Kotlin code snippet. Perhaps the easiest way to do so is to leverage the online Kotlin editorOpens in a new tab..

Alternatively, we can use the latest standalone compilerOpens in a new tab.. Of course, we’ll want to get a copy of Hello World in KotlinOpens in a new tab. while we’re at it. With both in hand, all we need to do is navigate to the folder containing our files and run the following:

kotlinc hello-world.kt -include-runtime -d hello-world.jar
java -jar hello-world.jar

Apparently, the standalone Kotlin compiler compiles Kotlin down to a runnable jar which we can then execute using the Java Runtime Environment. Of course, I haven’t tried it. After all, I pulled these directions from Kotlin documentationOpens in a new tab.. Let me know if this works in the comments.

Sample Programs in Every Language

Well, that’s it! Thanks again for stopping by.

Up next, I’d like to keep the new language trend going. In fact, I’m interesting in sharing some information on Pyret, a fun little educational language which first appeared in 2012.

At any rate, if you enjoyed this article, don’t forget to share it. Also, feel free to give your recommendations for future articles in the comments.

Sample Programs in Every Language (44 Articles)—Series Navigation

For 100 Days of Code, I’ve decided to implement a few sample programs in as many languages as possible. Each implementation details a brief history of the language and a description of the code.

The plan for the series is to explore the major general-purpose language like Java, Python, C, C++, and C#. From there, we’ll take a look at some sample programs in web development languages like Ruby, PHP, and JavaScript. As we continue, we’ll cover proprietary languages like Swift and Objective-C. Eventually, we’ll start to tackle less popular languages like Rust, x86, and Verilog. Finally, we’ll play around with some of the esoteric languages like Brainf*ck and LOLCODE.

Who knows? Maybe the Sample Programs in Every Language series will become so popular it’ll never end. To help this series grow, consider sharing it on social media with your friends. Or, if you have a language you want to see, drop your suggestion in the comments.

Jeremy Grifski

Jeremy grew up in a small town where he enjoyed playing soccer and video games, practicing taekwondo, and trading Pokémon cards. Once out of the nest, he pursued a Bachelors in Computer Engineering with a minor in Game Design. After college, he spent about two years writing software for a major engineering company. Then, he earned a master's in Computer Science and Engineering. Today, he pursues a PhD in Engineering Education in order to ultimately land a teaching gig. In his spare time, Jeremy enjoys spending time with his wife, playing Overwatch and Phantasy Star Online 2, practicing trombone, watching Penguins hockey, and traveling the world.

Recent Posts