Need advice about which tool to choose?Ask the StackShare community!
Buck vs Gradle: What are the differences?
What is Buck? A build system developed and used by Facebook. Buck encourages the creation of small, reusable modules consisting of code and resources, and supports a variety of languages on many platforms.
What is Gradle? A powerful build system for the JVM. Gradle is a build tool with a focus on build automation and support for multi-language development. If you are building, testing, publishing, and deploying software on any platform, Gradle offers a flexible model that can support the entire development lifecycle from compiling and packaging code to publishing web sites.
Buck and Gradle can be primarily classified as "Java Build" tools.
Some of the features offered by Buck are:
- Speed up your Android builds. Buck builds independent artifacts in parallel to take advantage of multiple cores. Further, it reduces incremental build times by keeping track of unchanged modules so that the minimal set of modules is rebuilt.
- Introduce ad-hoc build steps for building artifacts that are not supported out-of-the-box using the standard Ant build scripts for Android.
- Keep the logic for generating build rules in the build system instead of requiring a separate system to generate build files.
On the other hand, Gradle provides the following key features:
- Declarative builds and build-by-convention
- Language for dependency based programming
- Structure your build
Buck and Gradle are both open source tools. Gradle with 9.23K GitHub stars and 2.7K forks on GitHub appears to be more popular than Buck with 6.81K GitHub stars and 1.02K GitHub forks.
Pros of Buck
- Fast4
- Java1
- 1
- Runs on OSX1
- Windows Support1
Pros of Gradle
- Flexibility110
- Easy to use51
- Groovy dsl47
- Slow build time22
- Crazy memory leaks10
- Fast incremental builds8
- Kotlin DSL5
- Windows Support1
Sign up to add or upvote prosMake informed product decisions
Cons of Buck
- Lack of Documentation2
- Learning Curve1
Cons of Gradle
- Inactionnable documentation7
- It is just the mess of Ant++6
- Hard to decide: ten or more ways to achieve one goal4
- Bad Eclipse tooling2
- Dependency on groovy2