Skip to main content

VirtusLab's ArticlesRSS

Artificial Intelligence|Jul 14, 2025

Providing library documentation to AI coding assistants

If you are using AI coding assistants or agents, they will only be as helpful as their knowledge of the libraries you use. LLMs know a lot about the world from their training set, but that might not include a library's documentation at all or include an older version. Agents can browse the Internet looking for more recent information, but this might not be precise enough. For instance, the web might be littered with outdated examples, and the latest information might only be available in the official docs. Hence, if you are a library author, how do you prepare your documentation for consumption by coding agents?

colorfull library
Backend Engineering|May 7, 2025

Why Java on ARM is gaining momentum

Java has come a long way on ARM. Runtime improvements, smarter garbage collectors, and better vector performance now make it a solid fit. CI/CD pipelines work without extra effort. This guide walks through: - real-world benchmarks - examples from AWS and Google Cloud - gives hands-on advice for tooling, deployment, and compatibility If you're weighing cost, speed, or sustainability, this will help you judge whether a move to ARM makes sense—and how to pull it off cleanly.

Why_Java_on_ARM_Is_Gaining_Momentum_image
Scala|Jul 18, 2024

Scala to WebAssembly: How and Why

WebAssembly (Wasm) is a binary instruction format that offers a compact and efficient way for executing code across diverse environments, including the web. Previously, Scala couldn’t directly compile to Wasm, but now Scala.js will support Wasm as its new linker backend, thanks to the collaborative efforts of the ScalaCenter and VirtusLab. This development may raise a question: why does Scala aim to compile to Wasm, and how is this achieved?

scala and web assembly logos
Scala|Jun 14, 2024

Overcoming macro annotations

Scala 2 accumulated multiple amazing features that either improve the readability of the code, make it easier to write and maintain, or reduce the amount of boilerplate. Even though most of them have become an integral part of the language, some were only treated as experimental—their goal was to discover new language capabilities. Still, it was treated as a temporal and prone to change solution.

Scala logo on green
Backend Engineering|Jan 30, 2019

On the missing package private — or why Java is better than Kotlin in this regard

Kotlin lacks Java’s package-private visibility, exposing everything by default unless explicitly marked, which can bloat APIs and hinder encapsulation. The author praises Java’s manifest-based modular exports for making visibility decisions more conscious and centralized.