InfoQ Homepage Development Content on InfoQ
-
Making Your Code Faster by Taming Branches
Most software code contains conditional branches. In code, they appear in if-then-else clauses, loops, and switch-case constructs. For better performance, modern processors predict the branch and execute the following instructions speculatively. It is a powerful optimization.
-
Maintaining Mental health on Software Development Teams
Working on a software development team often means dealing with stress, anxiousness, and tight deadlines. Research has shown developers to have considerably higher chances of experiencing mental health issues than their counterparts, who perform mechanical tasks. Check out these nuggets of wisdom for stabilizing developers’ mental health, shared by Beetroot’s HR psychologist.
-
JavaScript and Web Development InfoQ Trends Report 2020
The web development space is always an interesting one for us, with new JavaScript projects launched almost daily. Trying to decide which ones to focus on and which ones to ignore is particularly challenging. Developers can learn and gather inspiration from interesting approaches even if they do not currently use them in their daily development efforts.
-
Breaking through Three Common Engineering Myths
This article debunks three common myths that often plague engineers and may be holding them back from reaching their full potential, especially if they are a current or aspiring engineering leader. It also provides some actionable ideas you can implement right away to start making a shift in your own life away from these limiting beliefs.
-
Build Great Native CLI Apps in Java with Graalvm and Picocli
Compared to other choices, Java is not that convenient for creating simple command-line driven apps - largely due to the need to distribute a sizable runtime. The combination of GraalVM and Picocli aims to change that, by providing native compilation alongside an easy, modern way to handle command-line args.
-
Multi-Runtime Microservices Architecture
Best practices have emerged around “microservice” architecture and “12-factor app” design. As cloud, containers, and container orchestrators (.g. Kubernetes) have become popular, new solutions to address common integration principles have emerged. This article discusses the approach of using "mecha" components to provide enterprise integration pattern functionality for microservices.
-
Tutorial: Writing Microservices in Kotlin with Ktor—a Multiplatform Framework for Connected Systems
Ktor (pronounced Kay-tor) is a framework built from the ground up using Kotlin and coroutines. It is a great fit for applications that require HTTP and/or socket connectivity. These can be HTTP backends and RESTful systems, whether or not they’re architectured in a microservice approach.
-
Functional UI - a Model-Based Approach
Functional UI techniques rely on the functional relation between events processed by the user interface and the actions performed by the interface. If the user interface has discrete modes in which its behavior can be expressed simply, a modelization with state machines is an advantageous functional UI technique. This article explains the technique, its benefits and how it is used in the industry.
-
Software, Aesthetics, and Craft: How Java, Lisp, and Agile Shape and Reflect Their Culture
The software industry styles itself on architecture and construction, but rarely discusses aesthetics.
-
The Kongo Problem: Building a Scalable IoT Application with Apache Kafka
In this article, author Paul Brebner discusses the best practices for developing IoT projects using Apache Kafka and Kafka Streams technologies and how to maximize Kafka scalability.
-
Mono: from Xamarin to WebAssembly, Blazor, and .NET 5 - Q&A with Miguel de Icaza
Mono started as an open source .NET platform in 2001, being developed by Xamarin until 2011. Since the company’s acquisition by Microsoft in 2016, both Mono and .NET Core have been developed in parallel. In the light of the most recent releases, InfoQ interviewed Miguel de Icaza —the original author of the Mono project—to talk about the current state of Mono and its future in the .NET ecosystem.
-
Java 14 Feature Spotlight: Records
Java SE 14 (March 2020) introduces records (jep359) as a preview feature. Records aim to enhance the language's ability to model "plain data" aggregates with less ceremony. In this article Java Language Architect Brian Goetz takes a deep dive into the feature.