Languages and Frameworks Thoughtworks Technology Radar 81. Swift Package Manager Adopt When introduced in 2014, Swift didn’t come with a package manager. Later, Swift Package Manager was created as an official Apple open-source project, and this solution has continued to develop and mature. Our teams rely increasingly on SwiftPM because most packages can be included through it and the processes for both creators and consumers of packages have been streamlined. In the previous Radar, we recommended trialing, but we now believe it makes sense to select it as the default when starting new projects. For existing projects using tools like CocoaPods or Carthage, it might be worth a quick experiment to gauge the level of effort to migrate and to check whether all dependencies are available. 82. Yjs Adopt Conflict-free replicated data type (CRDT) algorithms are proven to be able to automatically distribute and merge changes among peers without conflicts. But in practice, even for small enough data, these algorithms usually require a significant amount of memory to trace all the changes made by different peers, thus making them impractical. Yjs is a carefully optimized CRDT implementation that keeps memory consumption at a reasonable level for large data sets and millions of modifications. It also provides bindings for popular text editors, which greatly reduce the cost of building collaborative tools. 83. Azure Bicep Trial For those who prefer a more natural language than JSON for infrastructure code, Azure Bicep is a domain-specific language (DSL) that uses a declarative syntax and supports reusable parameterized templates for modular resource definitions. A Visual Studio Code extension provides instant type safety, intellisense and syntax checking, while the compiler allows bidirectional transpilation to and from Azure Resource Manager (ARM) templates. Bicep’s resource-oriented DSL and native integration with the Azure ecosystem make it a compelling choice for Azure infrastructure development. 84. Camunda Trial Since we last mentioned Camunda, we’ve seen many of our teams and clients use the platform, making it one of our preferred workflow engines in cases where a workflow engine is a good fit for the domain. Camunda offers workflow and decision engines that can be integrated as a library in your Java code. This makes it easy to test, version and refactor workflows, alleviating some of the downsides of other more low-code workflow engines. We’ve even seen Camunda used in environments with high performance requirements. Teams also like how easy it is to integrate with Spring Boot and its nice user interface. 85. Gradle Kotlin DSL Trial Previously, we blipped about the Android Gradle plugin Kotlin DSL, or Gradle Kotlin DSL, which added support for Kotlin Script as an alternative to Groovy for Android projects using Gradle build scripts. The goal of replacing Groovy with Kotlin is to provide better support for refactoring and simpler editing © Thoughtworks, Inc. All Rights Reserved. 37
Vol 27 | Technology Radar Page 36 Page 38