Skip to content

GSoC2008 Introduction

Mats Wichmann edited this page Jan 3, 2024 · 1 revision

Welcome to SCons

SCons is an Open Source software construction tool—that is, a next-generation build tool. Think of SCons as an improved, cross-platform substitute for the classic make utility with integrated functionality similar to autoconf/automake and compiler caches such as ccache.

SCons is a truly unique tool, used by lots of free software projects and many companies. It is implemented in Python and uses Python as its "description language" so it brings to bear the full power and flexibility of a general-purpose programming language to the job of constructing build systems.

It has a small but active developer base led by Steven Knight. Unlike larger projects where you might get lost in the crowd, working on SCons allows you to shine on your own. Despite its small size, the developer base is highly professional and a joy to work with.

There's more information available about SCons at the main SCons web site and there's also a project page for the source code and issues database.

Here's a short list of things a student can do by working on SCons:

  • Build enterprise-grade software. SCons uses a very strong test-driven development methodology to make sure things don't break.
  • Learn the architecture of a truly unique project.
  • Work with advanced object-oriented programming in Python.
  • Handle portability rules in practice.
  • Encounter real-world engineering issues.
  • Apply complexity analysis techniques to understand the bottlenecks.
  • Apply data mining techniques on real sets of data to understand the algorithm parameters.
  • Use visualization tools to view data and interpret results. Moreover, unlike large organizations that may have fifty or more proposals for a single idea, SCons gets fewer submissions, so your chances of success are better here.

There's also a separate page on writing a proposal for SCons as well as a page of SCons mentors. Possible projects are located in the ideas page.

Clone this wiki locally