The idea of the project-lead from a major PHP framework suddenly dying might seem far-fetched. Unfortunately, however, it's not a million miles away from reality. In January 2020 Jim Parry, who was the project lead for Codeigniter, died after suffering from lung cancer (source: https://forum.codeigniter.com/thread-75235.html). Parry's death came at a time when development of CI4 was well underway but not complete. Personally speaking, I was not involved with Codeigniter at that time. However, my speculation is that his passing must have surely rattled the Codeigniter community. To their credit, the Codeigniter community pulled together and finished CI4. Very recently, I can see that they have improved their website too. I congratulate them for this! However, I think it's safe to say, those dreadful events must have been a huge blow - not only to those who knew Jim Parry personally but to the many developers and business owners who depend on Codeigniter.

Have you ever wondered what would happen if the guy who made Trongate died? (that's me, by the way!)

I have no plans of dying and I apologise if this kind of topic seems a little bit morbid. However, I think it's a legitimate question - particularly for developers and business owners who might depend upon Trongate. So, let's talk about this.



What we're really discussing here - incidentally - is a question of management. Put simply, 'Who is in charge?'. Broadly speaking, there are three types of management:

  • Autocratic Management

  • Democratic Management (sometimes called ‘management by committee’)

  • Laissez-faire Management



Autocratic management is a top-down management style where one person or a small group of people lead an organisation in an authoritative style. The benefit of this kind of management style is that decisions tend to be made quickly and with clarity. Autocratic management can lead to a high-levels of productivity and a more cohesive vision for where the organisation ought to be heading. The down-side with this kind of management style is that it often results in low-moral and ‘glass ceilings’ for those who are not a part of the management rank.

Organisations that use autocratic management systems include: Apple, Tesla and Starbucks. If you live near a local family-run business - like a restaurant - then there’s a good chance that they will be using an autocratic management style.

Democratic management (i.e., ‘management by committee’) is a type of management style whereby a committee has the right to vote democratically on matters to do with management. The benefits of this kind of management style are increased motivation - particularly among lowly ranked members of the organisation - and greater potential for rapid early expansion. It’s easy to attract members to an organisation if there’s a perception that ‘your opinion matters’.

Examples of organisations who use management by committee are the International Olympic Committee and The PHP Foundation.

The down-sides of management by committee are that decision making processes can be slow and members of the organisation are less likely to take responsibility when things go wrong.

Laissez-faire management is a management style that effectively eliminates or drastically reduces the need for interference from managers. This type of management style (if we can call it that!) has the benefit of encouraging innovation and creativity. The crypto community is a good example of an entity where laissez-faire rules the day.

The down-side to laissez-faire management is that it can lead to a general lack of direction and sometimes sub-standard end products. Another downside is that it often has a short shelf-life. For example, many crypto experts are convinced that it’s only a matter of time until that particular community is heavily regulated. So, there is a case for saying that the laissez-faire management style is not sustainable.

They All Suck!



Just to state the obvious, none of the above management systems are perfect. Furthermore, the traits of each management system are not exclusive to that system. It’s entirely possible, for example, for government officials to debate an issue (‘democratic management’) only to have a head of state or other leader-figure appear and decree what the final decision will ultimately be (‘autocratic management’).

Where Does Trongate Stand?



Everybody reading this is hoping and waiting for me to say ‘management by committee’. The moment I say that, we can all have three cheers and head off to bed with the great feel good factor of knowing that everybody has an equal voice. As for me? I get to be really popular!

Well, like Steve Jobs, I don’t believe in management by committee. At least, not for a software product (which is essentially what a framework is). I do think that management by committee or even laissez-faire could work for a programming language (I'll write an article about why that's the case, if anybody asks for one!). However, for a framework I think that there has to be somebody who ultimately takes responsibility and drives the framework forward. In this instance, that’s me.

Why do I think this?

Well, it’s certainly not because I’m better than anyone. I have no desire whatsoever to be in charge of anyone. I’m not a boss. I’d make a terrible boss. I don’t ever want to be some ‘code police’ character. Nor do I want to have anything to do with ‘standards’. The truth is, I don’t think I’d be any good at managing people. I don’t want to and I’m not going to. I’d be miserable and not very good at it.

Having said that, there are two key reasons why I am particularly eager to avoid management by committee. I speak with the assumption that I’m losing friends by the second - but that’s okay. This is important.

When I made Trongate, I drew up a bonkers list of rules that I was going to follow during the build process. This list was - and still is - bonkers. I know it and in a minute you’ll know it too. I have never discussed this list …until now. I want you to know this: I do not expect anyone on Earth to agree with every item on this list. I’m not here to enforce my coding values onto you. It’s just a list and - to me - it is deeply personal.

So, with the understanding that I absolutely do NOT expect you to agree with all of the items on the list, here’s here my rule-books for when I built Trongate:

  • No command line interface

  • No Packagist

  • No Composer

  • V1 Forever

  • No syntax standards (e.g., I don’t care about where you put your curly brackets)

  • No certification

  • Free forever

  • No third-party libraries

  • Actively ignore all PHPFIG recommendations

  • Few, if any, comments in the code

  • No unit testing

  • No ORM

  • No templating engine

  • No MVC

  • No namespaces

  • Everything that ‘they’ call good I call bad

  • Everything that ‘they’ call bad I call good



There you have it!

By the way, some of those items arrived quite recently. My list wasn't precisely like that from day one - just so you know. There were also one or two items that I removed from the list, as the build process went on.

If anyone on the planet called Earth agrees with my list of Trongate prerequisites then I would be astonished. Finding people who agree with a few items is usually quite easy. However, getting somebody to agree with all of those prerequisites is a task that I would consider to be impossible. I’m not even going to try!

The good news is, you don’t have to agree with the list. Nobody does! Furthermore, the list is not carved in stone. Take namespaces for example. Now there’s an item that I’m really on the fence about. I can easily imagine a future where Trongate uses namespaces and we’ll all be better off for it. The same goes for a dozen other things. None of the items I’ve listed are crystallised. Most importantly, I’m not going to get everything right first time. When mistakes are made - as they will be - then I’ll be delighted to learn, adjust and hopefully get back on track. Nothing on my list is sacred.

What gives my bonkers little list value is not that it unlocks some hidden genius from the deepest depths of my mind. Nor does it unleash some inherent genetic gift of leadership that I’m eager to fertilise the world with. No! The only thing that gives my list value is the fact that… well… it exists! That’s all.

Had I gone through a lengthy debating process with a group of developers about the vision for Trongate then we’d all be hanging around a discussion forum somewhere talking. I don’t necessarily think I’m better at making decisions than anyone but one thing I’ve learned as a professional developer is that the Lone Ranger developer is always more nimble and more adaptable than ‘the group’. So, I made a bunch of decisions and here we are - with a framework that’s twenty times faster than Laravel.

Now that we’re here, I think we can relax a little. Just last week we held a community vote (on YouTube) that resulted in a fairly important decision being made. It was to do with how uploaders work. The feedback, the ideas and the inspiration from that was excellent. Moving forward, I’d like to do much more of that.

So, here’s me backtracking like a wimp! Well… before this waffle-fest completely goes over a cliff-edge, let me try my best to wrap this up into a neat little package for you.

There are thousands of other ‘me too’ frameworks out there. The amount of frameworks that are doing what we're doing is zero. If Trongate didn’t exist then I think it’s inevitable that the doors of web development would close forever - particularly for people from poor countries. PHP in particular is bursting with self-appointed aficionados, code police, governing bodies and certificate sellers. Rewrite culture continues to poison everything and if Trongate goes down then you’ll all be bowing down to legions of middle managers and Agile-trainers before too long!

We need a cohesive ecosystem. Not a perfect ecosystem - but an ecosystem with clarity about what it stands for and where all of the different parts are in alignment. The only way that this could ever be possible would be if one person stood up and said, “we’re doing it”. I did not want to be that person. I would much rather be earning a decent wage doing something else. But here we are and I believe in this framework.

This brings me onto my most important point.

Today, during a livestream, I told the room that Trongate will be a top ten PHP framework (based on GitHub stars) this year, a top three PHP framework within six months of reaching the top ten and - some day - the world’s leading server-side framework. Nobody in the room believed me! I never asked but I’m speculating that they didn’t. Do you know what? That’s okay! What matters is that they all believed that I believe it.

Now that Trongate is where it is, I consider my main job title to be ‘blind optimist’. I am the irrational nutter who believes in Trongate, no matter what! My absolute faith in everything we're doing here is
unshakable and I’m very good at having complete faith in Trongate.

If anything happens to me, someone who lives on the other side of the world would immediately step forward and assume the role of blind optimist. The name of this person is Simon Field. He does not code exactly like me, look like me or talk like me and it doesn’t matter at all. The point is, he has an unshakable work ethic, he has great technical skills and he too shares many of the core values that Trongate was built upon. His vision would almost certainly be slightly different from mine but that’s okay too!

Rest assured - even if a huge meteorite whacked Scotland then the Trongate framework would probably continue. In that nightmare scenario, it would be for Simon to assume the role I’m playing and it would then be for him to find his own... Simon! By the way, do you know that Australia is quite literally on the other side of the world from where I am? And yes, it's no accident that the two of us are physically located at the opposite sides of the Earth from each other. Yes indeed. We thought of everything and I'm very serious about making sure Trongate has a bright future - with or without me.

I should also add that we have some incredibly talented programmers on board the Trongate fun bus - many of whom have worked for some of the biggest tech companies in the world. We also have a great team of contributors - all of whom could run rings around me, technically. If something were to happen to me then the priority at that moment would be to get somebody at the helm who could pick up the ball quickly and keep moving the framework forward. At the time of writing, I happen to know 100% of the Trongate framework, 100% of the Trongate Desktop App and 100% of the Module Market. I think Simon probably knows 100% of the framework, 80% of the Trongate Desktop App and 90% of the Module Market. There's no question in my mind that he would be able to pick up any missing pieces of knowledge in a matter of two or three weeks, if he had to. None of this has anything to do with people being 'better'. It's about being able to pick the ball up quickly, in the event of disaster.

It has taken the Codeigniter community the best part of two years to find their feet following the death of their lead developer. Over the last two years, they've lost a lot of market share to frameworks like Laravel, Symfony, Phalcon and Yii. Whether or not they ever gain back the ground they've lost is their burden. One thing I can tell you though is that the Codeigniter guardians have a mountain to climb if they have any plans on making Codeigniter a top two PHP framework again. We, of the Trongate community, should do everything in our power to make that kind of situation impossible for us. The ultimate insurance policy for any framework should be as follows:

At any given moment, there should be two people in the community who are intimately familiar with the ecosystem enough so that if something happened to one person then the other would be able to quickly step in and steer the ship. These two people should have significant geographical separation. So, that means that ideally they should not be living in the same city or even in the same country. Having significant geographical separation provides the community with protection from political unrest, terrorist attacks, legal turmoil, meteorite strikes and hypothetical out of control authoritarian governments.

In any event, for better or for worse, I have no plans of dying any time soon. That will certainly be a relief to Simon since he's up to his eyeballs with the business of being a successful commercial developer. Furthermore (and I can't stress this enough), I don’t want to manage anyone. Not you. Not anyone. When it comes to Trongate, my job title is ‘blind optimist’. Yes, if push came to shove with some life or death decision for the framework then I suppose I’d be the one who makes the final decision. However, it’s very difficult for me to imagine a situation where that could reasonably happen.

Above all, let me assure you, the reader, that you can rest easy knowing that Trongate is not a one man band. Every eventuality has been carefully considered. Trongate is here for the long run! Trongate is bigger than me. Trongate has arrived and together, we shall make PHP great again!

DC

Photo by Mike from Pexels