[HN Gopher] Build Systems a la Carte (2018) [pdf]
       ___________________________________________________________________
        
       Build Systems a la Carte (2018) [pdf]
        
       Author : djoldman
       Score  : 67 points
       Date   : 2025-07-02 11:27 UTC (3 days ago)
        
 (HTM) web link (www.microsoft.com)
 (TXT) w3m dump (www.microsoft.com)
        
       | cosmic_quanta wrote:
       | This paper is excellent for many reasons, but I want to emphasize
       | how approachable it is. Anyone working as a developer can read
       | this and get insights.
       | 
       | This stands in s t a r k contrast to other disciplines (e. g.
       | Physics) where papers are usually ultra dense, making it hard to
       | read even for subject-matter experts.
        
         | triknomeister wrote:
         | If physics paper were not dense, they would be 400 pages long.
         | It's still hard to read but in a different way.
        
           | user_7832 wrote:
           | It's also the language. This paper is written in a way I can
           | easily skim through it and google whatever specific term I
           | don't know. And I'm not even a software or IT professional
           | and don't know what MAKE is.
        
         | wk_end wrote:
         | Physics is a hard science. Software development is applied
         | engineering. I'm sure there are applied engineering fields
         | adjacent to physics where papers are fairly readable by
         | practitioners.
         | 
         | Most developers would struggle quite a bit to read typical
         | theoretical computer science papers.
        
           | pxc wrote:
           | Computer science is a formal science with empirical elements,
           | as much as I'd like to think of it as a branch of
           | mathematics. I'm not sure what to make of "software
           | engineering" or "software development", academically, but it
           | doesn't really seem to be applied engineering; software
           | engineering students don't study general engineering and then
           | apply it to software, and finally layer some software-
           | specific focus on top. And most developers are still
           | nominally trained in "computer science" rather than "software
           | engineering" or "software development" anyway!
           | 
           | Rather than engineering, the academic discipline of software
           | engineering grows out of computer science, which was born as
           | an area of interest in mathematics. It shows! Because most
           | developers who prepare for their jobs by their choice of
           | major in school typically study computer science, let's
           | consider a typical curriculum: a tiny bit about how hardware
           | works, a small amount of "low-level" software stuff in a
           | class where students work in assembly language, some
           | management science-ish stuff (typically part of the software
           | engineering classes, focused on the development lifecycle,
           | development methodologies, etc.), and a little bit about
           | "design patterns", which is engineering-y but often more
           | qualitative than quantitative in nature. You can often get
           | cross-listed credit for some electrical and computer
           | engineering electives, but they're very much optional. (And
           | many schools don't even have a software engineering program
           | per se, only a computer science program.)
           | 
           | To the extent that software engineering even _is_ a
           | theoretical discipline that can be  "applied" on the job, it
           | doesn't share much, ancestrally or methodologically, with
           | engineering. The most they really have in common is that they
           | are broadly speaking puzzle-solving disciplines that often
           | rely heavily on fairly sophisticated formal reasoning.
           | 
           | > Most developers would struggle quite a bit to read typical
           | theoretical computer science papers.
           | 
           | This is probably true, though, perhaps especially because
           | even those who study computer science as undergraduates don't
           | aim to be computer scientists. Their emphasis is reflected in
           | their electives, and they don't continue to study computer
           | science once they join the workforce.
           | 
           | Is this unusual? Can most nurses not only competently but
           | effortlessly read and understand the research output of
           | working medical scientists? Can a one-time biology major
           | typically read and understand contemporary research on micro-
           | organisms without "struggling quite a bit"?
        
         | moffkalast wrote:
         | Or you know, computer science papers. They're all science and
         | no computer.
        
         | webdevver wrote:
         | Most of what we call "computer science" today is nothing more
         | than digital carpentry.
        
           | rockostrich wrote:
           | > is nothing more than digital carpentry
           | 
           | Or you could just call it what everyone has been calling it
           | for the past 20 years and say "software engineering."
        
         | mhh__ wrote:
         | perhaps although this is a fairly cutesy paper and there are
         | cutesy physics papers too
        
         | IshKebab wrote:
         | That's because it's a review paper. There are _plenty_ of
         | computer science papers that are impenetrable, or leave out all
         | the important details.
         | 
         | Build systems don't involve anything really complex. Go and
         | read some papers on unbounded model checking if you want
         | unapproachable.
        
       | mschwaig wrote:
       | I wrote a paper about how I think trust should work for software
       | dependencies.
       | 
       | It very much builds on the hash-based cache lookup mechanism this
       | paper calls _constructive traces_ (in contrast to what they call
       | _deep constructive traces_ ) to eliminate transitive trust
       | relationships.
       | 
       | https://dl.acm.org/doi/10.1145/3689944.3696169
        
       | esafak wrote:
       | Co-author Simon Peyton Jones is an ACM Fellow known for the
       | Glasgow Haskell Compiler.
       | https://en.wikipedia.org/wiki/Simon_Peyton_Jones
        
       | mkleczek wrote:
       | Neil Mitchell is also an author of Shake which is based on this
       | paper.
       | 
       | Buck and Buck2 from Meta are descendants. Buck2 is an excellent
       | piece of software. Too bad it is still niche.
        
         | zokier wrote:
         | Not sure if niche is right word to describe buck2; as I
         | understand it's perfectly good _general purpose_ build system.
         | What it really is missing is just users, so that the ecosystem
         | for it could get bootstrapped.
         | 
         | It's kinda awkward situation with Bazel, buck2 is arguably
         | simply better system but Bazel has an ecosystem. That makes
         | both of them less attractive solutions atm.
         | 
         | Naturally, the ecosystem is a chicken and egg situation; it
         | will not improve unless some brave souls will do some
         | trailblazing. Meta can not be expected to solve this when they
         | have their own custom internal ecosystem which is not really
         | applicable for others.
        
       | der_gopher wrote:
       | Why would MS use Wordpress for their blog? (judging by wp-content
       | in the URL). Don't they have something internal?
        
       | tsss wrote:
       | This paper is so important. Just imagine how much pain could have
       | been avoided if the Gitlab and Github developers read this before
       | making the steaming shit pile of Github Actions.
        
       ___________________________________________________________________
       (page generated 2025-07-05 23:00 UTC)