<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Kotlin on JAVAPRO International</title><link>https://javapro-en.svenruppert.com/tags/kotlin/</link><description>Recent content in Kotlin on JAVAPRO International</description><generator>Hugo</generator><language>en-US</language><lastBuildDate>Thu, 07 May 2026 07:00:01 +0000</lastBuildDate><atom:link href="https://javapro-en.svenruppert.com/tags/kotlin/index.xml" rel="self" type="application/rss+xml"/><item><title>Kotlin kontra Java - Part 3 - Language for Interop</title><link>https://javapro-en.svenruppert.com/kotlin-kontra-java-part-3-language-for-interop/</link><pubDate>Thu, 07 May 2026 07:00:01 +0000</pubDate><guid>https://javapro-en.svenruppert.com/kotlin-kontra-java-part-3-language-for-interop/</guid><description>&lt;p&gt;When you start a new project on the JVM, should you pick Java or Kotlin? Why not both?&lt;/p&gt;
&lt;p&gt;You can use any Java library you want in Kotlin, you can even co-write your software in both languages (e.g. one team I work with writes their JUnit tests in Kotlin, their main code in Java) and migrate to Kotlin or back to Java over time. &lt;a href="https://kotlinlang.org/docs/java-interop.html"&gt;Kotlin is designed with Java interoperability in mind&lt;/a&gt;, because JetBrains wanted to migrate their IDEs (IntelliJ IDEA, WebStorm, etc.) incrementally to the language. But how does that work? What does Kotlin do, so that interop to this degree becomes possible?&lt;/p&gt;</description></item><item><title>Kotlin kontra Java - Part 2 - MultiPlatform</title><link>https://javapro-en.svenruppert.com/kotlin-kontra-java-part-2-multiplatform/</link><pubDate>Wed, 22 Apr 2026 07:45:01 +0000</pubDate><guid>https://javapro-en.svenruppert.com/kotlin-kontra-java-part-2-multiplatform/</guid><description>&lt;p&gt;When you start a new project on the JVM, should you pick Java or Kotlin?&lt;/p&gt;
&lt;p&gt;You might have a preference based on the ecosystem — the tooling around it, who we can ask for help, and the libraries we can use — which we discussed in &lt;a href="https://javapro.io/2026/04/16/kotlin-kontra-java-part-1-ecosystem/"&gt;part 1&lt;/a&gt; of this article series. Or you might have a preference based on the business modeling capabilities of Java or Kotlin, which we will show in &lt;a href="https://javapro.io/2026/05/07/kotlin-kontra-java-part-3-language-for-interop/"&gt;part 3&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Kotlin kontra Java - Part 1 - Ecosystem</title><link>https://javapro-en.svenruppert.com/kotlin-kontra-java-part-1-ecosystem/</link><pubDate>Thu, 16 Apr 2026 07:00:00 +0000</pubDate><guid>https://javapro-en.svenruppert.com/kotlin-kontra-java-part-1-ecosystem/</guid><description>&lt;p&gt;When you start a new project on the JVM, should you pick Java or Kotlin?&lt;/p&gt;
&lt;p&gt;Kotlin is used by Amazon, Atlassian, Duolingo, Google, JetBrains, Meta, Netflix, Uber and many more. Java is used by, well, &lt;a href="https://blogs.oracle.com/connect/25-years-java-technology-community-family"&gt;„more than 3 billion devices“&lt;/a&gt;. Which one provides the biggest benefit, which one can give us an edge, which one should we pick?&lt;/p&gt;
&lt;p&gt;After 20 years of building systems in Java and 8 years of doing the same in Kotlin, I’ve seen Kotlin earn its reputation as a natural evolution of Java. Rightfully so. Much of what we need can be expressed very cleanly with little verbosity.&lt;/p&gt;</description></item><item><title>What I (Still) Miss: My Most Wanted Java Features</title><link>https://javapro-en.svenruppert.com/what-i-still-miss-my-most-wanted-java-features/</link><pubDate>Tue, 27 Jan 2026 07:00:01 +0000</pubDate><guid>https://javapro-en.svenruppert.com/what-i-still-miss-my-most-wanted-java-features/</guid><description>&lt;h2 id="overview"&gt;Overview&lt;/h2&gt;
&lt;p&gt;Java, the grandfather of JVM languages, continues to evolve and is becoming richer in features with each update, thus steadily improving the productivity of developers. In parallel with this evolution, other languages have popped up with their own sets of features (and often with more freedom to experiment than Java). Some of these features have made their way into Java, others will be added eventually, and others may continue to be debated for quite some time.&lt;br&gt;
This article is written from the perspective of a Java programmer (and teacher) who also writes plenty of Scala (and a few other languages). Through code examples, it discusses a few of the features I miss the most when returning to Java, namely inferred semicolons, tuples, named arguments, local functions, tail-recursion optimization, type aliases, opaque types, and variance annotations.&lt;/p&gt;</description></item><item><title>The Rise of JVM Languages: Kotlin, Scala, Groovy, and More</title><link>https://javapro-en.svenruppert.com/the-rise-of-jvm-languages-kotlin-scala-groovy-and-more/</link><pubDate>Thu, 09 Oct 2025 07:00:00 +0000</pubDate><guid>https://javapro-en.svenruppert.com/the-rise-of-jvm-languages-kotlin-scala-groovy-and-more/</guid><description>&lt;h2 id="introduction"&gt;Introduction&lt;/h2&gt;
&lt;p&gt;As Java marks its 30th anniversary in 2025, it remains a foundational force in software development. However, one of its most enduring contributions is not just the language itself but the Java Virtual Machine (JVM). The JVM has paved the way for numerous modern programming languages by providing a stable, efficient, and interoperable runtime environment.&lt;/p&gt;
&lt;p&gt;Over the years, developers have embraced JVM-based languages. These languages offer alternative syntax styles, functional programming paradigms, and dynamic scripting capabilities. At the same time, they maintain seamless compatibility with Java. This article explores the growth of JVM languages. It highlights Kotlin, Scala, and Groovy, along with other influential options such as Clojure, JRuby, and Jython. These languages have extended the reach of the JVM, empowering developers with increased flexibility and productivity.&lt;/p&gt;</description></item><item><title>Kotlin Multiplatform's Cross-Platform Brilliance at Norway's Nearly 400-Year-Old National Postal Service</title><link>https://javapro-en.svenruppert.com/kotlin-multiplatforms-cross-platform-brilliance-at-norways-nearly-400-year-old-national-postal-service/</link><pubDate>Thu, 01 May 2025 08:56:32 +0000</pubDate><guid>https://javapro-en.svenruppert.com/kotlin-multiplatforms-cross-platform-brilliance-at-norways-nearly-400-year-old-national-postal-service/</guid><description>&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=nAkjwyQ8QOI&amp;amp;list=PLFeSAZzYdUodZjQy6a3pCBl43UUem8_E3&amp;amp;index=19"&gt;&lt;figure class="post-figure"&gt;
 &lt;img src="https://javapro-en.svenruppert.com/uploads/2025/04/Magazin-Artikel-Banner-2-1024x214.jpg" alt="" loading="lazy" decoding="async"&gt;
 
 
 
