# Declarative Gradle

DevFeed: [Declarative Gradle](<https://devfeed.tech/articles/declarative-gradle-24605.md>)

Original publisher: [Read original article](<https://blog.gradle.org/declarative-gradle>)

Author: Piotr Jagielski

Published: 2023-11-10T05:00:00Z

Content type: article

Language: en

Sources: [The Gradle Blog](<https://devfeed.tech/sources/the-gradle-blog.md>)

Topics: [Gradle](<https://devfeed.tech/topics/gradle.md>), [Development](<https://devfeed.tech/topics/development.md>), [Documentation](<https://devfeed.tech/topics/documentation.md>)

Tags: [blog-post](<https://devfeed.tech/tags/blog-post.md>), [build-system](<https://devfeed.tech/tags/build-system.md>), [development](<https://devfeed.tech/tags/development.md>), [experimental](<https://devfeed.tech/tags/experimental.md>), [gradle](<https://devfeed.tech/tags/gradle.md>)

## AI overview

This article introduces Declarative Gradle, an experimental project proposing a clearer, more extensible, developer-first build language. It discusses limitations of existing Gradle build scripts, including mixtures of declarative and imperative code, complexity, unfamiliar concepts, and limited IDE support. It also distinguishes the needs of software developers from those of build engineers.

## Source excerpt

NOTE: Declarative Gradle is an experimental project undergoing active development, with frequent changes occurring during implementation. To learn more about the current status, visit the Declarative Gradle repository on GitHub. Here, you can access the current documentation, prototypes. Subscribe to the Gradle Build Tool Newsletter to receive monthly updates on the project - last updated on May 11, 2024 Part of our vision for Gradle Build Tool is to deliver an elegant and extensible declarative build language that allows developers to describe any kind of software in a clear and understandable way. Gradle's build language is already extensible in the most fundamental ways, which results in a high degree of flexibility. This is one of the main reasons Gradle is the build system of choice for many companies, including large enterprises, and the default build system for Android and Kotlin Multiplatform. However, our build language is currently not always fully declarative, clear, and understandable. While it has long been a best practice that build scripts should be declarative, and the build logic should be kept in plugins, this is not the reality for many projects. We've seen projects in the wild that mix declarative and imperative code and make build scripts that are long and complex. Gradle-specific concepts used in build scripts are not always familiar to software developers. This can make Gradle less approachable for developers unfamiliar with Gradle. At the same time, it makes it difficult for the IDEs to offer reliable support for editing build scripts. This blog post explains the Gradle team's perspective for what we call a developer-first software definition, or Declarative Gradle for short. This post outlines our plans for making the "elegant and declarative build language" part of our vision a reality. Software Developers and Build Engineers Let's first clarify the distinction between the two largest groups of Gradle users: software developers and build en