BDFLs and development

2016-04-11 17:04:46 admin Perl Interests 0 Comments

Creating a programming language is sort of like building a world wonder: it takes time, knowledge, genius and maybe just a touch of brilliance. As you already know, the man behind Perl is Larry Wall, we’ve talked about him in a previous article. He remains to this day involved in the development of the Perl family, growing it and raising it right if you will. As such, he joins a group of unique and illustrious individuals, earning the title BDFL or Benevolent Dictator for Life.

He joins a group of people who carried on through the years in the development of their projects, be it a programming language, a framework, or a text editor. Other BDFL’s include Guido van Rossum for Python, Yukihiro Matsumoto for Ruby or David Heinemeier Hansson for Rails.

This title is a bit tongue in cheek but it has its merits. The Benevolent Dictator for Life sets general directions and makes final decisions in different situations. He or she sets the groundwork for future development or, in some cases, restricts changes, maintaining things more conservatory.  Keeping changes minimal between versions, planning years and months in advance under one unitary direction is great for compatibility and consistency, but can also be detrimental to major development. You probably won’t see this cheeky title on anyone's desk but it remains a tacit acknowledgment of a single authoritative figure and voice in a community that can often be divisive. That figure in Perl is Larry Wall.

Guidance and unity is absolutely necessary in order to achieve progress or even stability in a programming language, in a framework, in a text editor or in any type of software really.  Thus the BDFL exists through their own charisma, power and position. Most of them are either founders or creators so they start from the ground up with a father figure stance. Some wield power in rare instances, some shape a path constantly.

For Perl, Larry Wall has been a constant contributor and de facto leader of its evolution, being involved in all of its versions. In 2000 he addressed the Perl community for suggestions for the next version of Perl. The data resulted from this were used for the development of Perl 6. With an active communication process between the development team, the BDFL and the community the sky’s the limit. But, there is always a but, what happens when the Benevolent Dictator overrules the community or a fraction of it?

Larry Wall’s role in Perl can be (jokingly) explained around the 2 rules from the official Perl documentation. The rules are:

  1. Larry is always by definition right about how Perl should behave. This means he has final veto power on the core functionality.

  2. Larry is allowed to change his mind about any matter at a later date, regardless of whether he previously invoked Rule 1.

The rules are of course an inside joke from the Perl development team, just like the “dictator” term,  since Larry has truly been a benevolent leader for the Perl family.

Such a leader, an authoritative figure and a call maker is often needed in an anarchistic community, but sometimes long term involvement can make you narrow minded. Freshness is often needed for a new perspective on things. Does this apply in programming languages? We think it does. Does that mean that BDFL should be term limited? Maybe not, but there is room for thought here. Many of the current BDFL are extraordinary contributors to their own creation and to the WEB, programming languages and software with everything it stands for. History has proven that their knowledge, passion and foresight is essential. But evolution is dynamic, based not just on our own plans and desires but also our needs.

If the Perl community, as a majority,  would ask a certain direction in the Perl family, would Larry listen? We think he would. Would this happen in any situation? Probably not.

As it is, the topic is left for debate: should there be a BDFL or a dynamic-changing leadership, what do you think?



Leave a comment


Subscribe to our newsletter!

Make sure you never miss the interesting stories of Perl startups, apps and projects.