Languages & Runtimes
We're actively working on this page.
Scope
This section covers the core programming languages used for development and the runtime environments (e.g., JVM) they execute on. It specifies which languages and versions are standard, which are being explored, and which are being phased out for our back-end and mobile applications.
Overview
Technologies Breakdown
Java 21 (LTS) ADOPT
As our designated Long-Term Support (LTS) version, Java 21 is the standard for all new back-end projects. It provides stability, long-term security updates, and access to modern language features that enhance developer productivity and code quality.
Kotlin (for Mobile) TRIAL
We are actively trialing Kotlin in the migration of a major mobile application from Java. Its modern syntax and safety features are proving valuable, and this initiative is successfully building our internal Kotlin expertise.
Kotlin (for Back-end) ASSESS
Leveraging our growing in-house skills from mobile development, we are assessing Kotlin for new back-end services. Its seamless Java interoperability, concise syntax, and excellent support within the Spring ecosystem make it a strong candidate for future microservice development.
Java 25 (LTS) ASSESS
With its scheduled release in September 2025, Java 25 is the next Long-Term Support (LTS) version. We are placing it in Assess to proactively evaluate its key features, particularly the maturation of Virtual Threads (Project Loom) and other language enhancements. The goal is to build proofs-of-concept to understand the performance benefits for our applications and the effort required for a potential migration from our current standard, Java 21.
Java 8/17/11 (LTS) HOLD
Java 8/17/11 is restricted to legacy projects currently in maintenance. While stable, it lacks significant language improvements available in modern LTS versions. No new projects should be started on Java 8, and existing applications should be considered for future migration to Java 21.