Benevolent dictator for life (BDFL) is a title given to a small number of open-source software development leaders, typically project founders who retain the final say in disputes or arguments within the community. The phrase originated in 1995 with reference to Guido van Rossum, creator of the Python programming language. [1] [2]
Shortly after Van Rossum joined the Corporation for National Research Initiatives, the term appeared in a follow-up mail by Ken Manheimer to a meeting trying to create a semi-formal group that would oversee Python development and workshops; this initial use included an additional joke of naming Van Rossum the "First Interim BDFL". According to Rossum, the title was most likely created by Ken Manheimer or Barry Warsaw. [1]
In July 2018, Van Rossum announced that he would be stepping down as BDFL of Python without appointing a successor, effectively eliminating the title within the Python community structure. [3]
BDFL should not be confused with the more common term for open-source leaders, "benevolent dictator", which was popularized by Eric S. Raymond's essay "Homesteading the Noosphere" (1999). [4]
Among other topics related to hacker culture, Raymond elaborates on how the nature of open source forces the "dictatorship" to keep itself benevolent, since a strong disagreement can lead to the forking of the project under the rule of new leaders.[ citation needed ]
† | Deceased |
Name | Project | Type | Reference |
---|---|---|---|
Sylvain Benner | Spacemacs | Community-driven Emacs distribution | [5] |
Vitalik Buterin | Ethereum | Blockchain-based cryptocurrency | [6] [ better source needed ] |
Dries Buytaert | Drupal | Content management framework | [7] |
François Chollet | Keras | Deep learning framework | [8] |
Evan Czaplicki | Elm | Front-end web programming language | [9] [10] |
Laurent Destailleur | Dolibarr ERP CRM | Software suite for Enterprise Resource Planning and Customer Relationship Management | [11] |
David Heinemeier Hansson | Ruby on Rails | Web framework | [12] |
Rich Hickey | Clojure | Programming language | [13] |
Adrian Holovaty and Jacob Kaplan-Moss | Django | Web framework | [14] |
Andrew Kelley | Zig | Programming language | [15] [16] |
Xavier Leroy | OCaml | Programming language | [17] [18] |
Haoyuan Li | Alluxio | Data Orchestration System | [19] |
Miles Lubin | JuMP | Mathematical optimization modeling language in Julia | [20] |
Yukihiro Matsumoto (Matz) | Ruby | Programming language | [21] |
Wes McKinney | Pandas | Python data analysis library | [22] |
Gavin Mendel-Gleason [lower-alpha 1] | TerminusDB | Open-source graph database for knowledge graph representation | [23] [24] |
Bram Moolenaar † | Vim | Text editor | [25] |
Matt Mullenweg [lower-alpha 2] | WordPress | Content management framework | [26] |
Martin Odersky | Scala | Programming language | [27] |
Taylor Otwell | Laravel | Web framework | [28] [29] |
Theo de Raadt | OpenBSD | A Unix-like operating system | [ citation needed ] |
Arnold Robbins | Awk, Gawk | Programming language | [30] |
Eugen Rochko | Mastodon | Open source, decentralized social network | [31] |
Ton Roosendaal [lower-alpha 3] | Blender | 3D computer graphics software | [32] |
Sébastien Ros | Orchard Project | Content management system | [33] |
Mark Shuttleworth [lower-alpha 4] | Ubuntu | Linux distribution | [34] |
Jeremy Soller | Redox | Operating system | [35] |
Don Syme [lower-alpha 5] | F# | Programming language | [36] |
Linus Torvalds [lower-alpha 6] | Linux | Operating system kernel | [12] [37] |
José Valim | Elixir | Programming language | [38] |
Pauli Virtanen | SciPy | Python library used for scientific and technical computing | [39] [40] |
Patrick Volkerding | Slackware | GNU/Linux distribution | [41] |
Nathan Voxland | Liquibase | Database schema management | [42] |
Jimmy Wales | Wikimedia Foundation | Collaborative knowledge project | [43] [lower-roman 1] |
Jeremy Walker | Exercism | Open-source programming education platform | [44] |
Shaun Walker | DotNetNuke | Web application framework | [45] |
Larry Wall | Perl | Programming language | [46] |
Evan You | Vue.js | JavaScript MVVM framework for building user interfaces and single-page applications. | [ citation needed ] |
Soumith Chintala | PyTorch | Deep learning framework | [47] |
Martin Traverso, Dain Sundstrom, David Phillips | Trino | SQL query engine | [48] |
Kohsuke Kawaguchi | Jenkins | Automation server | [49] |
Gabor de Mooij | RedBeanPHP | Database object relational mapper | [50] |
Bram Cohen | BitTorrent | Peer-to-peer file sharing protocol | [51] |
Walter Bright | D (programming language) | Programming language | [ citation needed ] |
Richie Vink | Polars | Data analysis framework | [52] |
William Falcon | PyTorch Lightning | Deep learning framework | [53] |
Lars Hvam | abapGit | Git client for ABAP | [54] |
Sebastián Ramírez | FastAPI | Web framework for building APIs with Python | [55] |
Bill Hall (gingerBill) | Odin | Programming language | [56] |
Damien Elmes (dae) | Anki | Spaced repetition system | [57] [58] |
Python is a high-level, general-purpose programming language. Its design philosophy emphasizes code readability with the use of significant indentation.
Guido van Rossum is a Dutch programmer. He is the creator of the Python programming language, for which he was the "benevolent dictator for life" (BDFL) until he stepped down from the position on 12 July 2018. He remained a member of the Python Steering Council through 2019, and withdrew from nominations for the 2020 election.
mod_python is an Apache HTTP Server module that integrates the Python programming language with the server. It is intended to provide a Python language binding for the Apache HTTP Server.
The following tables list notable software packages that are nominal IDEs; standalone tools such as source-code editors and GUI builders are not included. These IDEs are listed in alphabetic order of the supported language.
Cython is a superset of the programming language Python, which allows developers to write Python code that yields performance comparable to that of C.
The programming language Python was conceived in the late 1980s, and its implementation was started in December 1989 by Guido van Rossum at CWI in the Netherlands as a successor to ABC capable of exception handling and interfacing with the Amoeba operating system. Van Rossum is Python's principal author, and his continuing central role in deciding the direction of Python is reflected in the title given to him by the Python community, Benevolent Dictator for Life (BDFL).. Python was named after the BBC TV show Monty Python's Flying Circus.
Sphinx is a documentation generator written and used by the Python community. It is written in Python, and also used in other environments.
Tornado is a scalable, non-blocking web server and web application framework written in Python. It was developed for use by FriendFeed; the company was acquired by Facebook in 2009 and Tornado was open-sourced soon after.
Gerrit is a free, web-based team code collaboration tool. Software developers in a team can review each other's modifications on their source code using a Web browser and approve or reject those changes. It integrates closely with Git, a distributed version control system.
PyCharm is an integrated development environment (IDE) used for programming in Python. It provides code analysis, a graphical debugger, an integrated unit tester, integration with version control systems, and supports web development with Django. PyCharm is developed by the Czech company JetBrains and built on their IntelliJ platform.
scikit-learn is a free and open-source machine learning library for the Python programming language. It features various classification, regression and clustering algorithms including support-vector machines, random forests, gradient boosting, k-means and DBSCAN, and is designed to interoperate with the Python numerical and scientific libraries NumPy and SciPy. Scikit-learn is a NumFOCUS fiscally sponsored project.
Kippo is a medium-interaction SSH honeypot written in Python. Kippo is used to log brute-force attacks and the entire shell interaction performed by an attacker. It is inspired by Kojoney. The source code is released under the New BSD License.
Spyder is an open-source cross-platform integrated development environment (IDE) for scientific programming in the Python language. Spyder integrates with a number of prominent packages in the scientific Python stack, including NumPy, SciPy, Matplotlib, pandas, IPython, SymPy and Cython, as well as other open-source software. It is released under the MIT license.
Snake case is the naming convention in which each space is replaced with an underscore (_) character, and words are written in lowercase. It is a commonly used naming convention in computing, for example for variable and subroutine names, and for filenames. One study has found that readers can recognize snake case values more quickly than camel case. However, "subjects were trained mainly in the underscore style", so the possibility of bias cannot be eliminated.
The Python Conference is the largest annual convention for the discussion and promotion of the Python programming language. It originated in the United States but is also held in more than 40 other countries. It was one of the first computer programming conferences to develop and adhere to a code of conduct. The conference hosts tutorials, demonstrations and training sessions.
RocksDB is a high performance embedded database for key-value data. It is a fork of Google's LevelDB optimized to exploit multi-core processors (CPUs), and make efficient use of fast storage, such as solid-state drives (SSD), for input/output (I/O) bound workloads. It is based on a log-structured merge-tree data structure. It is written in C++ and provides official language bindings for C++, C, and Java. Many third-party language bindings exist. RocksDB is free and open-source software, released originally under a BSD 3-clause license. However, in July 2017 the project was migrated to a dual license of both Apache 2.0 and GPLv2 license. This change helped its adoption in Apache Software Foundation's projects after blacklist of the previous BSD+Patents license clause.
qutebrowser is a QtWebEngine web browser for Linux, Windows, and macOS operating systems with Vim-style key bindings and a minimal GUI. It is keyboard-driven and is inspired by similar software such as Vimperator and dwb. It uses DuckDuckGo as the default search engine. qutebrowser is included in the native repositories of Linux distributions such as Fedora and Arch Linux. qutebrowser is developed by Florian Bruhin, for which he received a CH Open Source award in 2016.
Tim Peters is a software developer who is known for creating the Timsort hybrid sorting algorithm and for his major contributions to the Python programming language and its original CPython implementation. A pre-1.0 CPython user, he was among the group of early adopters who contributed to the detailed design of the language in its early stages.
GNOME Terminator is a free and open-source terminal emulator for Linux programmed in Python, licensed under GPL-2.0-only. The goal of the project is to produce a useful tool for arranging terminals. It is inspired by programs such as gnome-multi-term, QuadKonsole, etc. In that the main focus is arranging terminals in grids. Terminator packages exist for Arch, Debian/Ubuntu, Fedora, OpenSUSE, Gentoo, Snap, FreeBSD, OpenBSD. In 2017 took second place in voting at opensource.com, after Gnome Terminal.
One participant called him a benevolent dictator.