The Most Important Programming Invention In 20 Years • Dave Farley • GOTO 2025
This YouTube video discusses the results of a poll asking developers about the best invention/discovery for software development in the last 20 years. The results, while not scientifically rigorous, reveal interesting trends. Here are the key points:
-
Git (and GitHub) topped the list: The presenter was surprised by this, considering it a fundamental tool. While acknowledging its occasional frustrations (especially the command line interface), the presenter highlights Git’s impact due to its distributed nature, eliminating the need for a central server and enabling offline work. The ease of branching and committing, especially crucial for test-driven development, is emphasized.
-
Public Cloud came in second: This was unsurprising to the presenter, who considers it a game-changer for commoditizing previously complex infrastructure and lowering the barrier to entry for global-scale computing. However, the presenter notes that the current generation of cloud services lacks a unified programming model, though improvements are anticipated.
-
Docker (including Testcontainers) placed third: Its value lies in standardizing software deployment, similar to how standardized shipping containers revolutionized logistics. This simplifies deployment and distribution of software, particularly beneficial for developers working with various languages and tools. However, the presenter points out that Docker also reveals complexities, leading to the creation of additional tools like Kubernetes.
-
Large Language Models and Continuous Delivery tied for fourth: The presenter expresses some surprise at the inclusion of LLMs, highlighting the ongoing debate about their impact (ranging from potential programmer replacement to code quality concerns). The inclusion of Continuous Delivery, however, was unsurprising and personally gratifying to the presenter, who sees it as a standard practice for modern software development.
Overall, the video suggests that while seemingly fundamental tools like Git topped the list, the advancements in cloud computing and containerization have also significantly impacted software development. The presenter also touches upon the potential (and uncertainties) surrounding the role of AI in the future of software development, and considers continuous delivery a key practice that will likely continue to be important. The presenter acknowledges a potential bias in the poll results due to the audience being followers on their social media.