In this session, we will see how decomposing software components into fine-grained artifacts helps to minimise the need for recompilation.
Speaker
Immo Hüneke, chair of BCS SPA SG, Zühlke Engineering Ltd
Agenda
6:00pm - networking in BCS London over refreshments and nibbles
6:30pm - presentation begins
8:00pm - approximately pizzas arrive - further networking in BCS London
8:45pm - event ends
Synopsis
As software applications have become more complex, so have the demands placed upon the tools used to build and deploy them. Today's online and mobile applications require a plethora of software components written in different languages and targeted at multiple platforms, with thousands of tests and static analysis checks carried out during every Continuous Integration / Continuous Deployment (CI/CD) cycle.
What started out as a domain-specific scripting language (make) that allowed C programmers declaratively to define the steps of compiling, linking and loading a Unix application program, has spawned a plethora of tools such as Rake, Maven and Gradle, all of which extend this capability to more programming languages, but still retain the essential character of the original: they organise a series of tasks to produce the finished result.
Over a period of decades, Google created its own build system (Blaze) to overcome the shortcomings of existing ones. Fundamentally, a good build system must optimize for both speed and correctness. Many older build systems trade off one against the other in order to achieve acceptable performance, which can lead to inconsistent results depending on the environment in which the build takes place. The key breakthrough was a switch from task-based to artifact-based orchestration. This allows fine-grained dependency analysis, parallelisation and much more.
In 2015, Google open-sourced its build system under the name Bazel. In this session, several examples of Bazel in use will be demonstrated and we will see how decomposing software components into fine-grained artifacts helps to minimise the need for recompilation, so speeding up incremental builds.
Delegates wishing to follow the exercises are invited to pre-install Bazel on their own computers and clone the git repository of example projects. Also make sure that you have a C/C++ compiler and a Java development kit on your machine.
About the speaker
Immo Hüneke
Immo Hüneke has been a developer, software architect and software engineer all his working life, joining Zühlke Engineering Ltd in November 2003, where his job title now is Expert DevOps Engineer. He has been passionately involved in advancing the practice of software since joining the BCS OOPS specialist group in 1987, which subsequently became SPA.
In his spare time, he loves spending time with his grandchildren, attending his German and English churches, singing and following the increasingly exciting developments in space flight.
Our events are for adults aged 16 years and over.
BCS is a membership organisation. If you enjoy this event, please consider joining BCS. You’ll be very welcome. You’ll receive access to many exclusive career development tools, an introduction to a thriving professional community and also help us Make IT Good For Society. Join BCS today
For overseas delegates who wish to attend the event, please note that BCS does not issue invitation letters.
COVID-19
BCS is following government guidelines, and we would ask attendees to continue to follow these guidelines:
England: https://www.nhs.uk/conditions/coronavirus-covid-19/
Scotland: https://www.gov.scot/coronavirus-covid-19/
Wales: https://www.gov.wales/coronavirus
Northern Ireland: https://www.gov.uk/foreign-travel-advice/ireland
This event is brought to you by: SPA specialist group