InfoQ Live Logo

The Software Architects' Newsletter
November 2023
View in browser

Welcome to the InfoQ Software Architects' Newsletter! Each month, we bring you essential news and experience from industry peers on emerging patterns and technologies.

This month, we focus on "state of the art in enterprise programming languages". This topic's technologies, patterns, and practices span the entire "diffusion of innovation" graph in our 2023 Software Architecture and Design InfoQ Trends Report and editorial coverage graph for 2023. We see Java 21 and .NET 8 picked up by innovators and early versions of the platforms and frameworks ranging from early adoption to late majority. Web Assembly is in the early adoption phase, and functional programming has crossed the chasm to the early majority.

Key challenges remain in this space, including when and how to adopt additional languages like Go, Kotlin, TypeScript, and more. Enterprises adopting microservices have often added multiple new languages into their tech stacks. As platforms and developer toolchains evolve, they require constant attention and evaluation.

News

What’s New in C# 12: Primary Constructors, Collection Expressions, and More

As part of the recent .NET 8 launch, Microsoft unveiled the new features of C# 12, the latest version of the popular .NET programming language. As announced, the most notable improvements include collection expressions, primary constructors for all classes and structs, syntax to alias any type, and default parameters for lambda expressions.

Latest JDK 22 Early-Access Builds Available

As reported in a recent InfoQ weekly Java roundup, the latest JDK 22 early-access builds are being made available.

In related news, JEP 460, Vector API, has been promoted from Proposed to Target to Targeted for JDK 22. JEP 459: String Templates has been promoted from Candidate to Proposed to Target for JDK 22.

Kotlin Multiplatform Reaches Stability

Kotlin Multiplatform, a solution created by JetBrains to enable the use of Kotlin to share native code across different platforms, is now stable and ready for production use, says JetBrains engineer Ekaterina Petrova.

Initially released in 2022 as a beta, Kotlin Multiplatform allows developers to create native applications on each supported platform. Having reached stability, the solution now features a stable API that will evolve following compatibility rules, simplified project configuration, and better interoperability with Objective-C and Swift. In addition, says Petrova, it brings faster build times and other performance improvements.

Mojo Language SDK Available: Mojo Driver, VS Code extension, and Jupyter Kernel

The Mojo SDK is now available for developers. This latest release of the "high performance 'Python++' language for computing" contains the Mojo driver, the Visual Studio Code extension, and the Jupyter kernel. For now, the SDK is available for MacOS and Linux.

Earlier this year, Chris Lattner and the Modular team presented a new programming language called Mojo. Initially, Modular shared only the Mojo Playground, where developers could explore and play with this language. This latest launch focused on providing access to local downloads, beginning with Linux and Mac systems. The Windows release is scheduled to be available soon.

OpenAI Launches GPTs to Enable Creating No-Code, Custom Versions of ChatGPT

At the recent OpenAI developer conference, OpenAI announced it is rolling out "GPTs", custom versions of ChatGPT created for specific tasks. The company says developers will also be able to share their GPTs on the forthcoming ChatGPT Store and monetize them.

GPTs provide a mechanism to combine ChatGPT with custom instructions, external knowledge, and any combination of skills. They attempt to answer the need for customizing ChatGPT for specific uses, such as learning the rules of board games, teaching math, or designing stickers.

On a related topic, Thomas Betts recently talked with Pamela Fox, a cloud advocate in Python at Microsoft, on the InfoQ podcast episode "Using ChatGPT to Search Enterprise Data". They discuss several ChatGPT sample apps that Pamela helps maintain.

Beyond the Numbers: Decoding Metrics for Assessing Client-Side Engineer Impact

This recent InfoQ article by Ashwin Raghav Mohan Ganesh explores metrics that can be used for assessing the impact of client-side engineers, offering insights into what they mean and what they don't.

The article aims to provide a more comprehensive perspective that can be useful when developing performance assessment guides for organizations building full-stack software, ensuring a more balanced and fair evaluation of engineers' contributions and impact.

