Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage JVM Languages Content on InfoQ

  • Java Champion James Ward on the State of Java and JVM Languages

    James Ward is a Java Champion and Google’s Kotlin product manager. In a podcast, Ward agreed that “people are still trapped in the Java world” and called default mutability in Java the “trillion-dollar mistake”. In this interview, he speaks about the state of Java, JVM languages, mutability, and functional programming.

  • Gatling vs JMeter - What to Use for Performance Testing

    A performance tool with a graphical interface will probably be easier to use at the beginning, but the idea of a performance test as code is the future. Tests are readable and much easier to maintain. Many people are skeptical about Gatling because it requires learning a new programming language - Scala. However, Java is supported with the release of Gatling 3.7.

  • Kotlin at Ten. Interview with JetBrains’ Roman Elizarov

    JetBrains unveiled Kotlin in July 2011, aiming to create a modern, general-purpose programming language running on the JVM as well as on the Web. Kotlin has quickly seen huge adoption, especially for Android app development. InfoQ has taken the chance to speak with Kotlin project lead at JetBrains Roman Elizarov to learn more about the origins of the language and its future.

  • Enhanced Streams Processing with Kotlin’s Sequence Interface

    Data structures are an intrinsic part of every programming language, yet Java’s Stream interface lacks vital operations and its complex approach to extensibility gave rise to alternative libraries such as jOOλ and Guava. This article provides an alternative approach that can be easily integrated in any Java project using Kotlin's Sequence interface.

  • Donkey: a Highly-Performant HTTP Stack for Clojure

    Donkey is the product of the quest for a highly performant Clojure HTTP stack aimed to scale at the rapid pace of growth we have been experiencing at AppsFlyer, and save us computing costs. In this article, we’ll briefly outline the use-case for a library like Donkey and present our benchmarks. Finally, we will discuss Clojure and immutability, and some of our design decisions.

  • Java InfoQ Trends Report—September 2020

    This article provides a summary of how the InfoQ editorial team currently sees the adoption of technology and emerging trends within the Java space in 2020. We focus on Java the language, as well as related languages like Kotlin and Scala, the Java Virtual Machine (JVM), and Java-based frameworks and utilities.

  • Tutorial: Writing Microservices in Kotlin with Ktor—a Multiplatform Framework for Connected Systems

    Ktor (pronounced Kay-tor) is a framework built from the ground up using Kotlin and coroutines. It is a great fit for applications that require HTTP and/or socket connectivity. These can be HTTP backends and RESTful systems, whether or not they’re architectured in a microservice approach.

  • Groovy 3.0 Adds New Java-Like Features

    Groovy 3 adds several new features similar to equivalents in Java, including the enhanced for loop, try-with-resources and lambda expressions.

  • A Bottom-Up View of Kotlin Coroutines

    Recently coroutines have become popular as an alternative to Reactive Programming on the JVM. In many cases the costs of restructuring your code around functional operations for reactive streams outweigh the benefits, so coroutines have emerged, initially for Android, as an alternative solution. This deep dive explores how Kotlin's implementation works under the hood.

  • Java InfoQ Trends Report - July 2019

    The InfoQ Java trend report provides an overview of technology adoption and commentary on how we see the Java and JVM-related space evolving in 2019. Key developments include the release of Java 13, the rise of non-HotSpot JVMs and the evolution of GraalVM, and the changing landscape of Java microservice frameworks.

  • Kotlin Multiplatform for iOS Developers

    Leveraging the similarities between Swift and Kotlin, Kotlin Multiplatform makes it easy to create cross-platform components that you can reuse across iOS and Android projects. This article will lead you through all the steps required to set up Android Studio to build a framework you can import into Xcode.

  • Rewriting an API Gateway Service from Clojure to Golang: AppsFlyer Experience Report

    AppsFlyer processes nearly 70+ billion HTTP requests a day, and is built using a microservices architecture style. The entry point to the system that wraps all of the frontend services is a mission-critical (non-micro) service called the API Gateway. This article is an experience reporting of migrating from a Clojure-based gateway to a newly designed Go-based implementation.