Sunday, 19 October 2014

Building complexity

Fig 1. A fig, right ?
Recently there has been much discussion relating to FIG. Sparked by an open letter to FIG written by Anthony (@ircmaxell).

The letter communicates a concern that he and others in the community have; recently FIG seem to be coming up with wantonly complicated solutions to what can be simple problems.

These communications are for everybody,  they are open, they use, as literary devices, particular drafts and code examples. I suspect it had some unwanted side effects, these letters weren't about any particular PSR.

In the follow up to this letter, the closing statement really speaks to all of us:
By getting creative with OO solutions, you can build incredibly powerful, strong and (most importantly) simple abstractions. The best way to build complexity is by composing simplicity. If you start with complex, you can never get simple.

This morning, I want to talk briefly about a refocused FIG, and why that matters.

What is FIG ?

Some of us may not really know what FIG is about, while it's hard to believe there is anybody left that has never heard of a "PSR", we should start by looking at what FIG is really about, as a group.
The idea behind the group is for project representatives to talk about the commonalities between our projects and find ways we can work together. Our main audience is each other, but we’re very aware that the rest of the PHP community is watching. If other folks want to adopt what we’re doing they are welcome to do so, but that is not the aim.
 A fine summary of what they were all about, perhaps. However ...

It is no accident that we are watching !

We live in a new world, where the developers of a framework don't have a very different role to the developers of any project.

All of us build complexity by composing simplicity.

We obviously shouldn't aim for complex solutions, what we are doing is complicated. If it's even realistic to talk about solutions that aren't complicated it's arguably because of the ecosystem supporting us.

We compose our modern solutions from what we would like to be simple components. Those components do need to integrate.

FIG should be able to recognize that the standards they create can effect the ecosystem supporting all of us, they are in some cases prohibitive of starting with simplicity. They are positioned to do an important job, and should recognize the implications of their work.

If your aim is true, you will likely hit your target. I'd like to rewrite the What is FIG? quote to read more like this:
The idea behind the group is to aid the PHP ecosystem in their pursuit to build complexity by composing simplicity by defining simple, focused and extensible common interfaces for modern components.
I desperately need them to hit that target, so does everyone supported by the ecosystem.

Everyone is obviously watching.