Kotlin on the JVM – Bytecode Generation

Kotlin on the JVM – Bytecode Generation

Functional Programming, Kotlin, Software Development
Kotlin on the JVM - How can it provide so many features? Introduction What exactly is a "JVM language", what is Kotlin? Isn’t only Java meant to run on the JVM? Kotlin provides many features that aren’t available in Java such as proper function types, extension functions and data classes. How is this even possible? I’ve taken a deeper look at how Kotlin works under the hood and what "JVM language" actually means. We'll be having a look at Kotlin's bytecode generation. If you also thought about these things already, this article should bring some light into the darkness :) For a more detailed introduction to Kotlin’s features you can have a look at my Getting Started Guide. (more…)
Read More
Kotlin Sealed Class – An Explanation

Kotlin Sealed Class – An Explanation

Kotlin, Software Development, Uncategorized
Today I came across the Kotlin Sealed Class which I had never heard of before. After some research, I found that this concept is nothing new and is also available in Scala for example. So, yet another Scala feature JetBrains considered relevant and suitable for Kotlin? I like that :) Read this post if you're interested in more Kotlin features. Actually, this is a quite simple feature, which I'm going to explain in the following. Kotlin Sealed Class - Feature Explanation A sealed class can be subclassed and may include abstract methods, which means that sealed classes are abstract implicitly, although the documentation doesn't clearly say so. To actually make a class "sealed" we have to put the sealed modifier before its name, as we can see here: sealed class MyClass Restriction The…
Read More
Kotlin Generics and Variance (Compared to Java)

Kotlin Generics and Variance (Compared to Java)

Java, Kotlin, Software Development
This article covers the concepts of Generics and Variance in Kotlin and compares it to Java. Kotlin Generics differ from Java's in how users can define their type of variance. As opposed to Java, Kotlin allows defining variance on declaration-site, whereas Java only knows use-site variance. Kotlin Generics - What is Variance? Many programming languages support the concept of subtyping, which allows implementing hierarchies that represent relationships like "A Cat IS-An Animal". In Java, we can either use the extends keyword in order to change/expand behavior of an existing class (inheritance) or use implements to provide implementations for an interface. According to Liskov’s substitution principle, every instance of a class A can be substituted by instances of its subtype B. The word variance, often referred to in mathematics as well, is used…
Read More
Setup Vert.x Application written in Kotlin with Gradle – Kotlin Reactive Programming

Setup Vert.x Application written in Kotlin with Gradle – Kotlin Reactive Programming

Java, Kotlin, Software Development
I decided to write a Vert.x application in combination with Kotlin in a simple example because I’m really interested in Reactive Programming and love to use Kotlin. In this post, I will give some basic information on Vert.x as a tool set for writing reactive applications on the JVM and also introduce Kotlin a bit. In the end, I want to demonstrate how this application can be set up in Gradle. (more…)
Read More
Java Oracle Certification

Java Oracle Certification

Certificate, Java, Software Development, Uncategorized
Java Oracle Certification - Should you consider it? I took the OCA SE 7 Programmer I Certification exam two years ago in 2015, which I passed successfully with a score of 86%. This year I will be taking the second exam of this certification path called OCP SE 7 Programmer II. In this post, I want to reflect why taking these kind of exams isn't a waste of time but can be a great advantage for you as a Java developer. Of course, being certified in whatever area will increase your chances of getting a better job because certificates represent some kind of guaranty of your skills to a company. No doubt about that. (more…)
Read More