InfoQ Homepage Java Content on InfoQ
-
How Functional Programming Can Help You Write Efficient, Elegant Web Applications
Many things can make software more challenging to understand and, consequently, to maintain. One of the most complex and problematic causes is managing internal mutable states. When the internal state is poorly managed, the software behaves unexpectedly, leading to bugs and fixing, which introduces unnecessary complexity. FP solves this problem by providing immutability mechanisms and more.
-
Embracing Reactive Applications on JVM: a Deep Dive into Modern I/O Models and Vert.x
This article discusses the shift from blocking to non-blocking and asynchronous I/O models, highlighting their role in modern software development. It focuses on Vert.x, a toolkit for building reactive applications on the JVM, featuring the Multi-Reactor Pattern, Event Bus, and Verticles. Vert.x is ideal for cloud, Big Data, and IoT, as shown through benchmarks and real-world examples.
-
WebAssembly, the Safer Alternative to Integrating Native Code in Java
Developers typically choose between porting the code or dynamic linking to run native code on the JVM. This article examines these approaches, using SQLite as an example, and introduces a third option: Chicory Wasm runtime. This alternative combines the advantages of traditional methods while addressing their limitations, potentially offering a more secure solution to integrate native code.
-
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.
-
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.
-
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.
-
Modernizing Testing Practices for Jakarta EE Projects
This article focuses on the increasing adoption of data-driven testing in Java enterprise applications and sheds light on the Data and NoSQL Jakarta specifications. It highlights the significance of modern testing libraries such as JUnit Jupiter and AssertJ and emphasizes the importance of container-based frameworks like Testcontainers in enhancing testing practices.
-
Getting Technical Decision Buy-In Using the Analytic Hierarchy Process
Making large, important technical decisions is a critical aspect of a senior individual contributor's role. This article examines how Comcast has employed the Analytic Hierarchy Process (AHP), a decision-making framework developed in the 1970s, and adapted it for making technical and non-technical decisions both large and small.
-
Spring Boot 3.2 and Spring Framework 6.1 Add Java 21, Virtual Threads, and CRaC
Spring Framework 6.1 and Spring Boot 3.2 run on Java 21. They make concurrent programming simpler and more efficient with virtual threads, as well as improving reactive programming and Kotlin coroutines. For “Scale to Zero” startup time reduction, the OpenJDK project CRaC received initial support, while the existing GraalVM Native Image integration got faster through a GraalVM release.
-
Architecting with Java Persistence: Patterns and Strategies
Explore a spectrum of Java persistence patterns, from data-oriented to domain-centric. Delve into Driver, Mapper, DAO, Active Record, and Repository for robust architectural foundations.
-
Helidon 4 Adopts Virtual Threads: Explore the Increased Performance and Improved DevEx
This article delves into Helidon 4's integration of Java 21's virtual threads from Project Loom, marking a significant shift in Java development. It highlights the transition from a reactive to an imperative model, simplifying coding and debugging. Helidon 4 claims improved performance over previous versions and some external frameworks, balancing performance with simplicity.
-
InfoQ Java Trends Report - November 2023
This report provides a summary of how the InfoQ Java editorial team and several Java Champions currently see the adoption of technology and emerging trends within the Java and JVM space in 2023. 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.