InfoQ Homepage Web Development Content on InfoQ
-
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.
-
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.
-
Polyglot Programming with WebAssembly: A Practical Approach
WebAssembly has expanded its scope from browsers to other domains like cloud and edge computing. It uses the WebAssembly Component Model (WCM) to enable seamless interaction between libraries from different programming languages, such as Rust, Python, and JavaScript, promoting a true polyglot programming environment.
-
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.
-
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.
-
Article Contest: Write an Article for InfoQ and Win a QCon or Dev Summit Ticket
InfoQ encourages software practitioners and domain experts to submit full-length technical educational articles.
-
How to Sustain Quality and Velocity in a JavaScript or TypeScript Project?
The JavaScript language and its ever-changing ecosystem of packages and practices can make codebases quickly become hard to maintain. The resulting loss of development velocity and/or code quality can be prevented without rewriting everything from scratch, nor pausing the development of new features. In this article, we have analyzed a few best practices to help avoid that.
-
InfoQ Software Architecture and Design Trends Report - April 2023
This article provides an overview of how the InfoQ editorial team sees the Software Architecture and Design topic evolving in 2023, with a focus on what architects are designing for today.
-
Interactive Microservices as an Alternative to Micro Front-Ends for Modularizing the UI Layer
While microservices architectures are well established for the back-ends of software systems, the same cannot be said for front-ends. Interactive microservices are based on a new type of web API that Qworum defines, the multi-phase web API, where the endpoint calls may involve more than one request-response pair, also called a phase.
-
The Six Ways of Optimizing WebAssembly
While Wasm was originally designed for the browser, it turned out to be useful for embedded programming, plugins, cloud, and edge computing. For all these use cases, performance is tremendously important and is greatly impacted by file size. In this article, we’ll look at six ways to optimize Wasm for performance and file size.
-
Using Serverless WebSockets to Enable Real-Time Messaging
This article reviews some of the most common live-user experiences with examples, discusses event-driven architectures to support real-time updates, and introduces common technology choices.