&lt;/figure&gt;
&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;When we think of Norway’s National Postal Service, we think of legacy, tradition, and history – a service that has been delivering letters, packages, parcels, and sometimes even joy, for nearly 400 years.\&lt;/p&gt;
&lt;p&gt;&lt;br&gt;
But what happens when such an ancient institution faces the modern challenges of software development and cross-platform integration? How does a company like Posten Bring navigate the world of fragmented business logic across multiple platforms and systems?&lt;br&gt;
&lt;br&gt;
But before I answer these questions, I want to ask &lt;strong&gt;YOU&lt;/strong&gt; - Have you ever had a complex business rule-set problem? You know the kind where you have business rules (logic) spread across multiple platforms, systems, and applications? Some of them might even be alter egos of the same rule hiding in different apps. You never know which one might turn up where; there is no single source of truth, solving errors takes hours of debugging, and making changes requires (oftentimes) painful coordination across teams and applications (ugh).&lt;br&gt;
&lt;br&gt;
We faced this exact challenge at Posten Bring As - Norwegian National Postal Service, founded way back in 1647 - a 378-year-old institution with software spanning more generations than most families! Our business logic was scattered across platforms, some of which were as ancient as the company itself (okay, maybe not that old, but close enough)!&lt;br&gt;
&lt;br&gt;
In this article, I’m spilling the tea. We will discover how the team at a century-old Norwegian postal services giant tackled modern challenges with cutting-edge technology.&lt;br&gt;
&lt;br&gt;
I’m going to walk you through our journey with Kotlin Multiplatform, including the hurdles we encountered, the lessons we learned, and why KMP is a game-changer for anyone grappling with similar challenges.&lt;br&gt;
&lt;br&gt;
This article is for you if troublesome &amp;amp; unruly business logic keeps you up at night &amp;amp; you want that to end NOW. It is also for you if you like to hear a good story.&lt;/p&gt;</description></item></channel></rss>