Zero Dependencies
Tim Bray launched 0dependencies.dev to promote minimizing software dependencies, addressing vulnerabilities and performance issues. Developers are encouraged to aim for zero dependencies, with a badge and potential hall of fame recognition.
Read original articleTim Bray has launched a project called 0dependencies.dev, which promotes the idea of minimizing software dependencies. The initiative stems from growing concerns in the tech community about the complexities and vulnerabilities associated with numerous dependencies in software development. Bray references Mike Perham's concept of "Kill Your Dependencies," emphasizing that while some dependencies are necessary, striving for fewer can lead to better performance and security. He suggests that developers should aim for zero dependencies, particularly when creating library code that is intended for broad use. To achieve this, he advises sticking to built-in language features and being selective about external libraries, especially for simple functions. Bray has created a badge that developers can display on their projects to signify their commitment to having zero dependencies. He is open to recognizing projects that meet this criterion and may establish a "0dependency hall of fame" in the future. The project is not intended to start a movement but rather to encourage developers to critically evaluate their use of dependencies.
- Tim Bray's 0dependencies.dev promotes minimizing software dependencies.
- The initiative addresses concerns about vulnerabilities and performance issues related to excessive dependencies.
- Developers are encouraged to aim for zero dependencies, especially in library code.
- A badge is available for projects that achieve zero dependencies.
- Bray may recognize notable projects with a "0dependency hall of fame."
Related
Why We Build Simple Software
Simplicity in software development, likened to a Toyota Corolla's reliability, is crucial. Emphasizing straightforward tools and reducing complexity enhances reliability. Prioritizing simplicity over unnecessary features offers better value and reliability.
Htmx: Simplicity in an Age of Complicated Solutions
Erik Heemskerk discusses the pursuit of a 'silver bullet' technology in software development, emphasizing simplicity over complexity. He critiques over-engineering in front-end development, highlighting trade-offs in code solutions for better user experiences.
A Manifesto for Radical Simplicity
Josh Austin's manifesto on "Radical Simplicity" in software delivery advocates eliminating subjective metrics, focusing on single tasks, tracking dependencies, and maintaining human agency to enhance efficiency and effectiveness in development.
⓿ dependencies!
Minimizing dependencies in software development enhances quality and performance. Developers should use built-in libraries, and library creators should aim for zero dependencies, potentially signified by a GitHub badge.
Manual 'Till It Hurts
The article advocates for "buildless" web development, promoting manual coding for simplicity and performance while cautioning against the complications of build tools and unnecessary automation in projects.
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="110" height="20" role="img" aria-label="⓿: dependencies!">
<title>⓿: dependencies!</title>
<a target="_blank" xlink:href="https://0dependencies.dev">
<linearGradient id="s" x1="50%" y1="0%" x2="50%" y2="100%">
<stop stop-color="#34D058" offset="0%"></stop>
<stop stop-color="#28A745" offset="100%"></stop>
</linearGradient>
<clipPath id="r">
<rect width="110" height="20" rx="3" fill="#fff"/>
</clipPath>
<g clip-path="url(#r)">
<rect width="21" height="20" fill="#555"/>
<rect x="21" width="89" height="20" fill="#d1331b"/>
<rect width="110" height="20" fill="url(#state-fill)"/>
</g>
<g fill="#fff" text-anchor="middle" font-family="Verdana,Geneva,DejaVu Sans,sans-serif" text-rendering="geometricPrecision" font-size="110">
<text aria-hidden="true" x="115" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="110">⓿</text>
<text x="115" y="140" transform="scale(.1)" fill="#fff" textLength="110">⓿</text>
<text aria-hidden="true" x="645" y="150" fill="#010101" fill-opacity=".3" transform="scale(.1)" textLength="790">dependencies!</text>
<text x="645" y="140" transform="scale(.1)" fill="#fff" textLength="790">dependencies!</text>
</g>
</a>
</svg>
Related
Why We Build Simple Software
Simplicity in software development, likened to a Toyota Corolla's reliability, is crucial. Emphasizing straightforward tools and reducing complexity enhances reliability. Prioritizing simplicity over unnecessary features offers better value and reliability.
Htmx: Simplicity in an Age of Complicated Solutions
Erik Heemskerk discusses the pursuit of a 'silver bullet' technology in software development, emphasizing simplicity over complexity. He critiques over-engineering in front-end development, highlighting trade-offs in code solutions for better user experiences.
A Manifesto for Radical Simplicity
Josh Austin's manifesto on "Radical Simplicity" in software delivery advocates eliminating subjective metrics, focusing on single tasks, tracking dependencies, and maintaining human agency to enhance efficiency and effectiveness in development.
⓿ dependencies!
Minimizing dependencies in software development enhances quality and performance. Developers should use built-in libraries, and library creators should aim for zero dependencies, potentially signified by a GitHub badge.
Manual 'Till It Hurts
The article advocates for "buildless" web development, promoting manual coding for simplicity and performance while cautioning against the complications of build tools and unnecessary automation in projects.