Case Study

Relearning C++ after C++11

C++ is an old but evolving language. You can use it for almost anything and find it in many places. In fact, C++’s inventor, Bjarne Stroustrup, described it as the invisible foundation of everything. Sometimes, it might be deep inside a library of another language because C++ can be used for performance-critical paths. It can run in small, embedded systems or power video games. Your browser might be using it. C++ is almost everywhere!

C++ has been around for a long time but has changed significantly, particularly since 2011. A new standard, referred to as C++11, was introduced then, marking the beginning of a new era of frequent updates. If you haven’t used C++ since before C++11, you have much to catch up on, so where do you start?

Why C++ matters

The language is compiled and targeted at a specific architecture, such as a PC, a mainframe, an embedded device, bespoke hardware, or other things. If you need your code to run on various types of machines, you need to recompile it. This has pros and cons. Different configurations give you more maintenance work, but compiling to a specific architecture gets you "down to the metal", allowing the speed advantage.

Whatever platform you target, you will need a compiler. You also need an editor or integrated development environment (IDE) to write code in C++. ISOCpp gives a list of resources, including C++ compilers. The Gnu compiler collection (GCC), Clang, and Visual Studio all have free versions. You can even use Matt Godbolt's compiler explorer to try code on various compilers in your browser.

The compiler may support various versions of C++, so you have to state the version you need in the compiler flags, for example -std=c++23 for g++ or /std:c++latest for Visual Studio. The ISOCpp website has a FAQ section that gives an overview of some recent changes, including C++11 and C++14, and big picture questions. There are several books focused on later new versions of C++, too.

Where to start relearning?

If you've been left behind with C++, the plethora of resources might be overwhelming. The full-length article explores the following topics:

  • Using Vector
  • Class template argument deduction
  • Ranges
  • Lambdas

This content is an excerpt from a recent InfoQ article by Frances Buontempo, "Relearning C++ after C++11".

To get notifications when InfoQ publishes content on these topics, follow "Programming Languages", "Development", and "Asynchronous Programming" on InfoQ.

Missed a newsletter? You can find all of the previous issues on InfoQ.

Sponsored

New Report | The State of Multi-Cloud 2024 - Sponsored by Cockroach Labs

Multi-cloud: Must-have or mostly hype? We surveyed 300 engineers and architects across two continents to gain their on-the-ground insights from running multi-cloud deployments in production. The result? A report packed with unbiased, data-driven insights to inform your cloud strategy going forward.

Download now - sponsored by Cockroach Labs

Upcoming Events

QCon: For practitioners, by practitioners

QCon London (April 8-10): Last chance to secure early bird pricing. Book before December 12.

Get up-to-speed on the latest trends, techniques, and ways of working being applied by people just like you. Tracks include; software architectures, APIs, data engineering, leadership, cloud-native, AI, LLMs, platform engineering, mobile development, frontend, security, working with teams, fintech, and more!

Secure your spot by December 12 to save £500 off the full-price ticket. Register now!

About InfoQ

Senior software developers rely on the InfoQ community to keep ahead of the adoption curve. One of the main reasons software architects and engineers tell us they keep coming back to InfoQ is because they trust the information provided and selected by their peers.

We’ve been helping software development teams adopt new technologies and practices for over 15 years through InfoQ articles, news items, podcasts, tech talks, trends reports, and QCon software development conferences.

We hope you find this newsletter useful. If not, you can unsubscribe using the link below.

Unsubscribe

Forwarded email? Subscribe and get your own copy.

Subscribe

Follow InfoQ on:

If you are based in the European Economic Area (EEA), please contact us so we can provide you with the protections afforded to you under the General Data Protection Regulation (GDPR).

You have received this email because you subscribed to "The Architects' Newsletter". To stop receiving the Architects' Newsletter, please click the following link: Unsubscribe

- - -

C4Media Inc. (InfoQ.com), 705-2267 Lake Shore Blvd. West,
Toronto, Ontario, Canada, M8V 3X2