si2-urssi / berkeley_workshop

Repo for the April 10-12 workshop to be held in Berkeley, CA
http://urssi.us/workshops/berkeley/
14 stars 17 forks source link

Building software on software: Reinventing the wheel is not sustainable #46

Open bangerth opened 6 years ago

bangerth commented 6 years ago

Discussion topic: Software should not try to be self-contained, but build on existing libraries.

Brief description of issue/challenge: The vast majority of software in the applied sciences is built from scratch: it implements linear algebra, parallelization, threading, etc on the most basic set of primitives provided by the operating system of programming language. This is despite the availability of packages that provide all of this in quality implementations that are vastly better in general, faster, support a broader range of hardware, and more importantly are supported and maintain by others who know their area.

My thesis is that we would have software that is much easier to maintain, port, and document if we built on these existing libraries, rather than trying to reinvent the wheel in each of these applications software packages.

Lead/moderator: Wolfgang Bangerth

Links to resources: TBD, but essentially the websites of many foundational software packages and libraries in the computational sciences (e.g., BLAS, LAPACK, PETSc, Trilinos, deal.II, libMesh, FEniCS, numpy, Threading Building Blocks, etc).

katrinleinweber commented 6 years ago

Possibly useful resource: "Not invented here" anti-pattern (and wiki.c2.com generally, but it's being remodeled)

And a humorous take on the same topic: We're gonna build a framework ;-)