Perl’s Postmodern Metanarrative

Now and then, it’s good to remind ourselves what “There Is More Than One Way to Do It” means.

A long time ago, Larry Wall said Perl is the first postmodern programming language. I’ve thought about this – asking myself what does that even mean?

Today I think this is just a nice way of saying that Perl has no metanarrative. Let’s unpack this.

If you have no metanarrative, you have…

  • No invisible hand
  • No central tenets
  • No number of pillars
  • No epic struggles between us and them
  • No over-arching tale of tragedy and catharsis and redemption
  • No story that brings us together to draw meaning from

This is the void within the Perl community everyone gets to struggle with. We have nothing but our freedoms to shape the world around us, yet we still search for that which pull us together and give us reason to call ourselves a community.

Others communities have something we lack. They can claim they are the greatest, the freest, the most prosperous, the most friendly, the fastest, the biggest, the most compatible, the most powerful or offer the easiest learning experience. These claims become a “grander truth” for them. Even if their claim fails to stand on its own merits, is deemed as dubious or deluded or even found to be a lie; white or otherwise.

These communities have a metanarrative.

We don’t.

We are all unique, we are all different, we are all leaders and we are all followers.

Yet if we think about it, we might have some tiny things that draw us together. We do love our languages and tools and freedom and the friends we’ve made when caring about the few things we have in common.

The Signal and Noise of TIMTOWTDI

When we listen to our collective voice, is the sound we make euphonic or cacophonic? When we look at the colours we show, do we see something euchromic or cacocromic? It’s hard to tell, and much is left to the ear of the hearkener and the eye of the beholder.

We do our own thing, we have the freedom to choose our path and whatever happens, happens. This freedom is taken as a given, and we are reminded of it every time we say the Perl mantra; “There Is More Than One Way To Do It” – TIMTOWTDI.

This freedom is made real by the lack of directed cooperation, by the fact that everyone is free to reinvent wheels, try to do things better, make mistakes, produce crap and gold, talk and argue and all the things we do when no-one and every-one is in charge.

This blurry outline that emerges from lack of coordination, what is it? A postmodern not-a-narrative narrative?

O Postmodernist Perl, how you confound us! You offer us the story of having no story!

The paradox is that when each and every one of us do our own things, we do in fact create a story – even if we don’t mean to.

It is the story a reader imagines when they read our posts on perl5-porters or our blog. It’s the story created inside the head of the newcomer forming a first impression when walking into a Perl Devroom full of smiling and laughing people at FOSDEM. It’s the smile a tired dev makes when reading beautiful code that has a surprising joke hidden inside it. It’s the raison d’etre the old veteran confabulates when a stranger unexpectedly offers praise for a job done long ago quietly behind the scenes.

A coin with no back side

These stories – these narratives we’re creating in the heads of others – come in the shape of a coin, on which one side has the picture of a smiley, and on the opposite a frownie.

On one side we create stories about freedom and O(fun) and experimentation and play, and on the other; duties and limitations and hard work and confusion and respect. The responsibilities we accept or ignore shape the stories just as much as the ones we choose to write and tell.

It doesn’t matter if we didn’t ask for this or we don’t like it. The stories are created both by our actions and our inactions, and we can’t stop this. The only thing we can do is to influence which narratives are created by doing more of what’s desirable and less of what is not.

If we do well, we get a coin with no back side.