InfoQ Homepage Programming Content on InfoQ
-
Java Virtual Threads: a Case Study
This article explores JDK 21's virtual threads, comparing their performance with Open Liberty's thread pool. It covers key findings like throughput, ramp-up times, and memory footprint. Despite advantages, virtual threads showed unexpected performance issues, especially in CPU-intensive workloads. This analysis guides Java developers on when and how to use virtual threads in their applications.
-
The AI Revolution Will Not Be Monopolized
Large language models have significantly transformed the field of artificial intelligence. The fundamental innovation behind this change is surprisingly straightforward: make the models a lot bigger. With each new iteration, the capabilities of these models expand, prompting a critical question: are we moving toward a black box era where AI is controlled by a few tech monopolies?
-
Platform as a Runtime - the Next Step in Platform Engineering
As systems become larger and more complex we need to take the concepts of platform engineering to a higher level – to the code level – by creating platforms and abstractions that will reduce cognitive load, help simplify and accelerate software development, and allow for easy maintenance and upgrades to the platform. Let’s move from “platform” to “Platform as a Runtime”.
-
Ownership and Human Involvement in Interface Design
Good interface design is a complex engineering challenge with many dimensions. This article explores the key dimensions of Ownership and whether a Human is involved.
-
Using Generative AI in Software Project Management to Bridge Domains and Accelerate Productivity
Gen AI Assistants play to the strengths of professionals with a breadth of experience, particularly software developers who can describe what they want the LLM to complete and critically evaluate the result. These tools enable us to swiftly cross divides of domain language and scale large repetitive tasks down to interesting ones on a human scale.
-
Zero to Performance Hero: How to Benchmark and Profile Your eBPF Code in Rust
In this article, we will walk through creating a basic eBPF program in Rust. We will intentionally include a performance regression and then use profilers to locate and fix the bug. We will also create benchmarks and track them using a continuous benchmarking tool for CI.
-
Elevating Kubernetes Logging for Enhanced Observability
In this article, we will explore the challenges, strategies, and best practices that will help you achieve seamless log management in your Kubernetes environment.
-
Delivering Great Developer Experiences with Platform Engineering
Companies increasingly turn to platform engineering to help scale their development teams and increase developer experience for engineer efficiency. In this virtual panel, we’ll discuss how teams build platforms, set others up for success, work with developers who use their platform, measure their progress, and adapt to new challenges.
-
Streaming HTML – Asynchronous DOM Updates without JavaScript
Web applications provide the best user experience when pages load quickly and display additional data as it becomes available. Developers typically use JavaScript to load data asynchronously, but this adds complexity when compared to server-side rendering. We review a technique that uses the Shadow DOM with HTTP streaming to load pages quickly and display data asynchronously without JavaScript.
-
Optimizing Spring Boot Config Management with ConfigMaps: Environment Variables or Volume Mounts
Spring Boot stands out as a viable framework for its agility and streamlined workflow. Yet, effective configuration management remains a pivotal factor influencing deployment efficiency and ongoing maintenance. ConfigMaps, a feature in Kubernetes, provides configuration strategies for Spring Boot applications.
-
Experimenting with LLMs for Developer Productivity
This article describes an experiment that sought to determine if no-cost LLM-based code generation tools can improve developer productivity. The experiment evaluated several LLMs by generating unit tests for some open-source code and measuring the code coverage as well as the manual rework necessary to make the tests work.
-
You Don’t Need a CSS Framework
Developers use CSS frameworks to reduce boilerplate, increase quality, and drive consistency. However, these gains are hard to maintain as an application’s codebase matures. Developers must configure and override the framework to accommodate changes. Instead of using a CSS framework, developers should write their own custom CSS. CSS has evolved enough that this became the best option.