Published Sep 3, 2019

SE-Radio-Episode-231:-Joshua-Suereth-and-Matthew-Farwell-on-SBT-and-Software-Builds

Explore the evolution and distinct functionalities of SBT, a Scala build tool, as Joshua Suereth and Matthew Farwell delve into its unique features, compare it with Gradle and Maven, and discuss strategies for adapting build systems to suit modern software development and microservices architectures.
Episode Highlights
Software Engineering Radio - the podcast for professional software developers logo

Popular Clips

Episode Highlights

  • Microservices

    Microservices architecture significantly impacts build systems, necessitating tailored strategies for effective management. highlights the importance of creating micro builds optimized for team productivity, incorporating custom tasks that enhance efficiency beyond mere binary compilation 1. He advocates for a balance between flexibility and standardization, emphasizing that while microservices introduce cognitive overhead, they are essential for large organizations to function cohesively 2. adds that for extensive projects, uniformity in build systems like Maven can streamline processes, though flexibility remains crucial for addressing unique team needs 2.

    I actually personally believe in microservice build with some sort of architecture, higher level build that coordinates them.

    ---

    The debate on whether to use single or multi-purpose build systems continues, with favoring general-purpose tools that adapt to various ecosystems, despite the challenges they present 3.

       

    Tool Selection

    Selecting the right build tool hinges on project specifics and team requirements. contrasts Maven's declarative approach with Gradle and SBT's task-based models, noting that the latter offer more flexibility through real code access 4. explains that while Maven enforces strict conventions, Gradle and SBT allow for task redefinition, catering to projects needing customization 5. He also highlights SBT's unique features, such as Scala compiler plugins, which enhance code performance and analysis capabilities 6.

    If you need some flexibility, because, you know, things differ here and there and you want to be able to do that quickly. A build tool like gradle or SBT is a far better choice.

    ---

    Ultimately, the choice of build system should align with the project's complexity and the team's flexibility needs, ensuring both efficiency and adaptability.

Related Episodes