Development PracticesDevelopment Practices
Conference45min
INTERMEDIATE

Engineering a Better Java Build Tool

The Java language is known to be performant, easy to use, and with great IDE support, but Java build tools like Maven or Gradle don't always live up to that reputation. This talk will explore why build tooling is fundamentally such a difficult domain to work in, but also how common concepts from object-oriented programming have the potential to greatly simplify the build tool experience. We will end with a demonstration of an experimental new Java build tool "Mill" that makes use of these ideas, proving out the idea that Java build tooling has the potential to be much faster, safer, and easier than it is today.

Haoyi Li
Haoyi LiMill Build

talkDetail.whenAndWhere

Wednesday, April 1, 15:30-16:15
Zaal 2
talks.roomOccupancytalks.noOccupancyInfo
talks.description
The Java language is known to be performant, easy to use, and with great IDE support, but Java build tools like Maven or Gradle don't always live up to that reputation. This talk will explore why build tooling is fundamentally such a difficult domain to work in, but also how common concepts from object-oriented programming have the potential to greatly simplify the build tool experience. We will end with a demonstration of an experimental new Java build tool "Mill" that makes use of these ideas, proving out the idea that Java build tooling has the potential to be much faster, safer, and easier than it is today.
build
tooling
object-oriented
java
talks.speakers
Haoyi Li

Haoyi Li

Mill Build

Singapore

Li Haoyi graduated from MIT, has built infrastructure for high-growth companies like Dropbox and Databricks, and has been a major contributor to the open source community with over 10,000 stars on Github. Haoyi has deep experience in the JVM and has used it professionally to build cloud infrastructure, distributed backend systems, programming languages, high-performance web applications, and much more.

talkDetail.rateThisTalk

talkDetail.poortalkDetail.excellent

talkDetail.ratingNotYetAvailable

talkDetail.ratingAvailableWhenStarted

talkDetail.signInRequired

talkDetail.signInToRateDescription

occupancy.title

occupancy.votingNotYetAvailable

occupancy.votingAvailableBeforeStart

talkDetail.signInRequired

occupancy.signInToVoteDescription

comments.title

comments.speakerNotEnabledComments